IP Overlapping với Proxy – ARP

Discussion in 'Tổng hợp' started by khoaTGM, Aug 22, 2017.

  1. khoaTGM

    khoaTGM Member

    IP Overlapping với Proxy – ARP

    Trong bài viết này chúng ta sẽ tìm hiểu proxy ARP được sử dụng để giải quyết một tình huống overlap IP trên sơ đồ mạng.
    Mình sẽ làm ví dụ để các bạn hiểu rõ hơn.

    Sơ đồ

    upload_2017-8-22_11-7-32.jpeg

    Mô tả

    • Sơ đồ gồm 4 Router Cisco được đấu nối với nhau như hình
    • Trên sơ đồ này, hai router Host1 và Host2 đóng vai trò như các host trên các subnet 192.168.1.0/24 và 192.168.1.128/25. Để ý rằng trong quy hoạch IP trên hình 1, hai subnet trên hai mạng LAN kết nối vào cổng F0/0 của R1 và R2 đã bị overlap lên nhau (mạng 192.168.1.128/25 là mạng con của 192.168.1.0/24).
    • Không thay đổi lại quy hoạch IP đã thực hiện, chúng ta sẽ sử dụng tính năng proxy – ARP trên router Cisco để giải quyết vấn đề overlap IP này.

    Thực hiện

    Bước 1: Cấu hình ban đầu

    • Thực hiện đặt IP trên các cổng của các router cisco theo quy hoạch IP như được chỉ ra trên hình 1.
    • Chạy một hình thức định tuyến bất kỳ giữa R1 và R2 đảm bảo hai router này thấy được các mạng LAN của nhau.
    • Các host thực hiện chỉ default – gateway về các router gateway trên mạng LAN của mình.

    Cấu hình

    Trên R1:

    R1(config)#interface f0/0
    R1(config-if)#no shutdown
    R1(config-if)#ip address 192.168.1.1 255.255.255.0
    R1(config-if)#exit
    R1(config)#interface f0/1
    R1(config-if)#no shutdown
    R1(config-if)#ip address 192.168.12.1 255.255.255.0
    R1(config-if)#exit
    R1(config)#router eigrp 100
    R1(config-router)#network 192.168.12.1 0.0.0.0
    R1(config-router)#network 192.168.1.1 0.0.0.0
    R1(config-router)#exit


    Trên R2:

    R2(config)#interface f0/0
    R2(config-if)#no shutdown
    R2(config-if)#ip address 192.168.1.129 255.255.255.128
    R2(config-if)#exit
    R2(config)#interface f0/1
    R2(config-if)#no shutdown
    R2(config-if)#ip address 192.168.12.2 255.255.255.0
    R2(config-if)#exit
    R2(config)#router eigrp 100
    R2(config-router)#no auto-summary
    R2(config-router)#network 192.168.12.2 0.0.0.0
    R2(config-router)#network 192.168.1.129 0.0.0.0
    R2(config-router)#exit


    Trên Host1:

    Host1(config)#interface f0/0
    Host1(config-if)#no shutdown
    Host1(config-if)#ip address 192.168.1.2 255.255.255.0
    Host1(config-if)#exit
    Host1(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1


    Trên Host2:

    Host2(config)#interface f0/0
    Host2(config-if)#no shutdown
    Host2(config-if)#ip address 192.168.1.130 255.255.255.128
    Host2(config-if)#exit
    Host2(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.129


    Kiểm tra

    Ta kiểm tra rằng định tuyến đã hội tụ trên các router R1 và R2:

    R1#show ip route eigrp
    192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
    D 192.168.1.128/25
    [90/30720] via 192.168.12.2, 00:00:22, FastEthernet0/1


    R2#show ip route eigrp
    192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
    D 192.168.1.0/24 [90/30720] via 192.168.12.1, 00:00:27, FastEthernet0/1


    R1 và R2 đã đi được đến các subnet trên các mạng LAN của nhau:

    R1#ping 192.168.1.129
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 192.168.1.129, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 28/39/56 ms


    R2#ping 192.168.1.1
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 28/36/56 ms


    Bước 2: Khắc phục IP overlapping với proxy ARP

    • Sử dụng proxy – ARP trên router thích hợp để đảm bảo các host của mạng LAN 192.168.1.0/24 và các host của mạng LAN 192.168.1.128/25 có thể giao tiếp được với nhau, từ đó khắc phục được vấn để IP overlapping trên sơ đồ hình 1 mà không cần phải thay đổi quy hoạch IP.

    Cấu hình

    Trên R1:

    R1(config)#interface f0/0
    R1(config-if)#ip proxy-arp
    R1(config-if)#exit
     
  2. khoaTGM

    khoaTGM Member

    IP Overlapping với Proxy – ARP (tiếp theo)

    Ghi chú

    Mặc định, tính năng proxy – ARP được bật trên cổng Ethernet của router Cisco nên ta không cần phải cấu hình tường minh như ở trên. Để kiểm tra tác dụng của lệnh này, ta thực hiện gỡ bỏ tính năng proxy – ARP trên cổng F0/0 của router R1:

    R1(config)#interface f0/0
    R1(config-if)#no ip proxy-arp
    R1(config-if)#exit


    Khi proxy – ARP không được sử dụng, các host của LAN 192.168.1.0/24 không còn đi được đến các host của LAN 192.168.1.128/25 nữa:

    Host1#ping 192.168.1.130
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 192.168.1.130, timeout is 2 seconds:
    .....
    Success rate is 0 percent (0/5)


    Ta cùng nhau giải thích vấn đề này.

    Khi Host1 gửi gói tin đến địa chỉ 192.168.1.130, vì Host1 được đặt IP là 192.168.1.2/24 nên nó thấy rằng địa chỉ 192.168.1.130 cùng mạng với nó. Xét trên khía cạnh định tuyến, Host1 thấy rằng đích đến thuộc về subnet connected 192.168.1.0/24 trên cổng F0/0 chứ không phải một subnet ở xa:

    Host1#show ip route 192.168.1.130
    Routing entry for 192.168.1.0/24
    Known via "connected", distance 0, metric 0 (connected, via interface)
    Routing Descriptor Blocks:
    * directly connected, via FastEthernet0/0
    Route metric is 0, traffic share count is 1


    Do đó, Host1 sẽ không chuyển gói này lên default – gateway mà thực hiện phân giải ARP cho địa chỉ 192.168.1.130 để tìm ra địa chỉ MAC tương ứng với IP này và sau đó thực hiện đóng frame với source MAC là MAC trên cổng F0/0 của nó và destination MAC là MAC phân giải được rồi gửi frame đến thiết bị đích đến. Tuy nhiên, như chúng ta thấy trên hình 1, host 192.168.1.130 nằm trên một mạng LAN ở xa chứ không phải thuộc về cùng một mạng LAN với Host1 nên không có máy nào trả lời ARP Reply cho Request phát đi từ Host1 dẫn đến phân giải ARP không thành công và hoạt động ping thất bại.

    Ta kiểm tra bảng ARP của Host1 để xác nhận điều này:


    Host1#show ip arp

    Protocol Address Age (min) Hardware Addr Type Interface
    Internet 192.168.1.2 - 0017.e0bf.e440 ARPA FastEthernet0/0
    Internet 192.168.1.130 0 Incomplete ARPA
    Ta cũng có thể thực hiện debug trên Host1 để thấy rằng đóng gói diễn ra không thành công:
    Host1#debug ip packet detail
    IP packet debugging is on (detailed)


    Host1#ping 192.168.1.130
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 192.168.1.130, timeout is 2 seconds:
    *Mar 1 00:39:29.107: IP: tableid=0, s=192.168.1.2 (local), d=192.168.1.130 (FastEthernet0/0), routed via RIB
    *Mar 1 00:39:29.111: IP: s=192.168.1.2 (local), d=192.168.1.130 (FastEthernet0/0), len 100, sending
    *Mar 1 00:39:29.115: ICMP type=8, code=0
    *Mar 1 00:39:29.119: IP: s=192.168.1.2 (local), d=192.168.1.130 (FastEthernet0/0), len 100, encapsulation failed
    *Mar 1 00:39:29.123: ICMP type=8, code=0.


    Tóm lại, do lỗi quy hoạch IP sai, dẫn đến các host trên LAN 192.168.1.0/24 khi gửi dữ liệu đến các host trên LAN 192.168.1.128/25 ở xa lại cứ “nghĩ rằng” đang gửi đến các host trên cùng mạng LAN với mình, vì vậy không nhờ đến default – gateway mà chỉ thực hiện các hoạt động gửi dữ liệu nội bộ trên LAN, do vậy việc gửi dữ liệu diễn ra không thành công.
    Tiếp theo, ta thực hiện bật proxy – ARP trên cổng F0/0 của default – gateway R1:

    R1(config)#interface f0/0
    R1(config-if)#ip proxy-arp
    R1(config-if)#exit

    Lần này, Host1 đã đi được đến Host2:

    Host1#ping 192.168.1.130
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 192.168.1.130, timeout is 2 seconds:
    ..!!!
    Success rate is 60 percent (3/5), round-trip min/avg/max = 92/112/128 ms


    Host1#ping 192.168.1.130
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 192.168.1.130, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 72/110/144 ms


    Ta giải thích kết quả này.
    Giống như lần trước, Host1 vẫn chỉ coi Host2 với địa chỉ 192.168.1.130 là một host cùng mạng với nó chứ không hề biết rằng Host2 nằm trên một mạng LAN ở xa và vì thế Host1 vẫn thực hiện tác vụ gửi ARP Request cho địa chỉ 192.168.1.130.
    Tuy nhiên, điểm khác biệt lần này là R1 đã được bật proxy – ARP nên R1 sẽ thực hiện trả lời ARP reply cho request đến từ Host1, không để xảy ra tình trạng không có ai trả lời ARP như lần trước. Ta nhắc lại rằng với tính năng proxy – ARP, router sẽ thực hiện trả lời ARP cho các địa chỉ IP mà match với một route nào đó trong bảng định tuyến của nó. Với trường hợp này, R1 thấy rằng IP cần phân giải 192.168.1.130 match với route 192.168.1.128/25 trong bảng định tuyến nên router R1 thực hiện trả lời ARP cho địa chỉ này, phân giải IP 192.168.1.130 về địa chỉ MAC trên cổng F0/0 của nó:

    ! Match với route 192.168.1.128/25
    R1#show ip route 192.168.1.130

    Routing entry for 192.168.1.128/25
    Known via "eigrp 100", distance 90, metric 30720, type internal
    Redistributing via eigrp 100
    Last update from 192.168.12.2 on FastEthernet0/1, 00:46:07 ago
    Routing Descriptor Blocks:
    * 192.168.12.2, from 192.168.12.2, 00:46:07 ago, via FastEthernet0/1
    Route metric is 30720, traffic share count is 1
    Total delay is 200 microseconds, minimum bandwidth is 100000 Kbit
    Reliability 255/255, minimum MTU 1500 bytes
    Loading 1/255, Hops 1


    !Kết quả phân giải cho địa chỉ 192.168.1.130 trỏ về MAC trên F0/0 của R1

    R1#show interfaces f0/0 | inc bia
    Hardware is MV96340 Ethernet, address is 0021.a03b.d828 (bia 0021.a03b.d828)

    Host1#show ip arp

    Protocol Address Age (min) Hardware Addr Type Interface
    Internet 192.168.1.2 - 0017.e0bf.e440 ARPA FastEthernet0/0
    Internet 192.168.1.130 13 0021.a03b.d828 ARPA FastEthernet0/0

    (Lưu ý rằng R1 sẽ chỉ thực hiện hoạt động proxy ARP nếu địa chỉ IP cần phân giải match với route có output interface khác với interface mà nó đã nhận được ARP request cho địa chỉ này. Trong bài lab đang xét, output interface của route nêu trên là F0/1, khác với cổng nhận được ARP request là F0/0.)

    Với kết quả phân giải ARP ở trên, Host1 sẽ đóng frame gói IP gửi đến 192.168.1.130 vào một frame có source MAC là MAC trên cổng F0/0 của nó và destination MAC là MAC trên cổng F0/0 của router default – gateway. Frame này sẽ được hệ thống chuyển mạch Ethernet chuyển đến gateway R1, R1 sau khi nhận được gói IP sẽ tra cứu định tuyến và thấy rằng gói này cần phải được chuyển ra cổng F0/1 để đi tiếp đến R2, R2 khi nhận được gói tin này sẽ chuyển xuống Host2 kết nối trực tiếp với nó.
    Về phần dữ liệu trả về, vì Host2 thấy rằng địa chỉ đích của gói trả về là 192.168.1.2, là một IP khác mạng với nó nên sẽ chuyển gói này lên default – gateway R2 để R2 chuyển đi tiếp:

    Host2#show ip route 192.168.1.2
    % Subnet not in table

    Host2#show ip route 0.0.0.0
    Routing entry for 0.0.0.0/0, supernet
    Known via "static", distance 1, metric 0, candidate default path
    Routing Descriptor Blocks:
    * 192.168.1.129
    Route metric is 0, traffic share count is 1


    R2 tra cứu bảng định tuyến thấy rằng route match với đích đến 192.168.1.2 chỉ đường ra là F0/1 sẽ chuyển gói trả về này ra cổng F0/1 để đi tiếp đến R1, từ đó đến tay thiết bị nhận là Host1, hoàn tất hoạt động trao đổi dữ liệu:

    R2#show ip route 192.168.1.2
    Routing entry for 192.168.1.0/24
    Known via "eigrp 100", distance 90, metric 30720, type internal
    Redistributing via eigrp 100
    Last update from 192.168.12.1 on FastEthernet0/1, 01:00:06 ago
    Routing Descriptor Blocks:
    * 192.168.12.1, from 192.168.12.1, 01:00:06 ago, via FastEthernet0/1
    Route metric is 30720, traffic share count is 1
    Total delay is 200 microseconds, minimum bandwidth is 100000 Kbit
    Reliability 255/255, minimum MTU 1500 bytes
    Loading 1/255, Hops 1

    Như vậy, nhờ có proxy – ARP được bật trên cổng F0/0 của R1, ta đã khắc phục được vấn đề IP overlapping trên sơ đồ hình 1 mà không cần phải thay đổi quy hoạch IP trên sơ đồ.

    Chúc các bạn thành công!
     

Share This Page