จะทำให้ dhclient ลืม DHCP ครั้งสุดท้ายได้อย่างไร?


28

สิ่งที่ฉันพยายามที่จะบรรลุเป็นที่จะได้รับเย็นเริ่มต้นเช่า DHCP ศูนย์รัฐซึ่งหมายถึงการบังคับให้dhclientผ่านเต็มค้นพบและการตั้งค่า (DHCPDISCOVER-DHCPOFFER-DHCPREQUEST-DHCPACK เมื่อเทียบกับ shortcutted วงจร DHCPREQUEST-DHCPACK ซึ่งใช้จำ ที่อยู่) ฉันต้องการสิ่งนี้เพื่อแก้ปัญหาการกำหนดค่าเครือข่าย

ฉันเหนื่อย:

  • การล้างการเช่าซื้อปัจจุบันด้วยdhclient -rการตัดการเชื่อมต่อการเชื่อมต่อ Network Manager ปัจจุบัน
  • ฆ่าสิ่งที่เหลืออยู่dhclientและdnsmasqกระบวนการใด ๆ
  • การทำความสะอาด/var/lib/dhcp/ไดเรกทอรีซึ่งควรจะมีฐานข้อมูลลูกค้าเช่า;
  • sudo restart network-manager.

แต่แม้หลังจากขั้นตอนเหล่านี้ฉันเห็นในบันทึก DHCPDISCOVER ทันทีตามด้วย DHCPREQUEST ที่อยู่ใด ๆ ที่ยังจำได้

เห็นได้ชัดว่าระบบปฏิบัติการกำลังจัดเก็บที่อยู่อย่างใดและฉันหมดความคิด ความช่วยเหลือจากชุมชน?


คุณเข้าใจไหม ฉันกำลังประสบปัญหาเดียวกันเช่นกัน มีไฟล์ให้เช่าภายใต้ NetworkManager เช่นกัน ฉันลบพวกเขาเช่นกัน ด้วยเหตุผลบางอย่างมันยังคงรับที่อยู่เดิม
gudge

คำตอบ:


18

นี่เป็นการหลอกลวงสำหรับฉัน (สำหรับ eth0, วิ่งจากsudo su):

dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient.* ; dhclient -v eth0

1
เมื่อฉันทำสิ่งนี้ฉันได้รับสัญญาเช่าใหม่ แต่ที่อยู่ IP ดูเหมือนจะไม่ได้ถูกใช้โดยระบบ ถ้าฉันลอง ping ชื่อหรือที่อยู่ IP ที่เกี่ยวข้องมันล้มเหลว ถ้าฉันใช้ifconfigเพื่อตรวจสอบที่อยู่ปัจจุบันฉันสามารถ pind ที่
TafT

การเปลี่ยนrmส่วนทำให้การทำงานนี้สำหรับฉัน (โดยไม่ต้องใช้สัญญาเช่าก่อนหน้านี้dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient* ; dhclient -v eth0)
davejagoda

6

โปรแกรมไคลเอ็นต์ DHCP เขียนการเช่าซื้อไปยังไฟล์ เพียงลบไฟล์และรีสตาร์ทผู้จัดการเครือข่าย

/var/lib/dhcp/dhclient.leases

นี่คือที่เก็บสัญญาเช่าในคอมพิวเตอร์ของฉัน


2

สิ่งที่คุณเห็นไม่ใช่เครื่องของคุณจดจำ IP ใน syslog คุณจะเห็น DISCOVER REQUEST ACK ข้อเสนอนี้ไม่ได้อยู่ในลำดับที่มันเกิดขึ้น ในความเป็นจริงแล้ว DISCOVER OFFER ขอ ACK เพื่อยืนยันว่าคุณสามารถสูดอากาศระหว่างพีซีและเซิร์ฟเวอร์ DHCP ต้นน้ำ คุณส่ง DISCOVER เซิร์ฟเวอร์ที่ส่งคืนข้อเสนอและคุณได้รับ IP จากข้อเสนอสำหรับคำขอของคุณ

คุณทำทุกอย่างถูกต้องอย่างไรก็ตามเมื่อคุณทำ "dhclient -r" dhclient จะส่ง unicast RELEASE และ ISP บางแห่งยอมรับแพ็คเก็ตมัลติคาสต์ไปยังเซิร์ฟเวอร์ DHCP ของพวกเขาเท่านั้นดังนั้น RELEASE จึงไม่เคยไปถึงที่นั่น ถูกต้องจึงทำให้คุณได้รับ IP เดียวกันในข้อเสนอ


ขอบคุณสำหรับสิ่งนั้น! ฉันไม่เคยเข้าใจว่าทำไมบันทึกมักจะแสดง DISCOVER, REQUEST, OFFER, ACK; เนื่องจากลำดับไม่สมเหตุสมผล แค่รู้ว่านั่นไม่ใช่สิ่งที่เกิดขึ้นจริงทำให้ฉันอยู่ข้างหน้าในการหาปัญหาของตัวเอง ดังนั้นเครื่องของฉันก็รับDHCPOFFERIP ที่ฉันไม่ต้องการแล้วก็พูดว่า "ตกลง" แต่ถ้าฉันบังคับให้พยายามทำอย่างอื่นเซิร์ฟเวอร์ก็บอกว่าDHCPNACKและฉันก็ไม่มีเครือข่ายเลย คาดเดาการจองบนเซิร์ฟเวอร์สำหรับ MAC ที่ไม่ถูกต้อง
Auspex

สิ่งเดียวที่ฉันคิดว่าคุณสามารถลองได้คือเปลี่ยน "hwaddress ether xx: xx: xx: xx: xx: xx" ใน / etc / network / interfaces ถ้า ISP ของคุณอนุญาตให้คุณเปลี่ยน mac ของคุณโดยไม่ต้องส่งเสียงดังขึ้นและบอก พวกเขาและเคเบิลโมเด็มของคุณไม่ได้แทนที่แม็คได้ทันทีจากนั้นเซิร์ฟเวอร์ควรจะเห็นคุณเป็นคนใหม่และให้เช่า ip ว่าง
Matt

ปัญหาก็คือว่ามันถูกให้ฉัน IP ว่าง และฉันพยายามที่จะบังคับให้มอบอันที่จองไว้กับฉันเนื่องจาก DNS ภายนอกชี้ไปที่อันนั้น! ดังนั้นฉันจึงส่งผู้ดูแลเครือข่ายไปยังที่อยู่ MAC ที่แท้จริงและถามว่าเขาจอง IP จริงสำหรับ MAC นั้นหรือไม่
Auspex

1

โดยปกติdhclient -rควรทำเคล็ดลับ; แต่ถ้านั่นไม่ได้ผลสำหรับคุณฉันพบวิธีแก้ปัญหาที่นี่ :

+ ต่ออายุที่อยู่ IP หนึ่งครั้ง:

หมายเหตุ:ในตัวอย่างนี้เราจะใช้อินเตอร์เฟส eth0 ต้องกำหนดค่าอินเทอร์เฟซสำหรับ DHCP และทำงาน

  • เปิดเทอร์มินัลและทำsudo suเพื่อรูท
  • พิมพ์ifconfigเพื่อแสดงที่อยู่ IP ปัจจุบันที่คุณได้รับจาก DHCP
  • พิมพ์dhcpcd -kเพื่อส่งสัญญาณที่เหมาะสมไปยัง dhcpcd (คุณอาจต้องติดตั้ง dhcpcd โดยทำapt-get install dhcpcd)
  • ifup eth0ตอนนี้นำกลับมาอินเตอร์เฟซขึ้นมาจากการพิมพ์
  • พิมพ์ifconfigเพื่อแสดงที่อยู่ IP ใหม่

นอกจากนี้ยังมีส่วนเกี่ยวกับการต่ออายุที่อยู่ IP ทุกครั้ง แต่คำอธิบายสำหรับ Distros ที่ใช้ RPM (ตรงกันข้ามกับ Distros ที่ใช้ Debian เช่น Ubuntu)

หวังว่ามันจะช่วย :)

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