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

文章讲述了作者在Linux课程中遇到关于两次DNAT可能导致TCP源丢失的问题,通过ensp路由器模拟和EVE模拟器测试发现两次DNAT实际上是可以正常工作的。此外,还介绍了如何在iptables和firewalld中实现DNAT的永久配置。
摘要由CSDN通过智能技术生成

1.问题描述

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

2.ensp模拟验证

因为使用手头没有eve模拟器,先使用ensp路由器模拟验证,拓扑如下图


路由器配置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测试

网络拓扑如下图


配置命令如下:
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
```bash
firewalld-cmd --add-forward-port=port=55023:proto=tcp:toport=54023:toaddr=172.16.12.1 --per
firewalld-cmd --reload
  • 26
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马立杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值