Tuesday, September 17, 2024

[Cisco] IP Overlapping

-

Trong các bài viết trước, chúng ta đã cùng nhau tìm hiểu các kỹ thuật khác nhau của  NAT thông qua các bài lab ví dụ. Trong bài viết tuần này, chúng ta sẽ tiếp tục khảo sát  một ví dụ khác về cách sử dụng NAT để giải quyết vấn đề trùng lặp IP trong hệ thống mạng (IP Overlapping).  

Sơ đồ

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

Mô tả 

Trên hình 1 là sơ đồ đấu nối mạng giữa 3 công ty. Kịch bản lab đặt ra là có 3 công ty đối  tác của nhau cần trao đổi dữ liệu với nhau. Để thực hiện điều này, họ cùng thuê một kết  nối Metronet để đấu nối giữa 3 site của 3 công ty. Tiếp đó, mỗi công ty lại cử ra một  phòng ban liên quan để tiến hành trao đổi dữ liệu hợp tác; subnet IP của các phòng ban  này sẽ được quảng bá vào một giao thức định tuyến nào đó chạy chung giữa 3 site của 3  công ty để các phòng ban này có thể đi đến nhau. Tuy nhiên, một vấn đề nảy sinh trong  quá trình triển khai là hai phòng ban liên quan của hai công ty 1 và 2 bị trùng subnet IP  (xem hình 1). Yêu cầu đặt ra cho đội ngũ triển khai là vẫn phải đảm bảo các phòng ban  của 3 công ty đi đến nhau được mà không được phép thay đổi IP vốn có của bất kỳ phòng  ban nào.

Trên sơ đồ hình 1: 

  • Các router R1, R2 và R3 đóng vai trò là 3 router thuộc 3 doanh nghiệp đang giao  tiếp với nhau. 
  • Ba router này đấu nối với nhau thông qua một kết nối multi – access. Trong môi  trường lab, ta có thể sử dụng một switch để xây dựng kết nối này; trong thực tế,  đây thường là một kết nối Metronet như đã mô tả trong kịch bản lab. Các cổng kết  nối trên các router là các cổng F0/1. Các địa chỉ IP đấu nối được chỉ ra như trên  hình 1. 
  • Các cổng F0/0 của 3 router đóng vai trò là các cổng gateway nối đến các subnet  của các phòng ban sẽ tham gia trao đổi dữ liệu. Các router Client1, Client2 và  Client3 được sử dụng để giả lập các user trên các subnet của các phòng ban này. 
  • Ta sẽ sử dụng định tuyến RIPv2 giữa 3 router để đảm bảo các subnet liên quan đi  được đến nhau. NAT sẽ được sử dụng để giải quyết vấn đề trùng lặp IP giữa R1  và R2. 

Thực hiện 

Bước 1: Cấu hình ban đầu cho sơ đồ lab 

Trong bước này, chúng ta thực hiện những công việc như sau: 

  • Đặt địa chỉ IP trên các cổng của các router theo quy hoạch IP được chỉ ra trên  hình 1. 
  • Cấu hình các router Client1, Client2 và Client3 giả lập các end – user trên các  subnet của các phòng ban. 

Cấu hình 

Trên R1:

R1(config)#interface f0/1 
R1(config-if)#no shutdown  
R1(config-if)#ip address 192.168.123.1 255.255.255.0 
R1(config-if)#exit 

R1(config)#interface f0/0 
R1(config-if)#no shutdown  
R1(config-if)#ip address 192.168.10.1 255.255.255.0 
R1(config-if)#exit

Trên R2:

R2(config)#interface f0/1 
R2(config-if)#no shutdown  
R2(config-if)#ip address 192.168.123.2 255.255.255.0 
R2(config-if)#exit 

R2(config)#interface f0/0 
R2(config-if)#no shutdown  
R2(config-if)#ip address 192.168.10.1 255.255.255.0 
R2(config-if)#exit

Trên R3:

R3(config)#interface f0/1 
R3(config-if)#no shutdown  
R3(config-if)#ip address 192.168.123.3 255.255.255.0 
R3(config-if)#exit 

