ARP TRONG STATIC ROUTE
Mô tả sơ đồ gồm có 2 router R1 và R2 được nối với nhau thông qua cổng F0/1, ở cổng F0/0 của mỗi router sẽ được kết nối với 2 PC A và PC B. Lớp mạng được sử dụng giữa R1 và R2 sẽ là 192.168.12.0/24 , lớp mạng được sử dụng giữa PC A và R1 sẽ là 192.168.1.0/24, còn lớp mạng được sử dụng giữa PC B và R2 sẽ là 192.168.2.0/24.
Giả sử PC A có địa chỉ MAC là A (các chữ màu đỏ trên sơ đồ là địa chỉ MAC), PC B có địa chỉ MAC là B, cổng F0/0 của R1 có MAC là 1111, cổng F0/1 của R1 có MAC là 2222, cổng F0/1 của R2 có MAC là 3333, cổng F0/0 của R2 có MAC là 4444.
Theo đó bảng định tuyến của R1 sẽ có 2 route connected là 192.168.1.0/24 kết nối trực tiếp qua cổng F0/0 và 192.168.12.0/24 kết nối trực tiếp qua cổng F0/1, ngoài ra bên phía R1 còn được cấu hình 1 static route theo kiểu ip next-hop trỏ lới lớp mạng 192.168.2.0/24 theo câu lệnh như sau: R1(config)#ip route 192.168.2.0 255.255.255.0 192.168.12.2
C 192.168.1.0/24 F0/0 C 192.168.12.0/24 F0/1 S 192.168.2.0/24 via 192.168.12.2 |
Bảng định tuyến của R2 cũng sẽ có 2 route connected là 192.168.2.0/24 kết nối trực tiếp qua cổng F0/0 và 192.168.12.0/24 kết nối trực tiếp qua cổng F0/1, bên phía R3 được cấu hình 1 static route theo kiểu ip next-hop trỏ lới lớp mạng 192.168.1.0/24 theo câu lệnh như sau: R2(config)#ip route 192.168.1.0 255.255.255.0 192.168.12.1
C 192.168.2.0/24 F0/0 C 192.168.12.0/24 F0/1 S 192.168.1.0/24 via 192.168.12. |
Lúc nảy bảng định tuyến ở hai Router đã đầy đủ và tất cả các mạng đã có thể đi đến được nhau thì giữa các PC bắt đầu phát sinh lưu lượng. Giả sử PC A có địa chỉ 192.168.1.5 (viết tắt là 1.5) tiến hành ping PC B có địa chỉ 192.168.2.5 (viết tắt là 2.5), lúc này PC A sẽ đóng 1 gói tin ICMP Echo Request với source IP là 1.5, destination IP là 2.5. Khi đi xuống lớp 2 thì tiến hành mapping giữa layer 3 và layer 2 tìm địa chỉ MAC cho phù hợp với IP trên, source MAC từ chính card mạng của A là A, còn destination MAC: do PC A đang có IP 1.5 subnet mask là 255.255.255.255, default gateway 192.168.1.1 ( viết tắt là 1.1) nhìn thấy đang yêu cầu ping đến 192.168.2.5 là khác lớp mạng với nó nên nó sẽ tiến hành gửi đi default gateway là 1.1 và tiến hành ARP đi tìm địa chỉ MAC của 1.1. Sau cùng nhận được địa chỉ MAC của cổng F0/0 của R1 là 1111, ngoài ra R1 cũng sẽ lưu địa chỉ MAC của 1.5 lại là A.
Khi đã có đầy đủ thông tin thì PC A tiến hành đóng gói hoàn chỉnh gửi đi và đến được R1.
R1 nhận frame này, chuyển lên layer 3 và xử lý, nhìn vào destination IP là 2.5 thì tra bảng định tuyến thấy 2.5 thuộc mạng 2.0 và được định tuyến tĩnh thông qua IP 192.168.12.2 thì forward gói tin đến 12.2 nhưng mà đi đến 12.2 thì đi ra cổng nào bây giờ, thì R1 phải tra bảng định tuyến 1 lần nữa và thấy 12.2 thuộc về mạng 12.0 và kết nối trực tiếp với cổng F0/1 thì R1 đẩy gói IP này ra khỏi cổng F0/1.
Lúc này R1 phải tiến hành đóng gói lại gói tin, source IP và destination IP giữ nguyên, source MAC từ cổng ra F0/1 là 2222, destination MAC thì từ bảng định tuyến nói để đi tới mạng 2.0 thì sẽ gửi về địa chỉ 12.2. R1 tra trong bảng ARP Local của nó thì chưa có MAC của 12.2. R1 phải tiến hành ARP đi tìm MAC của 12.2.
Lúc này R1 tạm gác gói ICMP qua 1 bên mà soạn gói ARP Request với source IP từ cổng ra 12.1 destination IP là 12.2, source MAC là 2222 destination MAC là broadcast mang ngụ ý tôi là 12.1, tôi có địa chỉ MAC là 2222, có ai biết địa chỉ MAC của 12.2 thì trả lời dùm tôi.
ARP Request này cũng sẽ đến được R2, R2 xử lý và trả lời lại cho R1 biết địa chỉ MAC của 12.2 là 3333, ngoài ra R2 còn lưu thông tin MAC của 12.1 là 2222.
Khi R1 đã nhận được đầy đủ thông tin thì đóng frame hoàn chỉnh rồi gửi đi.
Frame này đến tay của R2, R2 chuyển lên layer 3, nhìn vào destination IP là 2.5 tra bảng định tuyến thì thấy 2.5 thuộc về mạng 2.0 và được kết nối trực tiếp với cổng F0/0 thì đẩy gói này ra cổng F0/0.
Khi đẩy ra khỏi cổng F0/0 thì nó cũng cần đóng gói lại, cặp địa chỉ source IP và destination IP giữ nguyên, source MAC và destination MAC thay đổi, source MAC từ cổng ra F0/0 là 4444, destination MAC là của 2.5. R2 tra trong bảng ARP Local của nó thì chưa có MAC của 2.5 nên R2 phải tiến hành ARP đi tìm MAC của 2.5.
Lúc này R2 tạm gác gói ICMP này qua và soạn ra 1 gói ARP Request đi tìm MAC của 2.5 với source IP là 2.1, destination IP 2.5 cần tìm, source MAC 4444, destination MAC là broadcast và sẽ nhận lại được MAC của 2.5 là B. Ngoài ra B sẽ lưu lại thông tin địa chỉ MAC của 2.1 là 4444.
Khi R1 đã có đủ thông tin thì tiến hành đóng frame hoàn chỉnh và gửi đi đến PC B.
Đó chỉ là chiều gửi khi PC A gửi gói ICMP Echo Request đến PC B, PC B nhận được ICMP Echo Request thì phải trả lời ICMP Echo Reply.
Khi PC B trả lời lại thì cặp source IP và destination IP đảo ngược lại với source IP là của PC B là 2.5, destination IP là của PCA là 1.5. Đi xuống layer 2 thực hiện mapping layer 2 source MAC là B còn destination MAC do 1.5 khác lớp mạng với 2.5 nên PC B phải gửi đến default gateway là 2.1.
Lúc này do PC B đã lưu MAC của 2.1 từ quá trình R2 ARP Request địa chỉ MAC của 2.5 để gửi gói tin xuống nó ở lượt đi rồi, chỉ cần lấy ra mà sử dụng thôi. Và PC B đóng gói tin hoàn chỉnh và gửi đi
R2 nhận Frame ở layer 2, chuyển lên layer 3, nhìn vào destination IP là 1.5 thuộc về mạng 1.0 được định tuyến tĩnh thông qua IP 192.168.12.1 thì forward gói tin đến 12.1 nhưng mà đi đến 12.1 thì đi ra cổng nào bây giờ, thì R2 cũng phải tra bảng định tuyến 1 lần nữa và thấy 12.1 thuộc về mạng 12.0 và kết nối trực tiếp với cổng F0/1 thì R2 đẩy gói IP này ra khỏi cổng F0/1.
Lúc này R2 sẽ đóng lại cặp địa chỉ như sau: source IP và destination IP giữ nguyên, source MAC từ cổng ra F0/1 là 3333, destination MAC từ bảng định tuyến nói sẽ phải đi về địa chỉ 12.1 nên destination MAC của 12.1. Do R2 đã lưu MAC của 12.1 là 2222 từ lần R1 đi ARP request 12.2 ở lượt đi rồi nên lúc này R2 chỉ cần lấy ra mà sử dụng thôi. Nên R2 có đủ thông tin và đóng gói tin hoàn chỉnh gửi đi
R1 nhận Frame ở layer 2, chuyển lên layer 3, nhìn vào destination IP là 1.5 tra bảng định tuyến thì thấy 1.5 thuộc mạng 1.0 được kết nối trực tiếp với F0/0 thì đẩy ra khỏi cổng F0/0.
Khi đẩy ra khỏi cổng F0/0, R1 sẽ soạn lại gói tin như sau: source IP và dest IP không đổi, source MAC từ cổng ra F0/0 là 1111, dest MAC là MAC của 1.5 là A do đã lưu lại từ lúc PC A tiến hành ARP Request tìm MAC của default gateway ở lượt đi rồi nên R1 đóng gói tin hoàn chỉnh và gửi xuống PC A.
Lúc này quá trình PC A ping PC B hoàn tất.
Nhìn lại quá trình PC A ping PC B thì cặp địa chỉ source IP và destination IP không đổi nhưng cặp source MAC và destination MAC sẽ thay đổi khi đi qua 1 node lớp 3, khi PC B trả lời lại thì các cặp địa chỉ này đảo ngược lại. Đó là về cách đóng gói gói tin.
Còn về việc tra bảng định tuyến thì đối với static route chỉ về ip nexthop thì khi gói tin từ PC A lên đến router R1, router R1 phải tra bảng định tuyến ít nhất 2 lần mới đẩy gói tin ra ngoài được.
Và về quá trình ARP thì ở lượt đi sẽ có sự ARP Request ở PCA tìm MAC của default gateway, ARP Request ở R1 tìm MAC của IP netxhop và ARP Request ở R2 tìm MAC của PC B, lúc lượt về thì quá trình ARP Request không diễn ra nữa do đã lưu cache rồi chỉ việc lấy ra mà sử dụng.
Đó là quá trình phân giải ARP trong định tuyến tĩnh theo kiểu IP nexthop. Còn với định tuyến tĩnh theo kiểu output interface sẽ diễn ra như thế nào. Đón xem phần sau sẽ rõ.