NAT回流实战落地(ensp)

首先感谢@宁哥网工小课堂 up主和一些网络上的帖子,在这些大佬的启发下我完成了配置并实现了组网落地,并且对NAT回流进行了一些拓展和补充,特此分享,共同学习。(我比较基础所以望大家见谅!)
现在正式开始。
上图拓扑,模拟搭建企业简单组网:
1、AR1是企业出口设备,SW1是企业内部核心交换,内网有客户端Client2,和两台服务器分别是Server1和Server2,两个服务器分别启动的是http服务,端口号都是80。
2、ISP是运营商设备,运营商设备连接客户端Client1。
各个设备的地址如图所示,不再赘述。
3、ISP设备和AR1设备互联地址为10.100.100.0/24,为私网地址。同时,ISP为该企业分配了两个公网地址:200.1.1.10和200.1.1.11。
现在的要求就是:1、公网Client1可以通过nat server技术实现访问内网的两个服务器。
2、要求内网Client2可以通过访问内网地址192.168.10.2和192.168.20.253的80端口来访问两个服务器。
3、要求内网Client2可以通过访问公网地址的对应端口来访问内网的两个服务器的web服务。也就是我们说的需要实现NAT回流的功能。
4、内网设备可以正常访问公网的资源。
配置之前先说下一些坑:同时也解释一下为什么这么组网原因如下:
模拟真实的企业组网
1、200.1.1.10-11是运营商给企业的的公网地址。
2、10.100.100.1-2是企业出口和ISP的互联私网地址。
3、注意点:ensp中的AR2220路由器在企业出接口假如配置了公网地址,之后不能同时在这个接口配置nat或者nat server。或者就是像上面那样ISP给一个公网地址,一个公网地址无法做同时做nat和nat server。会报冲突提示。(这是模拟器的限制,真实设备应该不会这样)。
4、所以,假设ISP给的两个公网地址,200.1.1.10用来在出接口做nat server,200.1.1.11用来在出接口做nat outbound。
5、那么此时就需要在ISP路由器上面配置两条静态路由去往这两个公网地址,路由指向10.100.100.1这个企业出接口就行,分别是:
ip route-static 200.1.1.11 32 10.100.100.1
ip route-static 200.1.1.10 32 10.100.100.1
6、拓扑设计成这个是因为nat outbound 在接口触发的条件是:同一网段的设备无法触发nat outbound,所以我们的sw1是3层交换机。
7、华为设备的 NAT Server 规则默认是「入接口生效」,只对从配置该规则的接口进入的流量生效,对从该接口出去的流量完全不生效。这就是公网 Client1 能在AR1的G0/0/2接口触发nat server的地址转化、内网 Client2 在AR1的G0/0/2接口触发不了nat server的地址转化的根本原因。所以要在AR1的G0/0/0接口配置NAT回流的相关配置。
8、还有就是nat static.......和nat server..........的区别。nat static 双向固定绑定:公网 IP 和内网 IP 是一对一硬绑定,不管有没有流量,映射关系永久存在,不会因为会话超时断开。企业内部推荐使用,稳定。
好!!!下面就是配置脚本:
ISP:ISP:
interface GigabitEthernet0/0/0
ip address 10.100.100.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 12.0.0.254 255.255.255.0
ip route-static 200.1.1.10 255.255.255.255 10.100.100.1
ip route-static 200.1.1.11 255.255.255.255 10.100.100.1
R1配置:
acl number 2000
rule 5 permit #为了匹配内网设备上外网的需求,AR1出接口做nat outbound
acl number 3000 #nat回流匹配的流量,用在g0/0/0接口。
rule 5 permit tcp source 192.168.10.0 0.0.0.255 destination 200.1.1.10 0 destination-port eq www
rule 10 permit tcp source 192.168.10.0 0.0.0.255 destination 200.1.1.10 0 destination-port eq 8080
nat address-group 1 200.1.1.11 200.1.1.11 #nat地址池,用来实现AR1出接口做nat outbound
interface GigabitEthernet0/0/0
ip address 10.0.0.1 255.255.255.0
nat static protocol tcp global 200.1.1.10 www inside 192.168.10.2 www
nat static protocol tcp global 200.1.1.10 8080 inside 192.168.10.2 www
上面两条语句是实现nat回流的目的地址转换
nat outbound 3000
上面的这一条语句是实现nat回流的源地址转换
interface GigabitEthernet0/0/2
ip address 10.100.100.1 255.255.255.0
nat server protocol tcp global 200.1.1.10 www inside 192.168.10.2 www
nat server protocol tcp global 200.1.1.10 8080 inside 192.168.20.253 www 192.168.20.253 80
nat outbound 2000 address-group 1
ip route-static 0.0.0.0 0.0.0.0 10.100.100.2
ospf 1 router-id 11.11.11.11 #AR1和sw1跑ospf
default-route-advertise
area 0.0.0.0
network 10.0.0.0 0.0.0.255
sw1:
vlan batch 10 20 30
interface Vlanif10
ip address 192.168.10.254 255.255.255.0
interface Vlanif20
ip address 192.168.20.254 255.255.255.0
interface Vlanif30
ip address 10.0.0.2 255.255.255.0
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
interface GigabitEthernet0/0/2
port link-type access
port default vlan 10
interface GigabitEthernet0/0/3
port link-type access
port default vlan 30
interface GigabitEthernet0/0/4
port link-type access
port default vlan 20
ospf 1 router-id 1.1.1.1
silent-interface GigabitEthernet0/0/1 #ospf被动端口
silent-interface GigabitEthernet0/0/2
silent-interface GigabitEthernet0/0/4
area 0.0.0.0
network 192.168.20.0 0.0.0.255
network 10.0.0.0 0.0.0.255
network 192.168.10.0 0.0.0.255
——————————————————————————————
此时就可以实现 一、Client2访问外往,同时Client2可以通过内网地址访问两个服务器的web服务,也可以实现Clinet2通过访问公网地址来访问两个内网服务器的web服务。
二、外往的Client1可以访问内网服务器。
大概讲解下Client2通过公网地址访问两个服务器的流量变化:(牵扯NAT回流,比较绕,大家仔细看,没问题的!)
Client2访问200.1.1.10 80来举例。x指的是随机端口。
下面就是五元组的表示法,
①、数据起始:192.168.10.1 x - 200.1.1.10 80
查看路由数据进入AR1
②数据从AR1的g0/0/0接口进入AR1,触发nat server地址目标地址转换,变成了
192.168.10.1 x - 192.168.10.2 80
③、此时查看路由表,数据需要从AR1的g0/0/0接口出去,此时,又触发nat outbound 3000做源地址转换。
10.0.0.1 y - 192.168.10.2 80
④、数据到达server1,server1回包,
192.168.10.2 80 -10.0.0.1 y
⑤、数据到达AR1的g0/0/0,因为之前有nat会话,和nat server会话,所以数据包变成了
200.1.1.10 80 - 192.168.10.1 x
⑥、此时查看路由从AR1的g0/0/0接口发出去把数据包交给Clinet2,通信完成!!!
回顾:
数据起始:192.168.10.1 x - 200.1.1.10 80
数据回程:200.1.1.10 80 - 192.168.10.1 x
没问题!!!所以成功。
大家自己分析:Client2通过公网地址访问Server2,道理一样。
谢谢!
记得开启服务器的http服务~~~~

浙公网安备 33010602011771号