NAT回流实战落地(ensp)

首先感谢b站,宁哥网工小课堂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、NAT回流:要求内网Client2可以通过访问公网地址来访问内网的两个服务器的web服务。也就是我们说的需要实现NAT回流的功能。
4、企业出口配置NAT,使得内网设备可以正常访问公网的资源。
三、踩坑提醒,及注意问题,配置之前先说下一些坑,同时也解释一下为什么这么组网原因如下:
1、为了模拟真实的企业组网,所以公网地址和互联地址如下设计:
①、200.1.1.10-11是运营商给企业的的公网地址。
②、10.100.100.1-2是企业出口和ISP的互联私网地址。
2、踩坑注意点:
①、ensp中的AR2220路由器(即就是图中R1)企业出接口假如配置了一个公网地址,那么后面就不能同时在这个接口配置出接口nat和nat server。或者就是像上面那样假如ISP给一个公网地址,一个公网地址也是无法同时做nat和nat server。会报冲突提示。(这是模拟器的限制,真实设备应该不会这样)。
②、所以需要ISP给的两个公网地址,200.1.1.10用来在出接口做nat server,200.1.1.11用来在出接口做nat outbound。
③、那么此时就需要在ISP路由器上面配置两条静态路由去往这两个公网地址,路由指向R1的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
④、内网交换机SW1设计成3层的原因:
SW1不直接使用二层,是因为nat outbound 在接口触发的条件是:同一网段的设备无法触发nat outbound,所以我们的sw1是3层交换机。
⑤、华为NAT server规则:
华为设备的 NAT Server 规则默认是「入接口生效」,只对从配置该规则的接口进入的流量生效,对从该接口出去的流量完全不生效。这就是公网 Client1 能在AR1的G0/0/2接口触发nat server的地址转化、内网 Client2 在AR1的G0/0/2接口无法触发nat server的地址转化的根本原因。基于这个原因,所以要在R1的G0/0/0接口配置NAT server,从而解决nat回流的问题。也就是说,R1需要在出接口g0/0/2配置NAT server,同时还需要在内网口g0/0/0配置nat server。
⑥、nat static.......和nat server..........的区别。
nat static 双向固定绑定:公网 IP 和内网 IP 是一对一硬绑定,不管有没有流量,映射关系永久存在,不会因为会话超时断开。企业内部推荐使用,稳定。
nat server只有有流量的时候才进行转换,该转化映射表是有超时时间的,所以,R1的g0/0/2出接口用nat server合适,而g0/0/0接口用nat static合适。
⑦、重要坑点:华为设备NAT铁律,必须牢记
R1的内网接口g0/0/0,nat outbound 匹配的是「原始报文的五元组」,而非nat server转换后的报文。
此处举例,Client2访问200.1.1.10,数据包是:192.168.10.1 x - 200.1.1.10 80,然后,数据包进入R1时候的结构是经过nat server转换:192.168.10.1 x - 192.168.10.2 80,那么此时需要从g0/0/0出去做nat源地址转换的时候,匹配的还是192.168.10.1 x - 200.1.1.10 80,
而不是匹配192.168.10.1 x - 192.168.10.2 80,所以我们在g0/0/0调用的是nat outbound 3000。
四、实战落地配置脚本:
1、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
2、R1配置:
acl number 2000
rule 5 permit #匹配内网设备上外网的需求,在R1出接口做nat outbound。
acl number 3000 #nat回流匹配的流量,为了在g0/0/0接口配置nat server。
rule 5 permit tcp source 192.168.10.0 0.0.0.255 destination 200.1.1.10 0 destination-port eq 80
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地址池,用来实现R1出接口做nat outbound,用的公网地址就是200.1.1.11
①、配置R1的出接口:
interface GigabitEthernet0/0/2
ip address 10.100.100.1 24
nat server protocol tcp global 200.1.1.10 80 inside 192.168.10.2 80
nat server protocol tcp global 200.1.1.10 8080 inside 192.168.20.253 80
nat outbound 2000 address-group 1
②、配置R1的内网口:
interface GigabitEthernet0/0/0
ip address 10.0.0.1 24
nat static protocol tcp global 200.1.1.10 80 inside 192.168.10.2 80
nat static protocol tcp global 200.1.1.10 8080 inside 192.168.20.253 80
上面两条语句是实现nat回流的配置,做内网接口nat server目的地址转换。
nat outbound 3000
上面的这一条语句是实现nat回流的配置,在内网接口做nat源地址转换。
③、R1的其他配置:
R1和sw1内网跑ospf
ip route-static 0.0.0.0 0.0.0.0 10.100.100.2
ospf 1 router-id 11.11.11.11
default-route-advertise
area 0.0.0.0
network 10.0.0.0 0.0.0.255
3、sw1配置:
vlan batch 10 20 30
interface Vlanif10
ip address 192.168.10.254 24
interface Vlanif20
ip address 192.168.20.254 24
interface Vlanif30
ip address 10.0.0.2 24
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
五、实验验证:完成实验要求:
1、Client2可以正常访问外网。
2、Client2可以通过内网地址访问两个服务器的web服务。
3、实现NAT回流:Clinet2通过访问公网地址来访问两个内网服务器的web服务。
4、外网的Client1可以访问内网服务器的web服务。
六、NAT回流讲解,数据源目地址变化:
Client2通过公网地址访问两个服务器的流量变化:(牵扯NAT回流,比较绕,大家仔细看,没问题的!)
①、Client2访问200.1.1.10 80来举例。x指的是随机端口。用简易五元组来表示数据包。
②、数据包起始:192.168.10.1 x - 200.1.1.10 80
③、查看路由,然后数据需要从g0/0/0进入R1,此时触发nat server目的地址转化,数据包变成了: 192.168.10.1 x - 192.168.10.2 80
④、此时查看R1路由表,数据需要从R1的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
⑥、数据包从server1达R1的g0/0/0,因为之前有nat会话,和nat server会话,所以数据包变成了:200.1.1.10 80 - 192.168.10.1 x
⑦、此时数据包从R1的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号