Powered by Blogger.

IP SERVICES - BÀI SỐ 13: PROXY ARP

Trong bài viết tuần trước chúng ta đã cùng trao đổi về giao thức phân giải địa chỉ ARP. Trong bài viết tuần này, chúng ta sẽ cùng tiếp tục tìm hiểu về một biến thể của ARP là Proxy ARP. Proxy ARP cho phép một thiết bị mạng trả lời ARP thay cho một địa chỉ IP không tồn tại trên mạng LAN nhưng thiết bị này biết đường đi đến địa chỉ ấy (route đi đến địa chỉ ấy tồn tại trong bảng định tuyến của thiết bị đang xét).


Như thường lệ, để nắm được vấn đề cần trao đổi, chúng ta xem xét một bài lab ví dụ:
SƠ ĐỒ


Hình 1 – Sơ đồ bài lab ví dụ.
MÔ TẢ

· Sơ đồ tìm hiểu gồm 4 router, trong đó, hai router R1 và R2 đóng vai trò của các router định tuyến cho mạng đang xét. Các router PC1 và PC2 sẽ được sử dụng để giả lập các host trên mạng LAN 192.168.1.0/24 kết nối vào cổng F0/0 của R1.

· Chúng ta sẽ thực hiện tắt chức năng định tuyến trên hai router PC1 và PC2 để “các host” này chỉ có thể đi đến được các mạng bên ngoài thông qua phương thức Proxy – ARP. Phương thức default – gateway thông thường sẽ không được sử dụng trong trường hợp này.

· Người viết sử dụng các router Cisco dòng 2811với hệ điều hành là “c2800nm-adventerprisek9-mz.124-15.T1.bin” để thực hiện bài viết này.
THỰC HIỆN
BƯỚC 1: CẤU HÌNH CƠ BẢN TRÊN CÁC THIẾT BỊ

Trong bước này, chúng ta thực hiện đặt địa chỉ IP trên các cổng của các router theo quy hoạch IP được chỉ ra như trên hình vẽ.

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.252

R1(config-if)#exit

Trên R2:


R2(config)#interface f0/0

R2(config-if)#no shutdown

R2(config-if)#ip address 192.168.12.2 255.255.255.252

R2(config-if)#exit

R2(config)#interface f0/1

R2(config-if)#no shutdown

R2(config-if)#ip address 192.168.2.1 255.255.255.0

R2(config-if)#exit

Trên PC1:


PC1(config)#interface f0/0

PC1(config-if)#no shutdown

PC1(config-if)#ip address 192.168.1.101 255.255.255.0

PC1(config-if)#exit

Trên PC2:


PC2(config)#interface f0/0

PC2(config-if)#no shutdown

PC2(config-if)#ip address 192.168.1.102 255.255.255.0

PC2(config-if)#exit

Ta kiểm tra rằng các địa chỉ trong mạng LAN của R1 đã đi đến được nhau:


PC1#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/56/96 ms

PC1#ping 192.168.1.102

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.1.102, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 36/68/124 ms

Cũng trong bước này, chúng ta thực hiện chạy định tuyến trên các router để hai mạng LAN 1 và 2 có thể thấy nhau:


R1(config)#ip route 192.168.2.0 255.255.255.0 192.168.12.2

R2(config)#ip route 192.168.1.0 255.255.255.0 192.168.12.1

Chúng ta thực hiện kiểm tra điều này:

Các static route vừa cấu hình đã xuất hiện trong bảng định tuyến của R1 và R2:


R1#show ip route static

S 192.168.2.0/24 [1/0] via 192.168.12.2

R2#show ip route static

S 192.168.1.0/24 [1/0] via 192.168.12.1

Hai mạng LAN đã có thể đi đến đươc nhau:


R1#ping 192.168.2.1 source 192.168.1.1



Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:

Packet sent with a source address of 192.168.1.1

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 28/38/60 ms

Đến đây, chúng ta đã hoàn thành cấu hình cơ bản cho sơ đồ lab ví dụ.
BƯỚC 2: DEFAULT – GATEWAY

Trong bước 1, chúng ta đã đảm bảo về định tuyến để hai mạng LAN có thể thấy nhau. Tuy nhiên, chúng ta vẫn chưa thực hiện các thao tác để các host bên trong có thể đi ra khỏi mạng LAN của chúng nhằm đi đến các subnet khác ở bên ngoài. Trong trường hợp này, khi ta chưa cấu hình gì thêm, các PC1 và 2 chỉ có thể liên lạc nội bộ trong mạng LAN của chúng mà không thể giao tiếp được với các địa chỉ IP khác mạng bên ngoài.

