เหตุใดจึงใช้เวลาไม่กี่วินาทีในการรับที่อยู่ IP ผ่าน DHCP


24

จากความอยากรู้ทำไมมันมักจะใช้เวลาไม่กี่วินาทีในการรับการกำหนดค่าเครือข่ายผ่าน DHCP เมื่อ CPU มีความสามารถในการประมวลผลการดำเนินงานหลายล้านต่อวินาทีและการ ping ไปยังเราเตอร์นั้นใช้เวลาสองสามมิลลิวินาที

ในสภาพแวดล้อมที่บ้านของฉันกับเราเตอร์ WiFi หนึ่งตัวและอุปกรณ์ประมาณ 5 ตัวมันไม่ได้ยากที่จะเห็นเวลาเช่น 5-10 วินาที

คำตอบ:


22

นอกเหนือจากการได้รับ DHCP lease จากเซิร์ฟเวอร์ DHCP (โดยทั่วไปจะใช้เวลาไม่นานนัก) บางเซิร์ฟเวอร์จะส่ง Ping ไปยังที่อยู่ IP ที่กำลังจะส่งมอบก่อนที่จะส่งมอบจริงเพื่อยืนยันว่ายังไม่ได้ทำการยืนยัน ใช้งานบนเครือข่าย - การดำเนินการนี้ใช้เวลาสองสามวินาที บางครั้งไคลเอนต์จะทำเช่นเดียวกัน (อีกครั้งเพื่อป้องกันความขัดแย้งของที่อยู่ IP) ซึ่งจะเพิ่มเวลามากขึ้น จากนั้นลูกค้าบางรายก็จะลงทะเบียนรายการ DNS ของพวกเขาเป็นต้น


3
เซิร์ฟเวอร์ dhcp ในที่ทำงานของฉันใช้การร้องขอ ARP เพื่อตรวจสอบความขัดแย้งของ IP
— erichui

9

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

หากคุณตรวจสอบ RFC สำหรับ DHCP

http://www.faqs.org/rfcs/rfc2131.html

คุณสามารถเห็นชุดการเจรจาที่เกี่ยวข้องได้อย่างชัดเจน ที่จุดเริ่มต้นไคลเอนต์ส่ง DHCPDISCOVER ไปยังอุปกรณ์ทั้งหมดบน LAN จากนั้นเซิร์ฟเวอร์ที่เรียกใช้บริการ dhcp ส่งคืนข้อความ DHCPOFFER ไคลเอ็นต์อาจรอรับการตอบกลับจากเซิร์ฟเวอร์ dhcp ที่มีอยู่ทั้งหมดก่อนที่จะเลือกหนึ่งเซิร์ฟเวอร์ จากนั้นจะส่ง DHCPREQUEST พร้อมตัวระบุซึ่งระบุว่าเซิร์ฟเวอร์ใดที่เลือกเป็นผู้ให้บริการไอพี ในที่สุดมันก็ได้รับ DHCPACK พร้อมพารามิเตอร์การกำหนดค่าทั้งหมด นี่เป็นเพียงบทสรุปของ "3.1 การโต้ตอบกับเซิร์ฟเวอร์ - จัดสรรที่อยู่เครือข่าย" จาก RFC

จากประสบการณ์ของฉัน dhcp ใช้เวลานานส่วนใหญ่ในการตั้งค่า LAN ขนาดใหญ่ที่มีจำนวนโหนดเชื่อมต่อ ใน homenetwork ที่มีเซิร์ฟเวอร์ dhcp เพียงตัวเดียว (เช่นเราเตอร์ไร้สาย) และหนึ่งหรือสองชิ้นมันค่อนข้างเร็ว


ในเครือข่ายในบ้านของฉันกับเราเตอร์ WiFi หนึ่งตัวและอุปกรณ์ประมาณ 5 ตัวมันใช้เวลาประมาณ 5-10 วินาทีซึ่งฉันคิดว่าค่อนข้างช้า แต่ขอบคุณสำหรับคำอธิบาย
— Borek Bernard

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

ขึ้นอยู่กับเซิร์ฟเวอร์ dhcp อาจใช้เวลาหลายวินาทีโดยไม่คำนึงถึงกิจกรรมเครือข่ายหรือความเร็วของ CPU นี่เป็นเพราะเซิร์ฟเวอร์ทำการสอบถามเครือข่ายก่อนเพื่อดูว่ามีการใช้ที่อยู่ก่อนที่จะนำเสนอให้กับลูกค้าหรือไม่และต้องรออย่างน้อยสักครู่เพื่อให้ได้คำตอบ การหมดเวลานี้เป็นส่วนหนึ่งของความล่าช้าที่คุณสังเกตเห็นและจะมีอยู่แม้ในเครือข่ายที่เงียบที่สุด
— ʇsәɹoɈ

2

สองเหตุผล (และวิธีแก้ปัญหา) ฉันพบเมื่อฉันต้องการคำตอบอย่างรวดเร็วจากเซิร์ฟเวอร์ DHCP ของฉัน

1) DHCP ของฉันทำการ ping ของที่อยู่ที่ต้องการจัดสรร สิ่งนี้เพิ่มความล่าช้า 3 วินาที ฉันลบสิ่งนี้โดยเปลี่ยนการกำหนดค่า DHCP เพื่อให้มีการแมปสำหรับที่อยู่ MAC เป็นที่อยู่ IP นี่คือพื้นฐานที่ใช้ DHCP เพื่อจัดสรรที่อยู่แบบคงที่ สิ่งนี้ทำให้ฉันล่าช้าออกไป 3 วินาที

2) ฉันมีเครือข่ายแยก แต่คุณอาจได้รับในบางครั้ง มีการค้นหา DNS เสร็จสิ้นซึ่งสำหรับฉันทำให้เกิดความล่าช้าหลายวินาทีในการรับที่อยู่ IP จาก DHCP ในการกำหนดค่าเซิร์ฟเวอร์ DHCP มีตัวเลือกสำหรับโดเมนและเซิร์ฟเวอร์ DNS ของเรา หลังจากลบตัวเลือก DNS และเปลี่ยนข้างต้นฉันได้รับการตอบกลับทันทีจากเซิร์ฟเวอร์ DHCP (**)

ปัญหาเหล่านี้เป็นสิ่งที่ฉันพบในการตั้งค่าของฉัน ระยะของคุณอาจแตกต่างกันไป

ไชโย

ปอนด์

(**) ถ้าฉันมีเงินทุกครั้งที่การค้นหา DNS ที่ล้มเหลวทำให้เกิดความล่าช้าซึ่งส่งผลต่อการเคาะแปลก ๆ ซึ่งส่งผลให้ฉันเกาหัวฉันจะมีเงินมากมาย


1

ฉันไม่รู้ว่าคุณมีสถานการณ์อะไร แต่ในโลกแห่งความเป็นจริงคุณจะได้รับที่อยู่ IP ... ฯลฯ จากเซิร์ฟเวอร์เก่า (เซิร์ฟเวอร์ dhcp มักจะเป็นที่หนึ่งที่มีฮาร์ดแวร์ที่เก่าแก่ที่สุด :)) ที่มีการร้องขอมากมายหลังไฟร์วอลล์ หนึ่งหรือหลายเราเตอร์ / สวิทช์ ... ความหน่วงแฝงพลังงานซีพียู ... และในโลกของ windows การใช้ dhcp นั้นไม่มีประสิทธิภาพเท่าที่เราต้องการ!


1
"ในโลกของ windows การใช้ DHCP ไม่ได้มีประสิทธิภาพเท่าที่เราต้องการ!" คุณมีเอกสารหรือแหล่งข้อมูลสำรองสิ่งที่คุณพูดที่นี่หรือไม่?
— mfinni

ไม่ แต่ตัวอย่างเช่น .... Linux มีตัวเลือก DHCP ที่ล้มเหลวในวิธีที่ง่ายมาก นอกเหนือจากฟังก์ชั่น Active Directory ในตัวใน Windows ยังมีประเด็นอื่น ๆ ที่ควรพิจารณาว่าเป็นปัญหาด้านความปลอดภัยที่อาจเกิดขึ้น
— C_Sense

2
ฉันคิดว่าคุณกำลังสำรอกซ้ำซากซ้ำซากจากการอ่านโพสต์ทางอินเทอร์เน็ตมากเกินไป "Microsoft ไม่ดี" "ทำไม?" "เพราะทุกคนพูดอย่างนั้น"
— joeqwerty

คุณสามารถซ้อนขอบเขต DHCP บนเซิร์ฟเวอร์ Windows DHCP ได้ ด้วย win2k8 R2 เห็นได้ชัดว่ามีตัวเลือก failover ใหม่เช่นกัน บางที Linux อาจดีกว่านั้น ไม่มีสิ่งใดที่เกี่ยวข้องกับ "ประสิทธิภาพ" และ "ปัญหาความปลอดภัย" ใน Windows DHCP ที่คุณอ้างถึงคืออะไร ฉันขอแหล่งที่มาจากคุณและคุณอ้างสิทธิ์เพิ่มเติมแทน
— mfinni

0

หากคุณกำลังประสบปัญหาประสิทธิภาพการทำงานกับ dhcp;

  1. ตรวจสอบเวลาแฝงของเครือข่าย
  2. ดูที่การเจรจาแพ็คเก็ตหมวก DHCP คุณควรจะเห็นว่าการกระทำใดใช้เวลานาน (ปัญหาอาจไม่ได้อยู่กับเซิร์ฟเวอร์ dhcp ใครกำลังรอใครอยู่)
  3. ตรวจสอบโหลดเซิร์ฟเวอร์และบันทึกของเซิร์ฟเวอร์ dhcp

มันเป็นสถานการณ์เครือข่ายในบ้านฉันได้อัปเดตคำถามแล้ว
— Borek Bernard

ಠ_ಠ YU NO ASK SUPERUSER แล้วใช่ไหม
— Ablue

อาจเป็นเพราะมันเกี่ยวข้องกับระบบเครือข่ายและที่นี่เป็นสถานที่ที่ดีที่สุดสำหรับสิ่งนี้?
— Kedare

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