要想正确地理解单物理接口NAT,需要正确地理解NAT条件和处理顺序。以下配置引用了坛子里的内容,对被引用内容的原作者表示感谢。
一:从inside到outside的NAT
1.有inside和outside接口
2.inside接口接收到NAT“感爱好的包”(由ACL定义)
3.检查是否有经过outside接口到外网的路由(先策略路由后常规路由)。
4.执行NAT,源地址被NAT转换。
5.被转换的包经outside接口转发出去。
二:从outside到inside的NAT
1.NAT表中是否有相应的NAT纪录
2.执行NAT,目的地址被转换
3.执行路由(先策略路由后常规路由)
4.被转换的包经inside接口转发出去。
三:配置实例1分析:
特点是: loopback0做outside接口
interface Loopback0
ip address 172.16.2.254 255.255.255.252
ip nat outside
!
interface Ethernet0
ip address 192.168.0.1 255.255.255.248 sec
ip address 172.16.1.254 255.255.255.0
ip nat inside
ip policy route-map nat
!
ip nat pool pool1 192.168.0.2 192.168.0.3 prefix-length 29
ip nat inside source list 10 pool pool1 overload
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.0.6
ip route 172.16.1.0 255.255.255.0 Ethernet0
Access-list 10 permit 172.16.1.0 0.0.0.255
access-list 101 permit ip 172.16.1.0 0.0.0.255 any
access-list 101 permit ip any 192.168.0.0 0.0.0.7
!
route-map nat permit 10
match ip address 101
set interface loopback0
(一):源地址=172.16.1.0/24的包到达E0接口时:
1.E0接口是inside接口
2.包是NAT感爱好的包(ACL 10定义)
3.检查路由,先执行策略路由nat,有set interface loopback0,即有经outside接口loopback0到达外网的路由,因此满足NAT执行的条件
4.执行NAT,源=172.16.1.0/24被转换为=192.168.0.2~3(地址池pool1定义)。
5.从outside接口loopback0转发出去。
6.loopback0是逻辑环路接口,因此应用ip route 0.0.0.0 0.0.0.0 192.168.0.6,192.168.0.6是ISP端地址。
7.被转换的包就经E0接口转发到ISP路由器。
(二):返回包(目的地址=192.168.0.2~3)到达E0接口时
1.返回包不是NAT感爱好的包,因此按常规包处理
2.执行策略路由nat,set interface loopback0,即路由到outside接口。
3.NAT有相应的NAT纪录,
4.执行NAT,目的地址192.168.0.2~3被转换为172.16.1.0/24
5.执行路由,loopback0接口上无策略路由,因此执行常规路由。
6.被转换的包经E0接口转发出去。
四:配置2实例
特点是:loopback0做inside接口。
interface Loopback0
ip address 172.16.1.1 255.255.255.248
ip nat inside
ip policy route-map rm_nat
!
interface FastEthernet0/0
ip address 172.16.0.1 255.255.255.0 secondary
ip address 192.168.0.1 255.255.255.252
ip nat outside
ip policy route-map no_route
!
ip nat pool st_pool 61.233.13.193 61.233.13.198 netmask 255.255.255.248
ip nat inside source list 10 pool st_pool
ip classless
ip route 0.0.0.0 0.0.0.0 Loopback0
access-list 10 permit 172.16.0.0 0.0.0.255
access-list 101 permit ip any any
access-list 102 permit ip 172.16.0.0 0.0.0.255 any
route-map no_route permit 10
match ip address 102
set interface Loopback0
!
route-map rm_nat permit 10
match ip address 101
set ip next-hop 192.168.0.2
该实例的主要区别是采用了2个策略路由,其目的都是实现使包到达inside接口或outside接口,且满足NAT转换的路由条件。
需要注重的是:NAT地址池的地址不必非要与ISP端路由器地址同一网段,可以是公网IP,也可以是私网地址。只要ISP能区分就行。且ISP必须有到达NAT地址池的路由(静态或动态都行)。
对于NAT路由器来说,只需要有“ip route 0.0.0.0 0.0.0.0 ISP端IP地址”这条命令即可。