Một giải pháp rất phổ biến trên các PC đầu cuối là chúng ta sẽ cấu hình trên các PC này địa chỉ của default – gateway chỉ đến router gateway của mạng. Khi đó, mọi gói tin của PC đi ra khỏi mạng LAN (đi đến IP khác mạng) sẽ được PC đóng frame chuyển đến cho router default gateway để có thể được chuyển đi tiếp. Frame đi đến gateway sẽ có source MAC là địa chỉ MAC của PC và destination MAC là địa chỉ MAC trên cổng giao tiếp với mạng LAN của router.

Chúng ta cùng cấu hình và thực hiện một số thao tác kiểm tra để nắm rõ ý này:

Trên “các PC”, chúng ta khai báo default – gateway chỉ đến địa chỉ 192.168.1.1 của R1. Với router, thao tác này chính là thao tác khai báo default – route với next – hop chính là IP của R1:


PC1(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1

PC2(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1

Khi đã khai báo gateway, các PC này đã có thể đi ra khỏi mạng LAN của mình để đến các địa chỉ khác bên ngoài:


PC1#ping 192.168.2.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 64/103/128 ms

PC2#ping 192.168.2.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 60/98/156 ms

Ta cùng phân tích tiến trình đẩy gói tin ra bên ngoài của các PC, xét ví dụ trên PC1. Khi PC1 cần phải gửi gói đến địa chỉ 192.168.2.1, nó thấy rằng địa chỉ này khác mạng với nó và nó không biết cách nào để đi đến được địa chỉ này, PC sẽ thực hiện chuyển gói tin này lên default – router để router gateway này sẽ chuyển gói đi tiếp theo kết quả định tuyến.

PC sẽ thực hiện đóng một frame Ethernet để tải gói này, frame này sẽ có source MAC là địa chỉ MAC trên card mạng của nó và destination MAC là địa chỉ MAC trên cổng F0/0 của router R1. Như đã trình bày trong bài viết trước, ban đầu PC sẽ không thể biết được MAC nào là MAC trên cổng F0/0 của router để mà đóng gói và nó phải thực hiện phân giải địa chỉ bằng giao thức ARP để tìm cho ra MAC này. PC sẽ phát broadcast gói ARP request truy vấn MAC tương ứng với địa chỉ gateway đã khai báo là 192.168.1.1; router R1 khi nhận được truy vấn sẽ hồi đáp bằng gói ARP reply cho biết địa chỉ MAC trên cổng F0/0 của nó. PC sẽ cập nhật thông tin này vào ARP cache và từ nay về sau sẽ sử dụng entry này để đóng frame cho mọi gói tin đi ra khỏi mạng LAN để đến nơi khác.

Ta quan sát kết quả phân giải ARP của PC1:


PC1#show arp

Protocol Address Age (min) Hardware Addr Type Interface

Internet 192.168.1.101 - 0017.e0bf.e440 ARPA FastEthernet0/0

Internet 192.168.1.102 59 0021.a053.94d0 ARPA FastEthernet0/0

Internet 192.168.1.1 60 0021.a03b.d828 ARPA FastEthernet0/0

R1#show interfaces f0/0 | inc bia

Hardware is MV96340 Ethernet, address is 0021.a03b.d828 (bia 0021.a03b.d828)

Ta thấy PC1 đã cập nhật trong bảng ARP cache của nó địa chỉ IP và địa chỉ MAC trên cổng F0/0 của R1.

Về bản chất, khi sử dụng phương thức default – gateway, PC đã hoạt động như một router. Router PC này khai báo một default – route trỏ đển router gateway của mạng LAN và sử dụng default – router này để đi đến mọi đích đến có IP khác mạng với nó. Hoạt động ARP được sử dụng để ánh xạ địa chỉ MAC của IP next hop trong default – route này.

Ngày này, đa số các hệ điều hành cài trên các máy tính cá nhân đều sử dụng phương thức default gateway để giúp cho máy tính có thể đi ra khỏi mạng LAN của nó truy nhập đến các tài nguyên bên ngoài. Tuy nhiên, vẫn còn một phương thức khác cho phép PC đi ra được mạng bên ngoài mà không cần phải khai báo default – gateway và vì vậy không cần phải hoạt động như một router mini, đó là phương thức sử dụng Proxy ARP. Chúng ta cùng trao đổi về Proxy ARP trong bước tiếp theo.
BƯỚC 3: PROXY ARP

Với phương thức Proxy ARP, các PC sẽ không hoạt động như một router mini và không cần phải trỏ default – route về router gateway (tức là không cần phải khai báo default gateway nữa).

Khi cần gửi một gói tin đi ra bên ngoài, PC vẫn phải tìm cách đẩy gói tin này lên router để đi tiếp và sẽ vẫn thực hiện đóng gói gói tin này vào một Ethernet frame có source MAC là MAC của PC và destination MAC là MAC của router để chuyển nó lên router. Tuy nhiên, hoạt động phân giải địa chỉ ARP của PC lúc này hoàn toàn khác, nó sẽ thực hiện phân giải ARP để tìm kiếm MAC tương ứng với địa chỉ IP đích đến chứ không phải IP của router như với trường hợp sử dụng phương thức default gateway. Tất nhiên, địa chỉ IP đích đến này không tồn tại trên mạng LAN nên sẽ không có thực thể nào hồi đáp ARP Reply cho IP này. Nếu router được bật tính năng Proxy ARP, nó sẽ kiểm tra trong bảng định tuyến xem có route nào phù hợp với IP đích đến không, nếu có, router sẽ trả lời ARP Reply cho ARP Request vừa nêu của PC và trả về địa chỉ MAC của nó. Kết quả, PC sẽ cập nhật trong bảng ARP cache của nó địa chỉ MAC của router cho IP đích đến bên ngoài và như vậy có thể đóng frame được gói tin đi ra ngoài để chuyển lên cho router.

Chúng ta cùng tiến hành trên lab:

Đầu tiên, ta tắt chức năng routing trên PC1 và PC2, hai PC này lúc này không còn hoạt động như một router nữa mà là một host thực sự:


PC1(config)#no ip routing

PC2(config)#no ip routing

Để router có thể đại diện trả lới ARP Reply cho các IP không có trên mạng LAN, chúng ta cần bật tính năng Proxy ARP trên cổng giao tiếp với mạng LAN của router:


R1(config)#interface f0/0

R1(config-if)#ip proxy-arp

R1(config-if)#exit

Tính năng Proxy – ARP mặc định được bật trên các cổng Ethernet của router Cisco nên ta có thể không cần phải cấu hình lệnh này.

Ta kiểm tra rằng các host PC1 và PC2 vẫn đi đến được LAN 2:


PC1#ping 192.168.2.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 32/243/1040 ms

PC2#ping 192.168.2.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 24/241/1048 ms

Ta kiểm tra kết quả phân giải ARP trên các PC, xét ví dụ PC1:


PC1#show arp

Protocol Address Age (min) Hardware Addr Type Interface

Internet 192.168.1.101 - 0017.e0bf.e440 ARPA FastEthernet0/0

Internet 192.168.1.102 0 0021.a053.94d0 ARPA FastEthernet0/0

Internet 192.168.2.1 3 0021.a03b.d828 ARPA FastEthernet0/0

R1#show interfaces f0/0 | inc bia

Hardware is MV96340 Ethernet, address is 0021.a03b.d828 (bia 0021.a03b.d828)

Ta thấy địa chỉ IP đích đến 192.168.2.1 đã được ánh xạ vào địa chỉ MAC trên cổng F0/0 của R1, R1 đã đại diện cho địa chỉ IP này để trả lời ARP của PC1. Điều này sẽ được thực hiện với mọi địa chỉ khác ở bên ngoài mạng LAN mà PC1 cần đi đến. Ta có thể kiểm chứng bằng cách tạo thêm một subnet bên ngoài, thực hiện định tuyến giữa hai router và ping đến địa chỉ mới này từ PC1:


R2(config)#interface loopback 0

R2(config-if)#ip address 192.168.22.1 255.255.255.0

R2(config-if)#exit

R1(config)#ip route 192.168.22.0 255.255.255.0 192.168.12.2

PC1#ping 192.168.22.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.22.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 24/259/1076 ms

Bảng ARP của PC1:


PC1#show arp

Protocol Address Age (min) Hardware Addr Type Interface

Internet 192.168.1.101 - 0017.e0bf.e440 ARPA FastEthernet0/0

Internet 192.168.1.102 15 0021.a053.94d0 ARPA FastEthernet0/0

Internet 192.168.2.1 18 0021.a03b.d828 ARPA FastEthernet0/0

Internet 192.168.22.1 2 0021.a03b.d828 ARPA FastEthernet0/0

Ta thấy các địa chỉ đích đến ở ngoài mạng đều đã được phân giải về địa chỉ MAC của cổng F0/0 router R1.

Tóm lại, với phương thức Proxy ARP, các PC sẽ thực hiện phân giải cho địa chỉ IP đích đến tương ứng với địa chỉ MAC của cổng đấu nối của router; chứ không thực hiện phân giải địa chỉ MAC cho địa chỉ IP của router như với trường hợp default gateway nữa.

Ngày nay, đa số các trường hợp thiết lập đi ra bên ngoài cho các host bên trong sử dụng phương thức default – gateway và ít khi sử dụng phương thức Proxy – ARP. Tuy nhiên, nắm vững cách thức hoạt động của Proxy – ARP sẽ giúp chúng ta hiểu sâu hơn về hoạt động của các hệ thống mạng cũng như của một giao thức rất nền tảng là giao thức phân giải địa chỉ ARP.

Cảm ơn các bạn!

Hẹn gặp lại các bạn trong các bài viết tiếp theo!

Nguồn : NTPS
    Blogger Comment
    Facebook Comment