ฉันมีปัญหาต่อไปนี้ฉันต้องการแก้ไข:
- ฉันมีระบบ homed หลายระบบที่ใช้ linux โดยมีสามอินเตอร์เฟส อินเตอร์เฟสทั้งหมดได้รับการกำหนดค่าโดย dhcp ไคลเอ็นต์ DHCP คือ ISC dhcp 4.2.5
- เซิร์ฟเวอร์ DHCP เป็นเส้นทางเริ่มต้นในทุกเครือข่าย
- ฉันต้องการให้เส้นทางเริ่มต้นถูกตั้งค่าสำหรับอินเทอร์เฟซแรกเท่านั้น
ดังนั้นโดยทั่วไปฉันต้องการสั่ง dhclient ไม่ขอเราเตอร์ในทุกอินเตอร์เฟสยกเว้นหนึ่ง เอกสารและตัวอย่างที่ฉันพบในอินเทอร์เน็ตแนะนำว่าเป็นไปได้ อย่างไรก็ตามฉันไม่สามารถใช้งานได้
ฉันสามารถทำได้ด้วยตนเอง ถ้าฉันทำ:
sudo dhclient -d -1 -R subnet-mask,broadcast-address eth1
จากนั้นฉันเห็นว่าคำขอ dhcp มีเพียงคำขอ subnet-mask และ Broadcast-address ฉันยืนยันว่าด้วย wireshark และทำเช่นนี้จะไม่มีการตั้งค่าเส้นทางเริ่มต้นบน eth1 นี่คือสิ่งที่ฉันคาดหวัง
จากนั้นฉันสร้างไฟล์ dhclient.conf ต่อไปนี้:
request subnet-mask, broadcast-address;
interface "eth0" {
also request routers, domain-name, domain-name-servers, domain-search, host-name, interface-mtu, rfc3442-classless-static-routes, ntp-servers, time-offset;
}
เท่าที่ฉันเห็นสิ่งนี้ควรส่งผลให้มีการร้องขอ ubnet-mask เท่านั้นที่จะออกอากาศที่อยู่ยกเว้นใน eth1 ซึ่งควรได้รับการร้องขอมากกว่านี้
ฉันทดสอบสิ่งนี้ด้วย:
sudo dhclient -d -1 -cf dhclient.conf eth1
และฉันดูที่เครือข่ายอีกครั้งด้วย wireshark และสิ่งที่ฉันเห็นก็คือถึงแม้สิ่งที่ config บอกว่า dhclient กำลังร้องขอรายการตัวเลือกเริ่มต้นไม่ใช่แค่สองตัวเลือกที่ฉันกำหนดค่า
ทำไมถึงเป็นเช่นนั้น? นี่เป็นข้อบกพร่องหรือไม่? ฉันทำผิดพลาดในไฟล์กำหนดค่าของฉันหรือไม่?