交换机
园区网交换机
数据中心与云计算交换机
行业精选交换系列
意图网络指挥官
无线
放装型无线接入点
墙面型无线接入点
智分无线接入点
室外无线接入点
场景化无线
行业精选无线系列
无线管理与应用
功能介绍:
在外网有多出口存在的情况下,数据包从不同的外网口转发时,将内外的数据流转化成不同的ip地址+端口。permit-inside功能可以实现内网主机通过公网地址访问内部的服务器。
应用场景:
企业租用多个不同运营商的专线上网,内网有一台服务器需要映射到两个外网口上,让外网的用户也能访问到服务器上的资源,若要想实现内网用户也能用外网口的IP地址访问内网的服务器(有时候需要用域名来访问服务器,而通常域名解析后对应的都是公网的IP地址),此时可以使用NAT转换的permit-inside功能,实现内外网用户均能用公网地址访问服务器。
一、组网需求
如下网络拓扑,R1到外网有2个出口 R3和R4,需要实现内网 172.16.1.0/24 访问外网走R3出口,并转换成该出口的公网地址;内网 172.16.2.0/24 访问外网走R4出口,并转换成该出口的公网地址。内网一台服务器172.16.1.100,转换成公网地址 192.168.2.168,内外网PC都需要通过该公网地址访问服务器。
二、组网拓扑
三、配置要点
1、基本ip地址配置
2、基本的ip路由配置
3、定义nat的内网口和外网口
4、在R1上配置ACL,把内网需要进行NAT转换的流量匹配出来
5、配置公网地址池
6、配置nat转换策略
7、配置静态nat
8、在R1上配置ACL,把内网的流量匹配出来
9、配置策略路由
10、应用策略路由
四、配置步骤
1、基本ip地址配置
Ruijie(config)#hostname R1
R1(config)#interface gigabitEthernet 0/0
R1(config-GigabitEthernet 0/0)#ip address 192.168.1.1 255.255.255.0
R1(config-GigabitEthernet 0/0)#exit
R1(config)#interface gigabitEthernet 0/1
R1(config-GigabitEthernet 0/1)#ip address 192.168.2.1 255.255.255.0
R1(config-GigabitEthernet 0/1)#exit
R1(config)#interface gigabitEthernet 0/2
R1(config-GigabitEthernet 0/2)#ip address 192.168.3.1 255.255.255.0
R1(config-GigabitEthernet 0/2)#exit
Ruijie(config)#hostname R2
R2(config)#interface gigabitEthernet 0/0
R2(config-GigabitEthernet 0/0)#ip address 192.168.1.2 255.255.255.0
R2(config-GigabitEthernet 0/0)#exit
R2(config)#interface gigabitEthernet 0/1
R2(config-GigabitEthernet 0/1)#ip address 172.16.1.1 255.255.255.0
R2(config-GigabitEthernet 0/1)#exit
R2(config)#interface gigabitEthernet 0/2
R2(config-GigabitEthernet 0/2)#ip address 172.16.2.1 255.255.255.0
R2(config-GigabitEthernet 0/2)#exit
Ruijie(config)#hostname R3
R3(config)#interface fastEthernet 0/0
R3(config-if-FastEthernet 0/0)#ip address 192.168.2.2 255.255.255.0
R3(config-if-FastEthernet 0/0)#exit
Ruijie(config)#hostname R4
R4(config)#interface fastEthernet 0/0
R4(config-if-FastEthernet 0/0)#ip address 192.168.3.2 255.255.255.0
R4(config-if-FastEthernet 0/0)#exit
2、基本的ip路由配置,使全网可达
R1(config)#ip route 172.16.0.0 255.255.0.0 192.168.1.2
R2(config)#ip route 100.1.1.0 255.255.255.0 192.168.1.1
R2(config)#ip route 192.168.0.0 255.255.0.0 192.168.1.1
3、定义nat的内网口和外网口
R1(config)#interface gigabitEthernet 0/1
R1(config-GigabitEthernet 0/1)#ip nat outside //配置nat的外网口
R1(config-GigabitEthernet 0/1)#exit
R1(config)#int gigabitEthernet 0/0
R1(config-GigabitEthernet 0/0)#ip nat inside //配置nat的内网口
R1(config-GigabitEthernet 0/0)#exit
4、在R1上配置ACL,把内网需要进行NAT转换的流量匹配出来
R1(config)#ip access-list standard 10
R1(config-std-nacl)#10 permit 172.16.1.0 0.0.0.255
R1(config-std-nacl)#20 permit 172.16.2.0 0.0.0.255
R1(config-std-nacl)#exit
5、配置公网地址池
注意:
当有多个公网出口时,从不同出口转发数据包,需要nat成对应出口的可用公网地址。我司设备是使用nat地址池下的 match interface 参数来匹配数据包的出接口,把数据包源地址nat成该出接口可用的公网地址。
R1(config)#ip nat pool nat_ruijie netmask 255.255.255.0 //配置nat公网地址池 nat_ruijie
R1(config-ipnat-pool)#address 192.168.2.10 192.168.2.11 match interface GigabitEthernet 0/1 //当数据包从GigabitEthernet 0/1口转发出去时,nat成地址 192.168.2.10 - 192.168.2.11
R1(config-ipnat-pool)#address 192.168.3.10 192.168.3.11 match interface GigabitEthernet 0/2 //当数据包从GigabitEthernet 0/2口转发出去时,nat成地址 192.168.3.10 - 192.168.3.11
R1(config-ipnat-pool)#exit
6、配置nat源地址池转换
R1(config)#ip nat inside source list 10 pool nat_ruijie overload //将acl 10匹配的流量,转换成 nat_ruijie 地址池的地址,并做nat重载
注意:
overload参数是执行nat重载的含义,若不加overload是执行动态的ip一对一映射,不会执行端口转换,不能解决公网地址不够的问题。若是在网络出口执行NAT,是为了解决公网地址不够的问题,必须要加overload参数。
7、配置静态nat
注意:
1)静态nat转换,可以进行ip地址一对一的转换,也可以基于TCP、UDP协议进行端口转换。
2)permit-inside功能:当有内网服务器静态映射成公网地址时,内网PC若需要通过该公网地址访问服务器,就必须配置permit-inside参数,在配置静态nat时,建议都配置permit-inside参数。
如下分别为基于ip地址的一对一映射及基于TCP、UDP协议的端口映射的配置示例:
1)基于ip地址的一对一映射
R1(config)#ip nat inside source static 172.16.1.100 192.168.2.168 permit-inside //把内网172.16.1.100 映射成公网的192.168.2.88
2)基于TCP、UDP协议的端口映射
R1(config)#ip nat inside source static tcp 172.16.1.100 23 192.168.2.168 23 permit-inside //把内网172.16.1.100 tcp 23端口 映射成公网的192.168.2.88 的23端口
8、在R1上配置ACL,把内网的流量匹配出来
注意:
nat的permit-inside功能和策略路由有冲突。
如上的静态nat映射配置,出口路由器把内网服务器 172.16.1.100映射为192.168.2.168。在以上配置中,若内网中有一台PC 172.16.2.10 通过192.168.2.168来访问该服务器,那么有以下转换过程:
|
源IP地址 |
目的IP地址 |
转换前 |
172.16.2.10 |
192.168.2.168 |
转换后 |
192.168.2.168 |
172.16.1.100 |
基于我司的流表处理机制,当进行以上源、目IP地址转换后,将会认为这是一条源地址为172.16.2.10,目的地址为172.16.1.100的数据流。因此在策略路由ACL的配置中,需要注意首先要将该类流量丢弃(即所有内网网段到服务器所在网段的流量),否则将导致该类流量被策略路由重定向到指定的外网口下一跳。另外由于服务器所在网段172.16.1.0也做了策略路由,也存在该问题,因此也要把服务器到内网的流量拒绝掉,不执行策略路由。因此ACL如下:
R1(config)#ip access-list extended 110 //配置ACL 110,匹配内网172.16.1.0/24 访问外网的流量
R1(config-ext-nacl)#10 deny ip 172.16.1.0 0.0.0.255 172.16.2.0 0.0.0.255
R1(config-ext-nacl)#20 permit ip 172.16.1.0 0.0.0.255 any
R1(config)#ip access-list extended 120 //配置ACL 120,匹配内网172.16.2.0/24 访问外网的流量
R1(config-ext-nacl)#10 deny ip 172.16.2.0 0.0.0.255 172.16.1.0 0.0.0.255
R1(config-ext-nacl)#20 permit ip 172.16.2.0 0.0.0.255 any
R1(config-ext-nacl)#exit
9、配置策略路由
R1(config)#route-map ruijie permit 10 //配置route-map ruijie
R1(config-route-map)#match ip address 110 //匹配内网acl 110的流量
R1(config-route-map)#set ip next-hop 192.168.2.2 //强制设置ip报文的下一跳为 192.168.2.2,走R3出口
R1(config-route-map)#exit
R1(config)#route-map ruijie permit 20
R1(config-route-map)#match ip address 120
R1(config-route-map)#set ip next-hop 192.168.3.2
R1(config-route-map)#exit
10、应用策略路由
R1(config)#interface gigabitEthernet 0/0
R1(config-GigabitEthernet 0/0)#ip policy route-map ruijie //应用策略路由
R1(config-GigabitEthernet 0/0)#exit
五、配置验证
1、测试内网PC能否正常访问外网,并且查看是否按照策略路由选路。若172.16.1.0/24可用正常访问外网并且走R3出口;172.16.2.0/24可用正常访问外网并且走R4出口,则多出口NAT及策略路由配置正确。
R2#traceroute 100.1.1.1 source 172.16.1.1
< press Ctrl+C to break >
Tracing the route to 100.1.1.1
1 192.168.1.1 0 msec 0 msec 0 msec
2 192.168.2.2 10 msec 0 msec 10 msec //172.16.1.0/24 访问外网走R3出口
其它路径省略
2、测试内外网PC通过公网ip,能否正常访问服务器,若内网PC通过公网ip,都可以正常访问服务器,则静态nat配置正确。内网PC通过公网地址访问服务器,nat映射表如下: