Phân biệt các kiểu NAT – Cách nhìn khác

View1:

IP nat inside source: đổi src.ip với traffic từ in -> out, hoặc đổi dst.ip với traffic từ out ->in

Ip nat inside destination: đổi dst.ip với traffic từ out -> in

ip nat outside source: đổi dst.ip với traffic từ in -> out hoặc đổi src.ip với traffic từ out –> in

ip nat outside destination: không có

So sánh IP nat inside source và Ip nat inside destination

Giống nhau: đều đổi dst.ip với traffic từ out –> in.

Khác nhau:

– ip nat inside source: thường cấu hình static NAT hoặc Port forwarding để forward traffic từ bên ngoài vào 1 host bên trong mạng. Còn Dynamic NAT hoặc Port forwarding cũng có thể forward traffic từ bên ngoài vào với điều kiện phải có traffic khởi tạo từ bên trong trước do kiểu này là source list, các nat entry chỉ được tạo ra khi có traffic từ trong ra và có thời gian time out. Trong khoảng thời gian trước khi các nat entry bị time out thì traffic từ bên ngoài mới có thể vào được host bên trong

– ip nat inside destination: thường để cân bẳng tải cho các server chung Virtual IP (Ví dụ: https://routedinterface.com/2014/09/basic-tcp-load-distribution-nat/)

 

View 2:

ip nat inside: When transiting in->out, modify source address. When transiting out->in, modify destination address.
ip nat outside: When transiting out->in, modify source address. When transiting in->out, modify destination address.

View 3:

ip nat inside: dùng để public mạng bên trong như đang bên ngoài ( bên ngoài từ thấy là đang gửi/nhận traffic từ 1 vùng global khác giống như mình, chứ không phải 1 vùng bên trong nào đó)

ip nat outside: dùng để thể hiện mạng bên trong giống như đang ở cùng mạng local vậy.

Phân biệt IP nat inside vs IP nat outside

Các câu lệnh NAT có thể phân chia như sau, trong đó ip  nat inside thường được dùng hơn vì nếu dùng ip nat outside thì trong 1 số trường hợp cần phải cấu hình thêm static route (do traffic từ inside ra outside được xử lý routing trước rồi mới NAT).

1. ip nat inside thường dùng để pulic mạng bên trong cho bên ngoài thấy và truy cập, trong đó

– ip nat inside source –> đổi địa chỉ nguồn để khi dữ liệu đi từ trong ra ngoài để mạng bên ngoài thấy và trả dữ liệu về được. Nếu là source static, thì NAT có tính chất 2 chiều, nếu là source list thì NAT 1 chiều, chỉ NAT khi dữ liệu từ trong ra ngoài.

– ip nat inside destination –> đổi địa chỉ đích để bên ngoài có thể truy xuất các server bên trong đại diện bởi 1 Virtual IP (VIP), sau đó VIP này sẽ được NAT thành địa chỉ của các server thực sự bên trong (TCP NAT Load Balancing)

2. ip nat outside –> thường dùng để các host bên trong thấy mạng bên ngoài như đang ở local, cùng mạng vậy, trong đó:

–  ip nat outside source: đổi địa chỉ nguồn của gói tin khi từ outside vào inside. Nếu là source static thì NAT có tính chất 2 chiều, còn nếu là source list thì là NAT 1 chiều, tức là chỉ NAT khi dữ liệu từ outside vào inside.

– ip nat outside destination –> không có

Ý nghĩa các từ khóa:

inside: Router thực hiện NAT khi chuyển traffic xuất phát từ inside –> outside interface và ngược lại (tính 2 chiều chỉ áp dụng với source là static, nếu source là list thì là dynamic thì các nat entry sẽ có time-out, traffic bắt buộc phải từ trong ra)

outside: Router thực hiện NAT khi chuyển traffic xuất phát từ outside –> inside interface và ngược lại (giống trên, tính 2 chiều chỉ áp dụng nếu source là static,  nếu source là list thì là dynamic thì các nat entry sẽ có time-out, traffic bắt buộc traffic phải từ ngoài vào)

source: Đổi địa chỉ nguồn

destination: Đổi địa chỉ đích

1

Trong ví dụ sau đây, chúng ta cấu hình NAT trên R2 với mục đích: R1 được đại diện bởi địa chỉ 192.168.23.100 giống như cùng mạng với R3, R3 đại diện bởi 192.168.12.100 giống như đang cùng mạng với R1. Lệnh cấu hình như sau:

ip nat inside source static 192.168.12.1 192.168.23.100 –> Từ khóa inside –> thực hiện NAT trên interface inside (và ngược lại), từ khóa source –> đổi địa chỉ nguồn. Cụ thể, tác dụng của lệnh này như sau:

– R2 soi trên interface inside (f0/0), nếu thấy có gói tin có src.ip = 192.168.12.1 –> đổi thành src.ip = 192.168.23.100

– Điểm key quan trọng cần nhớ ở đây là NAT inside hay outside đều có tính chất 2 chiều –> tức là theo chiều ngược lại, nếu R2 nhận được gói tín có dst.ip 192.168.23.100 –> đổi thành dst.ip = 192.168.12.1.

ip nat outside source static 192.168.23.3 192.168.12.100

– R2 soi trên interface outside (f0/1), nếu thấy có gói tin có src.ip = 192.168.23.3–> đổi thành src.ip = 192.168.12.100

– Đồng thời chiều ngược lại: nếu trên interface inside nhận được gói tin có dst.ip = 192.168.12.100 –> đổi thành dst.ip = 192.168.23.3

Kết quả:

R1#ping 192.168.12.100      

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

R2#debug ip nat
*Mar  1 01:08:57.811: NAT: s=192.168.12.1->192.168.23.100, d=192.168.12.100 [26]
*Mar  1 01:08:57.815: NAT: s=192.168.23.100, d=192.168.12.100->192.168.23.3 [26]
*Mar  1 01:08:57.847: NAT*: s=192.168.23.3->192.168.12.100, d=192.168.23.100 [26]
*Mar  1 01:08:57.847: NAT*: s=192.168.12.100, d=192.168.23.100->192.168.12.1 [26]

R3#ping 192.168.23.100

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

R2#
*Mar 1 01:11:21.595: NAT*: s=192.168.23.3->192.168.12.100, d=192.168.23.100 [35]
*Mar 1 01:11:21.595: NAT*: s=192.168.12.100, d=192.168.23.100->192.168.12.1 [35]

Ping đã tới R1 với src.ip = 192.168.12.100 nên bản tin ping reply sẽ được gửi lại với dst.ip 192.168.12.100 tới R2, mà đây lại mạng kết nối trực tiếp với R2 nên R2 sẽ không đẩy dữ liệu sang R3 nên R3 ko nhận được ping trả về. Câu hỏi đặt ra là ở trên mình đã cấu hình ip nat outside source static 192.168.23.3 192.168.12.100 >> đáng nhẽ 192.168.12.100 được NAT thành 192.168.23.3 chứ ==>  nguyên nhân là do đặc điểm của NAT khi traffic từ inside –> outside là được xử lý routing trước rồi mới đến NAT, nên router sẽ tìm route cho 192.168.12.100 trước khi tiến hành NAT.

Để ping được trên R2 cần cấu hình thêm static route: R2(config)#ip route 192.168.12.100 255.255.255.255  192.168.23.3

hoặc thêm từ khóa add-route vào câu lệnh NAT:

ip nat outside source static 192.168.23.3 192.168.12.100 add-route

R3#ping 192.168.23.100

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.23.100, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/60/80 ms

R2(config)#
*Mar 1 01:18:58.163: NAT*: s=192.168.23.3->192.168.12.100, d=192.168.23.100 [45]
*Mar 1 01:18:58.163: NAT*: s=192.168.12.100, d=192.168.23.100->192.168.12.1 [45]
*Mar 1 01:18:58.203: NAT: s=192.168.12.1->192.168.23.100, d=192.168.12.100 [45]
*Mar 1 01:18:58.203: NAT: s=192.168.23.100, d=192.168.12.100->192.168.23.3 [45]

 

Một giải pháp khác thay thế không cần phải add-route là cấu hình với NAT Virtual Interface.

R2(config)#int f0/0

R2(config-if)#ip nat enable

R2(config)#int f0/1

R2(config-if)#ip nat enable

R2(config)#ip nat source static 192.168.12.1 192.168.23.100

R2(config)#ip nat source static 192.168.23.3 192.168.12.100

 

Tham khảo: http://astorinonetworks.com/2011/08/16/the-inside-outside-of-nat-for-overlapping-networks/

http://www.groupstudy.com/archives/ccielab/200702/msg01284.html

http://gns3vault.com/forums/topic/ip-nat-outside/

NAT cơ bản

Định nghĩa chuẩn về các loại địa chỉ NAT:

  • Inside global: The address of the inside host as seen from the outside
  • Inside local: The address of the inside host as seen from the inside
  • Outside local: The address of the outside host as seen from the inside
  • Outside global: The address of the outside host as seen from the outside

1. NAT

Static NAT

  • Tỉ lệ NAT là 1:1
  • Thông tin về các địa chỉ translation luôn được để trong NAT Table (trừ khi xóa câu lệnh static NAT)
  • NAT có tính chất 2 chiều

Dynamic NAT

  • Tỉ lệ NAT là 1:1
  • Thông tin về các địa chỉ translation chỉ có khi xuất hiện traffic, các entry này không tồn tại mãi mà có một giá trị time-out (???)
  • NAT 1 chiều mà thôi

2. PAT

Static PAT: dùng để cấu hình Portwarding.

Tham khảo:

NAT and PAT: a complete explanation

NAT virtual interface

NAT Virtual Interface aka NVI, what is that?!

The Inside and Outside of NAT

http://blog.ine.com/2008/02/15/the-inside-and-outside-of-nat/

NAT: OVERLAPPING SUBNETS

http://nyquist.eu/nat-for-overlapping-networks/

https://cciereview.wordpress.com/2012/03/03/nat-overlapping-subnets/

 

IOS NAT Load-Balancing for Two ISP Connections

http://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/100658-ios-nat-load-balancing-2isp.html

NAT failover with DUAL ISP on a router Configuration Example

Introduction

This is an generic example of how to configure NAT when there are multiple ISP’s for internet connectivity and we want proper Failover i.e when Primary ISP goes down then Secondary takes over with correct NAT happening using the secondary ISP’s public ip address

Design

              ------------- ISP1 -------------
             |                                |
             |                                |
LAN -- WAN router                          Internet
             |                                |
             |                                |
              ------------- ISP2 -------------

Configuration

interface FastEthernet0/0

Description Primary link ISP1

ip address 12.x.x.x 255.255.255.240

ip nat outside
interface FastEthernet1/0

Description Secondary link ISP2

ip address 76.x.x.x. 255.255.255.0

ip nat outside
interface FastEthernet1/1

Description Inside LAN segment

ip address 172.168.60.1 255.255.255.0

ip nat inside
access-list 100 permit ip 172.168.60.0 0.0.0.255 any
route-map isp1 permit 10

match ip address 100

match interface FastEthernet0/0
route-map isp2 permit 10

match ip address 100

match interface FastEthernet1/0
ip nat inside source route-map isp1 interface FastEthernet0/0 overload

ip nat inside source route-map isp2 interface FastEthernet1/0 overload
ip route 0.0.0.0 0.0.0.0 12.y.y.y —–> Primary Default route pointing towards Next hop ip of ISP1

ip route 0.0.0.0 0.0.0.0 76.y.y.y 10 —–> Backup Default route with higher AD (10) pointing towards Next hop ip of ISP2

    • the above example shows how we can perform Failover for PAT (Port Address Translation) for the traffic going out to Internet. By using route-maps and “match interface” option, we can achieve failover for Static NAT translation as well which is generally configured when services are hosted out to the internet like webserver or exchange server hosted inside accessible from Internet

route-map isp1static permit 10

match interface FastEthernet0/0
route-map isp2static permit 10

match interface FastEthernet1/0
ip nat inside source static 172.168.60.2 12.x.x.x route-map isp1static

ip nat inside source static 172.168.60.2 76.x.x.x route-map isp2static

Link hay

http://astorinonetworks.com –>

http://www.enterprisenetworkingplanet.com/ –> bai bao ve nhieu mang cong nghe

 

EIGRP Unequal Load Balancing – Variance

Cấu hình EIGRP trên tất cả các router.

Cấu hình để EIGRP chỉ dùng delay làm metric –> trên tất cả router cấu hình:

R(config-router)#metric weight 0 0 0 1 0 0

Sửa giá trị delay trên các interface theo sơ đồ bên dưới, int lo 0 ==> Kết quả:

Đường qua R2 tổng delay là 3000us

Đường qua R3 tổng delay là 6000us

Đường qua R4 tổng delay là 4500us.

1.2.A2.EIGRP - DUAL.UnequalLB

Kiểm tra;

R1#show ip route 5.5.5.5
* 192.168.12.2, from 192.168.12.2, 00:00:14 ago, via Serial0/0
Route metric is 76800, traffic share count is 2
Total delay is 3000 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2

Từ R1 tới Loop0 trên R5 thì đường đi tốt nhất đang là qua R2 với tổng delay = 3000us.

Để R1 có thể load-balancing qua các đường khá thì  có thể cấu hình điều chỉnh biến variance.

R1(config-router)#variance 2

When using the variance command, eigrp will add a feasible successor to the route table if the feasible successor has a feasible distance that is less than or equal to the product of the feasible distance of the successor times the variance setting and the feasibility condition is met. In math terms:

FD (of the FS) <= FD (of the S) * variance  

Dựa vào giải thích trên, bất kỳ route nào có nhỏ hơn 6000 (R1 FD=3000 x2) và thỏa mãn điều kiện FC thì sẽ được đưa vào bảng định tuyến ==> Với topo này thì sau khi điều chỉnh variance =2, đường qua R3 (FD = 6000) sẽ được đưa vào bảng định tuyến, đường qua R4 (FD = 4500) mặc dù thỏa mãn < 6000, tuy nhiên lại không thỏa mãn điều kiện FC (R4 RD = 3500 > R1 FD = 3000) nên không được đưa vào bảng định tuyến.

Xem bảng định tuyến trên R1 để thấy:

R1#show ip route

C 192.168.12.0/24 is directly connected, Serial0/0
C 192.168.12.0/24 is directly connected, Serial0/0
C 192.168.13.0/24 is directly connected, Serial0/1
C 192.168.14.0/24 is directly connected, Serial0/2
D 192.168.45.0/24 [90/102400] via 192.168.14.4, 00:16:57, Serial0/2
D 192.168.25.0/24 [90/64000] via 192.168.12.2, 00:16:57, Serial0/0
D 5.0.0.0/8 [90/153600] via 192.168.13.3, 00:07:48, Serial0/1
                       [90/76800] via 192.168.12.2, 00:07:48, Serial0/0
D 192.168.35.0/24 [90/140800] via 192.168.13.3, 00:16:57, Serial0/1
[90/115200] via 192.168.12.2, 00:16:59, Serial0/0

Chi tiết về tỉ lệ traffic phân chia trên các đường thì có thể đọc thêm tại link sau:

http://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/13677-19.html