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 Dora

    DHCP – “Người phát IP” thầm lặng mà gần như mọi mạng doanh nghiệp đều đang sử dụng.


    Hầu như mỗi lần chúng ta bật laptop, kết nối Wi-Fi công ty, cắm dây mạng vào switch hay khởi động máy ảo trong Data Center… đều có một tiến trình âm thầm diễn ra phía sau: DHCP. Nếu DHCP gặp sự cố, người dùng thường chỉ thấy một triệu chứng rất quen thuộc: “Có mạng nhưng không vào được Internet” hoặc “Máy tự nhận IP 169.254.x.x”.
    DHCP (Dynamic Host Configuration Protocol) là giao thức phổ biến nhất dùng để cấp phát thông tin IPv4 cho thiết bị đầu cuối. Thay vì kỹ sư mạng phải cấu hình IP thủ công cho từng máy, DHCP cho phép client tự động nhận IP address, subnet mask, default gateway, DNS server và nhiều thông tin mạng khác từ DHCP Server.
    DHCP Server có thể nằm ngay trong cùng subnet với client, ở subnet khác, hoặc thậm chí chính router default gateway cũng có thể đóng vai trò DHCP Server.
    Trong môi trường doanh nghiệp, khi một PC vừa khởi động, nó chưa biết gì về mạng cả. Nó chưa có IP address, chưa có default gateway, cũng chưa biết DNS server là gì. Vì vậy, DHCP phải hoạt động theo một cơ chế “hỏi – đáp” đặc biệt gọi là quy trình DORA.
    DORA gồm 4 bước:
    D – Discover
    O – Offer
    R – Request
    A – Acknowledgment
    Đây là một trong những kiến thức quan trọng cho CCNA, CCNP và cả troubleshooting thực tế.

    Bước 1 – DHCP Discover


    Khi client vừa boot lên, nó sẽ gửi một gói DHCPDISCOVER để tìm DHCP Server. Vì chưa có IP address nên:
    • Source IP sẽ là 0.0.0.0
    • Destination IP sẽ là 255.255.255.255
    • Destination MAC sẽ là FFFF.FFFF.FFFF
    Điều này có nghĩa client đang gửi broadcast ra toàn mạng LAN với nội dung kiểu như:
    “Có DHCP Server nào ngoài kia không? Cho tôi xin IP với!”
    Ví dụ:
    Source IP: 0.0.0.0
    Destination IP: 255.255.255.255
    Đây là lý do vì sao khi capture Wireshark trong mạng LAN, bạn thường thấy các gói DHCP broadcast xuất hiện ngay khi máy tính bật lên.

    Bước 2 – DHCP Offer


    Khi DHCP Server nhận được gói Discover, nó sẽ phản hồi bằng gói DHCPOFFER. Trong gói này sẽ có:
    • IP address đề nghị cấp
    • Subnet mask
    • Default gateway
    • DNS server
    • Lease time
    Ví dụ:
    IP address: 10.1.1.50
    Subnet Mask: 255.255.255.0
    Gateway: 10.1.1.1
    DNS: 8.8.8.8
    Điểm thú vị là trong mạng có thể tồn tại nhiều DHCP Server cùng lúc. Vì DHCP Discover là broadcast nên nhiều server đều có thể trả lời Offer. Thông thường client sẽ chọn DHCP Server nào phản hồi nhanh nhất. Đây cũng là nguyên nhân gây ra các sự cố cực kỳ nguy hiểm như Rogue DHCP Server, DHCP Spoofing, Client nhận sai gateway hoặc toàn bộ traffic bị redirect sang máy của kẻ tấn công attacker. Đó là lý do các doanh nghiệp thường triển khai DHCP Snooping, IP Source Guard, Dynamic ARP Inspection
    để bảo vệ hệ thống switching Layer 2.

    Bước 3 – DHCP Request


    Sau khi chọn được server phù hợp, client sẽ gửi DHCPREQUEST.
    Nội dung của gói này giống như:
    “Tôi đồng ý dùng IP mà anh vừa đề nghị. Hãy lease IP này cho tôi.”
    Điểm quan trọng là DHCPREQUEST vẫn được gửi dưới dạng broadcast. Lý do là để thông báo cho các DHCP Server khác biết rằng client đã chọn server nào. Các server còn lại sẽ thu hồi các địa chỉ đã Offer nhưng chưa dùng.

    Bước 4 – DHCP ACK


    Cuối cùng DHCP Server gửi DHCPACK để xác nhận việc cấp phát IP hoàn tất. Lúc này client chính thức sử dụng IP address, cấu hình default gateway, Client đã Có thể giao tiếp mạng. Nếu mọi thứ thành công, người dùng bắt đầu truy cập được mạng và Internet.

    Một vấn đề rất quan trọng: Broadcast không đi qua Router


    Đây là phần mà rất nhiều bạn CCNA dễ quên. DHCP Discover là broadcast Layer 3 255.255.255.255. Router mặc định sẽ không forward broadcast. Điều này có nghĩa là nếu DHCP Server nằm khác subnet thì Client sẽ KHÔNG tìm thấy DHCP Server. Ví dụ như trong hình dưới đây:
    PC VLAN 10 ---> Router ---> DHCP Server VLAN 20
    Trong trường hợp này, router phải đóng vai trò DHCP Relay Agent.
    Trên Cisco IOS, ta dùng lệnh:
    interface vlan 10
    ip helper-address 10.20.20.5
    Lệnh ip helper-address sẽ nhận broadcast DHCP từ client, sau đó convert thành unicast và router sẽ Forward tới DHCP Server. Đây là một trong những lệnh “kinh điển” của CCNA và xuất hiện rất nhiều trong troubleshooting thực tế.


    Các lỗi DHCP rất thường gặp ngoài đời thật


    Một vài lỗi phổ biếnliên quan đến DHCP là:
    • Quên cấu hình ip helper-address
    • DHCP pool hết IP
    • Default gateway cấu hình sai
    • Rogue DHCP Server trong mạng
    • DHCP Snooping chặn nhầm port
    • VLAN trunk không cho phép VLAN DHCP đi qua
    • Client nhận APIPA 169.254.x.x
    Ví dụ:
    Windows IP Configuration

    IPv4 Address: 169.254.10.5
    Điều này thường có nghĩa:
    Client không liên lạc được DHCP Server.

    Góc nhìn thực chiến


    Trong troubleshooting thực tế, DHCP thường là nơi đầu tiên kỹ sư mạng kiểm tra khi người dùng báo “Không vào mạng được”, “Có Wi-Fi nhưng không có Internet”, “Máy nhận IP lạ”, “Ping gateway không được”. Một kỹ sư giỏi không chỉ nhớ DORA, mà còn phải hiểu cặn kẽ:
    • Gói tin Broadcast hoạt động ra sao
    • Router sẽ xử lý DHCP Relay thế nào
    • Vì sao DHCP Snooping có thể làm client fail DHCP
    • Cách packet di chuyển giữa VLAN và DHCP Server
    Đây là nền tảng cực kỳ quan trọng trước khi đi sâu hơn vào Network Security, NAC / Cisco ISE, Campus Architecture, SD-Access, Zero Trust Network Access (ZTNA)​
    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