DHCPDISCOVER / DHCPOFFER แต่ไม่มี DHCPACK


17

ฉันมีเครื่องไคลเอนต์ระยะไกลที่ส่ง DHCPDISCOVER ออกไป เซิร์ฟเวอร์กำลังตอบสนองด้วย DHCPOFFER แต่ไม่มี DHCPACK

สิ่งนี้จะทำซ้ำทุก ๆ 30 วินาทีจากโฮสต์เดียวกัน มีบางสิ่งที่ฉันสามารถทำได้จากระยะไกลหรือฉันต้องให้ใครบางคนรีบูตเครื่องหรือไม่ อยู่ในศูนย์ข้อมูลดังนั้นฉันอาจต้องเดินทางไปที่นั่นเพื่อทำมัน!


ขอบคุณสำหรับคำแนะนำ ฉันได้รีบูตเครื่องทั้งหมดแล้ว แต่ยังมีปัญหาอยู่ ฉันคิดว่ามีปัญหากับการกำหนดค่าของฉัน สิ่งนี้ดูถูกต้องหรือไม่

#
# /etc/dhcpd.conf for primary DHCP server
#

authoritative;
ddns-update-style none;
deny duplicates;
default-lease-time 600;
max-lease-time 3600;

# Our fixed hosts
host host2  { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address x.x.x.202; }
host host3  { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address x.x.x.203; }
host host4  { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address x.x.x.204; }
host host5  { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address x.x.x.205; }

subnet x.x.x.128 netmask 255.255.255.128 {
  option subnet-mask 255.255.255.128;
  option broadcast-address x.x.x.255;
  option routers x.x.x.129;
  option domain-name-servers 8.8.8.8, 8.8.4.4;

  # Testing pool.
  pool {
    max-lease-time 300; # 5 minutes
    range x.x.x.250 x.x.x.254;
    deny known-clients;
  }

  # Our hosts - I didn't have this pool declaration before, do I need it if I want
  # the hosts to be running dhcp but always get the same address?
  pool {
    max-lease-time 1800;
    range x.x.x.200 x.x.x.220;
    deny unknown-clients;
  }
}

DHCPRequest ควรมาก่อน DHCPAck คุณเห็นหรือไม่ ลองเรียกใช้การดักจับแพ็กเก็ตบนเซิร์ฟเวอร์และค้นหา DHCPDiscover, DHCPOffer, DHCPRequest และ DHCPAck ไปและกลับจากเซิร์ฟเวอร์ ไคลเอนต์ในส่วน LAN เดียวกันกับเซิร์ฟเวอร์หรือไม่ ถ้าไม่ใช่เราเตอร์จะแยกทั้งสองที่กำหนดค่าเป็นรีเลย์ DHCP หรือไม่
joeqwerty

มันเปิดออกปัญหาเกิดจากการกำหนดค่าผิดพลาด ฉันมีช่วงคงที่ทับซ้อนกับช่วงไดนามิก
แมตต์

คำตอบ:


14

มันจะไป:

CLIENT -> DHCPDISCOVER
SERVER -> DHCPOFFER
CLIENT -> DHCPREQUEST
SERVER -> DHCPACK

คุณไม่มี DHCPREQUEST ก่อน DHCPACK ในคำอธิบายของคุณ

หากไคลเอ็นต์อยู่บนซับเน็ตอื่นที่แตกต่างจากเซิร์ฟเวอร์ DHCP DHCPOFFER จะถูกส่งแบบ unicast ไปยัง DHCP-relay บนพอร์ต 67 UDP เอเจนต์รีเลย์ DHCP กระจาย DHCPOFFER ไปยังซับเน็ตบนพอร์ต UDP 68

ฉันจะตรวจสอบปัญหาการเชื่อมต่อที่เกี่ยวข้องกับ DHCPOFFER ติดตามและดูว่าพบทางกลับไปยังไคลเอนต์หรือไม่และทำไมไคลเอ็นต์ถึงไม่ใช่ DHCPREQUEST: ที่อยู่

เอเจนต์รีเลย์ dhcp ทั่วไปคือตัวเลือก "ip helper-address" ในสวิตช์ cisco ภายใต้อินเตอร์เฟสเฉพาะ


10

หากว่าเซิร์ฟเวอร์ DHCP และไคลเอ็นต์ DHCP ของคุณเชื่อมต่อกับเซ็กเมนต์อีเธอร์เน็ตเดียวกันและหากว่าเซ็กเมนต์อีเธอร์เน็ตครอบคลุมสวิตช์ L2 หลายตัวที่เชื่อมต่อกับลิงก์"trunk" ( 802.1q ) หลายตัวฉันก็พบปัญหาคล้ายกันเมื่อมี ไม่ตรงกันระหว่างการกำหนดค่าอย่างน้อยหนึ่งเส้นทางเชื่อมโยง

ในรายละเอียดวงจรที่ไม่มีที่สิ้นสุดของ DHCP-DISCOVER / DHCP-OFFER (เท่าที่เห็นจากฝั่งเซิร์ฟเวอร์ DHCP) ขอให้ฉันคิดว่า DHCP-client ไม่ได้รับ DHCP-OFFER และด้วยเหตุนี้ DHIS จึงเปิดตัว DHCP ใหม่ -DISCOVER ข้อความ DHCP-DISCOVER ดังกล่าว (ดังที่เห็นจากฝั่งไคลเอ็นต์ DHCP) ได้รับอย่างถูกต้องจาก DHCP-SERVER

พิจารณาสถานการณ์สมมติต่อไปนี้: ป้อนคำอธิบายรูปภาพที่นี่ การตั้งค่าผิด / ไม่ตรงกันของพอร์ต trunk สองพอร์ตหมายความว่า:

  • การรับส่งข้อมูล VLAN X ที่ส่งโดย SW A ถึง SW B ตามลำตัว (หรือจาก DHCP-Server ไปยัง DHCP-client) ไม่ได้รับการกำหนด;
  • ทราฟฟิก VLAN X ที่ส่งโดย SW B ถึง SW A ตามลำตัว (หรือจาก DHCP-Client ไปยัง DHCP-server) จะถูกแท็ก
  • เนื่องจากการตั้งค่า VLAN ดั้งเดิมของพอร์ต trunk ของ SW B นั้นไคลเอ็นต์ DHCP จะไม่ได้รับแพ็คเก็ตจาก DHCP-Server

นี่เป็นเรื่องง่ายมากที่จะแก้ไขปัญหาหากคุณ "ควบคุม" โฮสต์ DHCP-Client ในกรณีเช่นนี้สมมติว่าeth0เป็นอินเทอร์เฟซเครือข่ายที่ใช้โดยโฮสต์ DHCP ไคลเอ็นต์ซึ่งเป็นวิ:

tcpdump -n -i eth0 ether-host <dhcp-server-mac-address>

จะแสดงว่าลูกค้าได้รับ DHCP-OFFER จาก DHCP-SERVER หรือไม่

สิ่งที่ยากต่อการแก้ไขปัญหาถ้าคุณไม่สามารถควบคุมฝั่งไคลเอ็นต์

PS: เห็นได้ชัดว่าปัญหาข้างต้นเช่นเดียวกับข้อโต้แย้งอื่น ๆ ที่เกี่ยวข้องสามารถหลีกเลี่ยงได้อย่างง่ายดายใช้เทคโนโลยีที่เหมาะสม (เช่นGVRP , VTPหรืออื่น ๆ ที่ไม่เข้มงวดคู่มือ -config-approach) แต่ ... นี่มันอยู่นอกขอบเขตของคำตอบนี้


ดูเหมือนว่าสิ่งนี้สามารถเกิดขึ้นได้เนื่องจากข้อผิดพลาดของซอฟต์แวร์ในเซิร์ฟเวอร์ DHCP เมื่ออินเตอร์เฟสฝั่งเซิร์ฟเวอร์เชื่อมต่อผ่าน VLANs ที่ต่างกัน
DustWolf

6

มีปัญหาเดียวกัน ไม่เห็น DHCPACK ใด ๆ ปัญหาที่นี่คือ:

ดิสก์เต็ม

dhcpd ไม่สามารถเขียน/var/lib/dhcp/dhcpd.leasesได้


ขอบคุณมาก. ฉันเห็นการค้นพบข้อเสนอคำขอคำขอคำขอและไม่มีการตอบรับและนี่คือสาเหตุ ไม่มีอะไรใน / var / log / syslog ด้วยเหตุผลเดียวกัน มันเกี่ยวกับเวลาที่ฉันเรียนรู้ที่จะตรวจสอบสิ่งนี้ก่อนเมื่อฉันเห็นพฤติกรรมแปลก ๆ ที่เริ่มขึ้นทันที
Rob Fisher

3

ฉันเคยเห็นสิ่งนี้มาสองสามครั้งแล้วและตอนนี้ฉันเห็นเพียงสองเหตุผล:

  • ที่อยู่ IP ที่เซิร์ฟเวอร์ DHCP มอบให้มีการใช้งานโดยอุปกรณ์อื่นแล้ว โดยปกติแล้วคุณจะเห็น DHCPNAK
  • ไฟร์วอลล์ของคุณยอมรับการรับส่งข้อมูลไปยังเซิร์ฟเวอร์ dhcp แต่ไม่ใช่การรับส่งข้อมูลกลับ

โชคดีที่ทั้งคู่ควรทดสอบได้ง่าย Ping ที่อยู่ IP และตรวจสอบไฟร์วอลล์ที่เกี่ยวข้อง


ขอบคุณ ฉันส่ง Ping ไปยังที่อยู่ที่เสนอ แต่ไม่มีการตอบกลับ ฉันตั้งค่ารายการโฮสต์เพื่อบังคับให้เสนอที่อยู่อื่น แต่ดูเหมือนจะไม่ช่วย จะตรวจสอบไฟร์วอลล์
Matt

0

ฉันได้เรียนรู้เกี่ยวกับไฟร์วอลล์โดยใช้กล่องเสมือนและฉันมีปัญหาคล้ายกันที่ไม่ได้รับ DHCPACK บนเซิร์ฟเวอร์และปรากฏว่าใช้การตั้งค่าเครือข่ายกล่องเสมือนผิดสำหรับเครือข่ายทดสอบสีเขียว (ภายใน) สำหรับไฟร์วอลล์ vm ubuntu และ ทดสอบลูกค้า Ubuntu vm หากคุณใช้เครือข่าย NAT แทนเครือข่ายภายใน vb ไคลเอ็นต์ vm จะได้รับ ip จาก vb แทนที่จะเป็นเซิร์ฟเวอร์ DHCP vm บันทึกแสดงเซิร์ฟเวอร์ที่ได้รับการร้องขอจากลูกค้า แต่ลูกค้าได้รับ ip จาก vb แทนดังนั้นคุณจะไม่ได้รับ ACK ที่ส่งกลับไปที่เซิร์ฟเวอร์


0

สำหรับฉันมันเป็นเรื่องง่ายที่จะลืมปิดเซิร์ฟเวอร์ DHCP (ผ่านการแชร์อินเทอร์เน็ต) บนไคลเอนต์ ทันทีที่ฉันปิดเครื่องการเช่า DHCP ก็เป็นที่ยอมรับ:

Apr 16 03:54:18 dnsmasq-dhcp[5952]: DHCPDISCOVER(eth0) 40:6c:8f:59:24:8e
Apr 16 03:54:18 dnsmasq-dhcp[5952]: DHCPOFFER(eth0) 10.0.0.4 40:6c:8f:59:24:8e
Apr 16 03:54:26 dnsmasq-dhcp[5952]: DHCPDISCOVER(eth0) 40:6c:8f:59:24:8e
Apr 16 03:54:26 dnsmasq-dhcp[5952]: DHCPOFFER(eth0) 10.0.0.4 40:6c:8f:59:24:8e
Apr 16 03:55:34 dnsmasq-dhcp[5952]: DHCPDISCOVER(eth0) 40:6c:8f:59:24:8e
Apr 16 03:55:34 dnsmasq-dhcp[5952]: DHCPOFFER(eth0) 10.0.0.4 40:6c:8f:59:24:8e
Apr 16 03:55:35 dnsmasq-dhcp[5952]: DHCPREQUEST(eth0) 10.0.0.4 40:6c:8f:59:24:8e
Apr 16 03:55:35 dnsmasq-dhcp[5952]: DHCPACK(eth0) 10.0.0.4 40:6c:8f:59:24:8e Heaths-MBP
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.