R3(config)#interface f0/0 
R3(config-if)#no shutdown  
R3(config-if)#ip address 192.168.3.1 255.255.255.0 
R3(config-if)#exit

Tiếp theo, ta cấu hình các router giả lập các end – user:

Client1(config)#interface f0/0 
Client1(config-if)#ip address 192.168.10.2 255.255.255.0
Client1(config-if)#exit 
Client1(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.1 

Client2(config)#interface f0/0 
Client2(config-if)#ip address 192.168.10.2 255.255.255.0
Client2(config-if)#exit 
Client2(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.1 

Client3(config)#interface f0/0 
Client3(config-if)#no shutdown  
Client3(config-if)#ip address 192.168.3.2 255.255.255.0 
Client3(config-if)#exit 
Client3(config)#ip route 0.0.0.0 0.0.0.0 192.168.3.1

Kiểm tra 

Chúng ta thực hiện kiểm tra rằng các kết nối đã thông suốt:

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

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

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

Các client đã đi đến được các gateway của mình:

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

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

Client3#ping 192.168.3.1 
Type escape sequence to abort. 
Sending 5, 100-byte ICMP Echos to 192.168.3.1, timeout is 2 seconds:
!!!!! 
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/49/60 ms

Sau khi hoàn tất cấu hình ban đầu, chúng ta chuyển qua bước tiếp theo là cấu hình định  tuyến và NAT để 3 phòng ban có thể đi đến được nhau. 

Bước 2: Cấu hình định tuyến và NAT 

  • Cấu hình NAT trên các router R1 và R2 đảm bảo: 
    • Subnet 192.168.10.0/24 của R1 được các router R2 và R3 nhìn thấy là  192.168.1.0/24. 
    • Subnet 192.168.10.0/24 của R2 được các router R1 và R3 nhìn thấy là  192.168.2.0/24. 
  • Cấu hình định tuyến RIPv2 đảm bảo các subnet nằm sau R1, R2 và R3 đi đến  nhau được. 

Cấu hình 

Giải pháp NAT được chọn trong bước này để giải quyết vấn đề trùng lắp IP giữa R1 và  R2 là mỗi router thực hiện NAT subnet trùng ra thành một subnet khác khi truyền thông  với nhau.  

NAT trên R1:

R1(config)#ip nat inside source static network 192.168.10.0 192.168.1.0 /24 

R1(config)#interface f0/0 
R1(config-if)#ip nat inside  
R1(config-if)#exit 

R1(config)#interface f0/1 
R1(config-if)#ip nat outside  
R1(config-if)#exit

NAT trên R2:

R2(config)#ip nat inside source static network 192.168.10.0 192.168.2.0 /24 
R2(config)#interface f0/0 
R2(config-if)#ip nat inside  
R2(config-if)#exit 

R2(config)#interface f0/1 
R2(config-if)#ip nat outside  
R2(config-if)#exit

Như vậy, subnet trùng của R1 được chuyển đổi thành 192.168.1.0/24, subnet trùng của  R2 được chuyển đổi thành 192.168.2.0/24 trong quá trình các router giao tiếp với nhau.

Thao tác tiếp theo mà chúng ta phải thực hiện là cấu hình định tuyến đảm bảo các địa chỉ  có thể giao tiếp được với nhau. Lúc này, R1 và R2 phải quảng bá các subnet  192.168.1.0/24 và 192.168.2.0/24 chứ không phải subnet gốc 192.168.10.0/24 vào giao  thức định tuyến đang chạy giữa 3 router. Các subnet mới này không có sẵn trên các cổng  của hai router R1 và R2 nên R1 và R2 phải tạo các route static giả cho các subnet này rồi  redistribute chúng vào RIP. Ta quan sát cấu hình: 

Trên R1:

R1(config)#ip route 192.168.1.0 255.255.255.0 null0 

R1(config)#router rip 
R1(config-router)#version 2 
R1(config-router)#no auto-summary  
R1(config-router)#network 192.168.123.0 
R1(config-router)#redistribute static 
R1(config-router)#exit

Trên R2

R2(config)#ip route 192.168.2.0 255.255.255.0 null0 

R2(config)#router rip 
R2(config-router)#version 2 
R2(config-router)#no auto-summary  
R2(config-router)#network 192.168.123.0 
R2(config-router)#redistribute static  
R2(config-router)#exit

Trên R3:

R3(config)#router rip 
R3(config-router)#version 2 
R3(config-router)#no auto-summary  
R3(config-router)#network 192.168.123.0 
R3(config-router)#network 192.168.3.0 
R3(config-router)#exit

Kiểm tra 

Chúng ta kiểm tra xác nhận rằng thao tác cấu hình trên đây đã đảm bảo các subnet thấy  nhau. 

Đầu tiên, chúng ta kiểm tra bảng định tuyến của các router:

R1#show ip route rip 
R 192.168.2.0/24 [120/1] via 192.168.123.2, 00:00:15, FastEthernet0/1 R 192.168.3.0/24 [120/1] via 192.168.123.3, 00:00:14, FastEthernet0/1 

R2#show ip route rip 
R 192.168.1.0/24 [120/1] via 192.168.123.1, 00:00:14, FastEthernet0/1 R 192.168.3.0/24 [120/1] via 192.168.123.3, 00:00:19, FastEthernet0/1 

R3#show ip route rip 
R 192.168.1.0/24 [120/1] via 192.168.123.1, 00:00:01, FastEthernet0/1 R 192.168.2.0/24 [120/1] via 192.168.123.2, 00:00:07, FastEthernet0/1

Ta thấy rằng các subnet của các phòng ban của các công ty đã xuất hiện trong bảng định  tuyến của các router. Ta cũng để ý rằng các subnet 192.168.1.0/24 và 192.168.2.0/24 đã  xuất hiện thay thế cho subnet 192.168.10.0/24 của hai công ty 1 và 2. 

Ta quan sát bảng NAT của hai router R1 và R2:

Bảng NAT thể hiện cấu hình NAT đã thực hiện. Trong cấu hình NAT static ở trên, thay  vì chỉ NAT từng địa chỉ một, chúng ta đã cấu hình router NAT cả một subnet thành một  subnet khác. Ta bật “debug ip nat” trên các router R1 và R2 để quan sát hoạt động NAT:

R1#debug ip nat 
IP NAT debugging is on 

R2#debug ip nat 
IP NAT debugging is on

Ta kiểm tra rằng các client đã đi đến nhau được:

Client1#ping 192.168.2.2  
Type escape sequence to abort. 
Sending 5, 100-byte ICMP Echos to 192.168.2.2, timeout is 2 seconds:
!!!!! 
Success rate is 100 percent (5/5), round-trip min/avg/max = 124/152/176 ms
 
Client1#ping 192.168.3.2  
Type escape sequence to abort. 
Sending 5, 100-byte ICMP Echos to 192.168.3.2, timeout is 2 seconds:
!!!!! 
Success rate is 100 percent (5/5), round-trip min/avg/max = 124/147/188 ms
 
Client2#ping 192.168.3.2 
Type escape sequence to abort. 
Sending 5, 100-byte ICMP Echos to 192.168.3.2, timeout is 2 seconds:
!!!!! 
Success rate is 100 percent (5/5), round-trip min/avg/max = 96/133/188 ms

Ta quan sát kết quả debug trên các router. 

Trên R1, khi Client 1 giao tiếp với Client2:

*Mar 1 00:09:11.027: NAT*: s=192.168.10.2->192.168.1.2, d=192.168.2.2 [2]
*Mar 1 00:09:11.167: NAT*: s=192.168.2.2, d=192.168.1.2->192.168.10.2 [2]

Trên R1, khi Client1 giao tiếp với Client3:

*Mar 1 00:11:40.475: NAT*: s=192.168.10.2->192.168.1.2, d=192.168.3.2 [10]
*Mar 1 00:11:40.623: NAT*: s=192.168.3.2, d=192.168.1.2->192.168.10.2 [10]

Trên R2, khi Client2 giao tiếp với Client1:

*Mar 1 00:08:38.699: NAT*: s=192.168.1.2, d=192.168.2.2->192.168.10.2 [3]
*Mar 1 00:08:38.711: NAT*: s=192.168.10.2->192.168.2.2, d=192.168.1.2 [3]

Trên R2, khi Client2 giao tiếp với Client3:

*Mar 1 00:09:16.571: NAT*: s=192.168.10.2->192.168.2.2, d=192.168.3.2 [1]
*Mar 1 00:09:16.663: NAT*: s=192.168.3.2, d=192.168.2.2->192.168.10.2 [1]

Ta quan sát bảng NAT của các router:

Ta thấy các entry NAT tương ứng cho từng cặp địa chỉ cụ thể đã được tạo ra cùng với các  entry extendable khác thể hiện rõ giao thức nền cũng như các port được sử dụng. 

Đến đây, chúng ta đã hoàn thành yêu cầu đặt ra ở bước 2. 

Bước 3: NAT trên một router 

Thực hiện chuyển đổi giải pháp cấu hình NAT đã thực hiện ở bước 2 thành giải  pháp cấu hình NAT chỉ tiến hành trên router R1, không tiến hành trên router R2. 

Cấu hình 

Gỡ bỏ cấu hình NAT đã thực hiện trên R2 ở bước 2:

R2(config)#no ip nat inside source static network 192.168.10.0 192.168.2.0 /24
Static entry in use, do you want to delete child entries? [no]: y

R2(config)#no ip route 192.168.2.0 255.255.255.0 Null0

R2(config)#router rip
R2(config-router)#no redistribute static
R2(config-router)#exit

Tiếp theo, ta thực hiện quảng bá subnet trùng 192.168.10.0/24 trên R2 vào RIPv2:

R2(config)#router rip
R2(config-router)#network 192.168.10.0
R2(config-router)#exit

Cuối cùng, ta hiệu chỉnh lại cấu hình NAT trên R1. Trong bước này, ta thực hiện thêm  thao tác NAT outside để mạng trùng 192.168.10.0/24 bên ngoài sẽ được các host bên  trong nhìn thấy như là mạng 192.168.2.0/24:

R1(config)#ip nat outside source static network 192.168.10.0 192.168.2.0 /24

Để đảm bảo thông suốt về mặt định tuyến, chúng ta thực hiện cấu hình thêm route cho  subnet mới 192.168.2.0/24 trên R1:

R1(config)#ip route 192.168.2.0 255.255.255.0 192.168.123.2

Như vậy, ta đã hoàn thành xong cấu hình NAT trên R1 để đảm bảo các phòng ban cần trao đổi dữ liệu của ba công ty thấy được nhau. Để tiện theo dõi, phần cấu hình trên R1 được nhắc lại ở đây:

ip nat inside source static network 192.168.10.0 192.168.1.0 /24
ip nat outside source static network 192.168.10.0 192.168.2.0 /24

interface FastEthernet0/0
ip nat inside

interface FastEthernet0/1
ip nat outside

ip route 192.168.1.0 255.255.255.0 Null0
ip route 192.168.2.0 255.255.255.0 192.168.123.2

router rip
version 2
redistribute static
network 192.168.123.0
no auto-summary

Kiểm tra
Kiểm tra bảng định tuyến của các router:

Tiếp theo, chúng ta kiểm tra rằng các client đã có thể đi đến nhau được: Client 1 đã đi đến được Client 2 và Client3:

Client1#ping 192.168.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 84/112/140 ms

Client1#ping 192.168.3.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 92/119/160 ms

Client 2 và 3 đã đi đến được nhau:

Client2#ping 192.168.3.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 96/134/184 ms

Bảng NAT trên router R1:

Như vậy, ta đã hoàn tất chuyển đổi cấu hình NAT ở bước 2 thành việc NAT chỉ phải tiến  hành trên một router. 

Trên đây, chúng ta đã cùng nhau khảo sát một ví dụ về cách sử dụng NAT để khắc phục  vấn đề trùng lắp IP trên hệ thống mạng. Vấn đề trùng IP có thể xảy ra giống như trong  kịch bản lab đã nêu hoặc khi có sự sáp nhập giữa hai công ty với hai hệ thống sử dụng  nhiều dải IP trùng nhau. Trong bài viết tới, chúng ta sẽ cùng nhau tiếp tục khảo sát các kỹ  thuật khác của NAT. 

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!

Previous article
Next article

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories