Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dhcp

    DHCP hoạt động như thế nào? Góc nhìn kỹ thuật từ Network Engineer


    Dynamic Host Configuration Protocol (DHCP) là một trong những phương pháp phổ biến nhất để cấp phát thông tin địa chỉ IPv4 cho các thiết bị trong mạng. Cụ thể, DHCP cho phép một DHCP client tự động nhận các thông tin cấu hình mạng như địa chỉ IP, subnet mask, default gateway, địa chỉ DNS server, cùng nhiều tham số IP khác từ DHCP server. DHCP server có thể nằm ngay trong cùng subnet với client, ở một subnet từ xa, hoặc thậm chí chính là thiết bị đang đóng vai trò default gateway.

    Vì DHCP gần như xuất hiện trong mọi hệ thống mạng IPv4 hiện đại, người quản trị mạng cần hiểu rất rõ cơ chế vận hành của giao thức này cũng như cách nhận diện và xử lý các sự cố liên quan. Phần này sẽ tập trung giải thích cách DHCP hoạt động từ góc nhìn kỹ thuật và những điểm quan trọng trong troubleshooting. Xem lại cách DHCP vận hành


    Nếu ở nhà bạn đang sử dụng kết nối Internet qua cable modem, DSL, hoặc fiber, rất có thể router gia đình của bạn đang nhận địa chỉ IP từ nhà cung cấp dịch vụ thông qua DHCP. Đồng thời, chính router đó cũng thường đóng vai trò DHCP server để cấp phát địa chỉ IP cho laptop, điện thoại, smart TV và các thiết bị khác trong mạng nội bộ.

    Trong môi trường doanh nghiệp cũng tương tự. Khi một máy tính khởi động, thiết bị đó thường chưa có bất kỳ cấu hình IP nào. Nó sẽ phải liên hệ với DHCP server để lấy cấu hình cần thiết.

    Quá trình này diễn ra theo chuỗi DORA nổi tiếng:
    • Discover
    • Offer
    • Request
    • Acknowledgment (ACK)
    DHCP DORA Process – Phân tích từng bước

    Bước 1: DHCP Discover


    Khi một DHCP client vừa khởi động, nó chưa biết:
    • địa chỉ IP của chính mình
    • default gateway
    • subnet mask
    • DHCP server đang ở đâu

    Do chưa có bất kỳ thông tin định tuyến nào, cách duy nhất để “gọi tìm” DHCP server là phát broadcast.

    Client sẽ gửi gói DHCPDISCOVER với các đặc điểm:
    • Destination IP: 255.255.255.255
    • Destination MAC: FFFF.FFFF.FFFF
    • Source IP: 0.0.0.0
    • Source MAC: MAC address thực của client

    Điều này hoàn toàn hợp lý. Một thiết bị chưa có IP thì không thể gửi unicast đến một server cụ thể mà nó chưa biết tồn tại ở đâu.

    Đây là bước mà packet capture bằng Wireshark thường cho thấy những frame broadcast rất dễ nhận diện.
    Bước 2: DHCP Offer


    Khi DHCP server nhận được DHCPDISCOVER, nó có thể phản hồi bằng gói DHCPOFFER.

    Thông tin trong gói này thường bao gồm:
    • IP address đề xuất cấp
    • subnet mask
    • default gateway
    • DNS server
    • lease time
    • các DHCP options khác

    Một điểm kỹ thuật thú vị là vì DHCPDISCOVER là broadcast nên nhiều DHCP server có thể cùng nhận được yêu cầu.

    Nếu trong cùng broadcast domain tồn tại nhiều DHCP server, client có thể nhận nhiều DHCPOFFER khác nhau.

    Thông thường, client sẽ chọn server phản hồi đầu tiên.

    Đây cũng chính là lý do rogue DHCP server là một rủi ro thực tế rất nguy hiểm trong enterprise network.
    Bước 3: DHCP Request


    Sau khi chọn được DHCP server phù hợp, client gửi gói DHCPREQUEST.

    Điểm đáng chú ý là DHCPREQUEST vẫn thường được gửi dưới dạng broadcast.

    Lý do:
    • thông báo cho DHCP server được chọn rằng client chấp nhận lời đề nghị
    • đồng thời báo cho các DHCP server khác rằng lời đề nghị của họ không được chọn

    DHCPREQUEST essentially là câu nói:

    "Tôi sẽ dùng địa chỉ IP mà server này vừa offer. Xin hãy chính thức lease địa chỉ đó cho tôi."
    Bước 4: DHCP ACK


    Cuối cùng, DHCP server gửi DHCPACK.

    Thông điệp này xác nhận:
    • địa chỉ IP đã chính thức được cấp
    • lease đã được tạo
    • client có thể bắt đầu sử dụng cấu hình này

    Ngoài IP address, DHCPACK còn có thể chứa:
    • DNS settings
    • NTP server
    • domain name
    • vendor-specific options
    • PXE boot parameters

    Từ thời điểm này, client đã có thể giao tiếp bình thường trên mạng.
    Một vấn đề cực kỳ quan trọng: Broadcast không đi qua router


    Đây là điểm khiến rất nhiều kỹ sư mới gặp lỗi DHCP.

    DHCPDISCOVER là broadcast.

    Broadcast Layer 3 mặc định không đi qua router boundary.

    Điều này có nghĩa:

    Nếu DHCP client và DHCP server nằm ở hai subnet khác nhau, DHCP sẽ thất bại nếu không có cơ chế trung gian.

    Ví dụ:

    Client:
    172.16.1.0/24

    DHCP Server:
    10.1.1.0/24

    Router nằm giữa hai mạng này.

    Nếu không cấu hình gì thêm:

    DHCPDISCOVER sẽ chết ngay tại local subnet.

    Server sẽ không bao giờ nhìn thấy request.
    DHCP Relay Agent – Cứu tinh của môi trường enterprise


    Giải pháp chính là DHCP Relay Agent.

    Router hoặc Layer 3 gateway sẽ đóng vai trò trung gian:
    • nhận broadcast DHCPDISCOVER từ client
    • chuyển đổi thành unicast
    • gửi đến DHCP server từ xa

    Cisco dùng lệnh:
    interface fa0/0
    ip helper-address 10.1.1.2

    Ý nghĩa:
    • interface này là nơi client DHCP gửi request vào
    • router sẽ relay DHCP messages đến DHCP server 10.1.1.2

    Ví dụ đầy đủ:
    R1(config)# service dhcp
    R1(config)# interface fa0/0
    R1(config-if)# ip helper-address 10.1.1.2
    Vai trò của service dhcp


    Lệnh:
    service dhcp

    kích hoạt DHCP service trên router.

    Thông thường:

    DHCP service được enable mặc định.

    Nhưng trong quá trình troubleshooting, vẫn nên kiểm tra.

    Nếu ai đó từng disable bằng:
    no service dhcp

    thì relay functionality có thể không hoạt động như mong đợi.
    Sai ip helper-address = lỗi rất khó chịu


    Một lỗi kinh điển:
    ip helper-address 10.1.1.99

    trong khi DHCP server thật là:
    10.1.1.2

    Kết quả:

    Router vẫn relay bình thường.

    Nhưng relay đến sai thiết bị.

    Từ góc nhìn client:

    DHCP timeout.

    Từ góc nhìn admin:

    “mọi thứ có vẻ đúng nhưng vẫn không chạy.”

    Đây là kiểu lỗi mất thời gian debug nhất.
    Đặt helper sai interface


    Một lỗi phổ biến khác:

    Cấu hình helper trên interface uplink thay vì interface client-facing.

    Sai:
    interface fa0/1
    ip helper-address 10.1.1.2

    Trong khi DHCPDISCOVER thực tế đi vào từ:
    fa0/0

    Router chỉ relay broadcast nhận được trên interface đã cấu hình đúng.

    Sai interface = không relay.
    ip helper-address không chỉ relay DHCP


    Nhiều người nghĩ helper chỉ dành cho DHCP.

    Không hẳn.

    Cisco relay thêm một số broadcast protocols khác:
    • TFTP
    • DNS
    • Internet Time Service (ITS)
    • NetBIOS Name Server
    • NetBIOS Datagram Server
    • BootP
    • TACACS

    Điều này quan trọng khi troubleshooting những hệ thống legacy.
    Góc nhìn thực chiến troubleshooting


    Khi DHCP fail, hãy kiểm tra theo đúng flow:

    Nếu client không nhận IP:

    Bắt đầu từ câu hỏi:

    Client có gửi Discover không?

    Nếu không:
    • NIC issue
    • VLAN issue
    • switchport issue
    • endpoint firewall

    Nếu có Discover nhưng không thấy Offer:
    • DHCP server down
    • DHCP pool exhausted
    • relay misconfiguration
    • ACL blocking UDP 67/68

    Nếu có Offer nhưng client không hoàn tất:
    • duplicate IP
    • malformed DHCP options
    • rogue DHCP
    • packet loss
    • security filtering

    Tóm tắt bài DHCP


    DHCP thường bị xem là giao thức “cắm vào là chạy”. Trong thực tế, đây là một trong những dịch vụ dễ gây sự cố nhất trong enterprise network vì nó phụ thuộc đồng thời vào:
    • Layer 2 switching
    • VLAN design
    • Layer 3 routing
    • broadcast forwarding behavior
    • relay configuration
    • server health
    • security policy

    Muốn troubleshooting DHCP hiệu quả, đừng chỉ nhớ DORA như lý thuyết certification. Hãy hình dung từng packet thực sự đang đi đâu, bị chặn ở đâu, và ai đang chịu trách nhiệm chuyển tiếp nó. Đó mới là tư duy của network engineer thực chiến.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X