两次DNAT(端口映射)的问题验证

1.问题描述

某Linux课程上看到,两次DNAT(端口映射)会导致TCP源丢失的问题,因为本身学过网络相关的知识,理论上并未发现会在哪个节点丢失源的问题,遂实验验证。
两次DNAT(端口映射)的问题验证-下一朵云

2.ensp模拟验证

因为使用手头没有eve模拟器,先使用ensp路由器模拟验证,拓扑如下图
两次DNAT(端口映射)的问题验证-下一朵云
路由器配置nat server
命令如下:
R1

[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 8080 inside 172.16.12.1 8081

R2

[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 8081 inside 172.16.13.2 80

经过测试,发现两次DNAT(端口映射,华为称为nat server)后,依然可以正常访问,并不会出现TCP连接无法建立的情况。
为进一步验证,于是搭建eve模拟器环境用liunx进行测试。

3.eve模拟器centos测试

网络拓扑如下图
两次DNAT(端口映射)的问题验证-下一朵云
配置命令如下:
GW1

iptables -t NAT -A PREROUTING -d 101.163.9.102 -p tcp --dport=55023 -j DNAT --to-destination 172.16.12.1:54023

stream1

iptables -t NAT -A PREROUTING -d 172.16.12.1 -p txp --dport=54023 -j DNAT --to-destination 172.16.13.2:22

打开Linux的路由转发功能

sysctl -w net.ipv4.ip_forward=1
#永久生效
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

经过测试也是可以访问的,最终验证两次DNAT(端口映射)是没有问题的

4.补充

  • 以上iptables操作都是临时的,重启后会丢失,永久生效配置如下
    yum -y install iptables-services
    iptables-save > /etc/sysconfig/iptables
    systemctl enable iptables.service --now
    #查看命令
    iptables -t nat -L -n
  • firewalld配置DNAT
    firewalld-cmd --add-forward-port=port=55023:proto=tcp:toport=54023:toaddr=172.16.12.1 --per
    firewalld-cmd --reload
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。