ต่ออายุ IP ด้วย dhclient บนอินเทอร์เฟซต่าง ๆ


16

ฉันมีสองอินเตอร์เฟซบนคอมพิวเตอร์ของฉันและeth0eth1

ซับเน็ตทั้งสองมีเซิร์ฟเวอร์ DHCP อยู่ ฉันจะใช้dhclientเพื่อต่ออายุที่อยู่ IP สำหรับทั้งสองอินเทอร์เฟซได้อย่างไร

ถ้าฉันทำ:

dhclient -r && dhclient eth0

มันต่ออายุ IP eth0บน ถ้าฉันต้องการจะทำ:

dhclient eth1

มันล้มเหลวด้วยข้อผิดพลาด:

dhclient(22421) is already running - exiting.

ที่ฉันสามารถทำได้:

dhclient -r && dhclient eth1

แต่dhclient -rส่วนที่ปล่อยเช่าและฉันหลวมที่อยู่ IP eth0เช่นกัน

สำหรับตอนนี้วิธีเดียวที่ฉันได้มีการจัดการที่จะทำสิ่งที่ฉันต้องการคือการทำงานdhclientสำหรับeth0หฤโหดฆ่ามันและรันบนeth1: ผมจบลงด้วย IP ต่ออายุในการเชื่อมต่อทั้ง

ฉันยังทดสอบด้วยdhclient -xแทนที่จะdhclient -rไม่มีโชค

แน่นอนว่านี่ไม่ใช่วิธีที่จะไป!

แก้ไข:

คำตอบสองข้อเสนอแนะให้ทำdhclient -r eth0 eth1 && dhclient eth0 eth1 สิ่งนี้ จำกัด การโทรออกอากาศไปยังอินเทอร์เฟซเหล่านี้ แต่เซิร์ฟเวอร์ DHCP แรกที่ตอบรับจะเป็นเซิร์ฟเวอร์เดียวที่ใช้จึงทำให้เกิด IP ใหม่บนอินเทอร์เฟซเดียวไม่ใช่ทั้งสองอย่าง ดูที่นี่เราสามารถเห็นการDHCPDISCOVERโทรบนทั้งสองอินเทอร์เฟซได้ แต่DHCPREQUESTจะดำเนินการในeth0อินเทอร์เฟซแรกที่พบเซิร์ฟเวอร์ DHCP:

Listening on LPF/eth0/0a:00:27:00:00:00
Sending on   LPF/eth0/0a:00:27:00:00:00
Listening on LPF/eth1/84:8f:69:d3:d4:a1
Sending on   LPF/eth1/84:8f:69:d3:d4:a1
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0x170fcb67)
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 4 (xid=0x115a24c3)
DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x170fcb67)
DHCPOFFER from 192.168.1.1
DHCPACK from 192.168.1.1 (xid=0x170fcb67)
bound to 192.168.1.4 -- renewal in 1710 seconds.

คำตอบ:


11

ทั้ง

dhclient -r && dhclient

หรือ

dhclient -r eth0 eth1 && dhclient eth0 eth1

แก้ไข 1:

ลองถัดไป: คุณอาจกำจัดข้อผิดพลาด "dhclient (22421) กำลังทำงาน - ออกจาก" ข้อผิดพลาดโดยทำให้หนึ่งในอินสแตนซ์ใช้ไฟล์ที่แตกต่างกัน ใช้PATH_DHCLIENT_PIDและPATH_DHCLIENT_DBตัวแปร (หรือตัวเลือกบรรทัดคำสั่ง eqivalent ดูหน้าคน) เพื่อแยกพวกเขา


ปัญหาคือว่าด้วยสิ่งนี้ dhclient ส่งแพ็กเก็ตเพื่อค้นหาเซิร์ฟเวอร์ dhcp เป็นการออกอากาศบนอินเทอร์เฟซทั้งสองอย่างแน่นอน แต่หยุดด้วยเซิร์ฟเวอร์ที่ได้รับครั้งแรก ฉันต้องการใช้เซิร์ฟเวอร์ตัวแรกที่ได้รับผ่าน eth0 สำหรับ eth0 ip และเซิร์ฟเวอร์ตัวแรกที่ได้รับผ่าน eth1 สำหรับ eth1 ip
Noé Malzieu

ถ้าฉันไม่ชัดเจน: ส่ง DHCPDISCOVER บนทั้งสองอินเตอร์เฟส แต่ส่ง DHCPREQUEST เฉพาะในส่วนแรกที่ได้รับคำตอบจากเซิร์ฟเวอร์ dhcp
Noé Malzieu

@ NoéMalzieuคุณควรใส่ข้อมูลนั้นในคำถามของคุณในอัตราใด ๆ ค่อนข้างตลก: คุณได้รับคำตอบที่ไร้ประโยชน์ "มูลค่า 11K ตัวแทน"; แต่นั่นไม่ได้เกิดขึ้นทุกวัน :-)
Hauke ​​Laging

@HaukeLaging - คำตอบของใครที่คุณเรียกว่าไร้ประโยชน์ 8-)
slm

@ NoéMalzieuดูการแก้ไขของฉัน
Hauke ​​Laging

4

แนวคิด # 1: ลองส่งผ่าน 2 ส่วนต่อไปยัง dhclient

ถ้าคุณดูที่หน้าคนสำหรับคุณจะสังเกตเห็นว่าในตอนท้ายของการใช้งานตัวอย่างเช่นบิตdhclient [ if0 [ ...ifN ]นี่หมายความว่าคุณสามารถเรียกใช้dhclientและส่งผ่านอินเทอร์เฟซหลายตัวที่คุณต้องการเรียกใช้

ตัดตอนมาจากหน้าdhclient man

dhclient [-4 | -6] [-S] [-N [-N ... ]] [-T [-T ... ]] [-P [-P ... ]] [-p พอร์ต] [-d] [ -e VAR = value] [-q] [-1] [-r | -x] [-lf ไฟล์เช่า] [-pf pid-file] [-cf config-file] [-sf สคริปต์ไฟล์] [เซิร์ฟเวอร์ -s] [-s ถ่ายทอด] [-g] [-n] [-nc] [ -nw] [-w] [-B] [-I dhcp-client-identifier] [-H ชื่อโฮสต์] [-F fqdn.fqdn] [-V ผู้ขาย - คลาส - ตัวระบุ] [-R request-option- รายการ] [-timeout หมดเวลา] [-v] [- รุ่น] [if0 [... ifN]]

ดังนั้นคุณควรจะได้รับdhclientการปล่อยตัวในหลายอินเตอร์เฟสและเชื่อมต่อกับพวกเขาเช่นกัน

dhclient -r eth0 eth1
dhclient eth0 eth1

แนวคิด # 2: ดูว่า NetworkManager ทำงานอย่างไร

นี่คือวิธีที่ NetworkManager ติดตั้งdhclientบนระบบของฉัน คุณสามารถลองเรียก dhclient ที่สองอย่างชัดเจนด้วยการขัดแย้ง

/sbin/dhclient -d -4 \
   -sf /usr/libexec/nm-dhcp-client.action \
   -pf /var/run/dhclient-wlan0.pid \
   -lf /var/lib/dhclient/dhclient-01f0476d-04bf-4ce7-8ced-844fae73f430-wlan0.lease \
   -cf /var/run/nm-dhclient-wlan0.conf wlan0

ขอบคุณสำหรับคำตอบ. อย่างไรก็ตามโปรดตรวจสอบความคิดเห็นของฉันใน @HaukeLaging คำตอบ
Noé Malzieu

@ NoéMalzieu - เราจะเห็นผลลัพธ์ verbose จาก 2 dhclient หรือไม่ dhclient -r && dhclient eth0 && dhclient -v eth1
slm

ด้วยสิ่งนี้ลูกค้ารายที่สองพูดว่าdhclient(1155) is already running - exiting.
Noé Malzieu

ใช่มันกำลังทำสิ่งแซมสำหรับฉันเช่นกัน
slm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.