如上图所以,外网的192.168.88.100需要访问内网10.12.88.120的22端口,在路由器上设置DNAT规则,外网192.168.88.100访问路由器外网口192.168.88.88的22端口,由路由器做DNAT转发至内网的10.12.88.120服务器上。配置DNAT完成之后,外网的192.168.88.100可以正常ssh(22端口)登录至内网的10.12.88.120。
在10.12.88.120上抓取数据包,使用如下命令:
tcpdump -i ens160 -vnn -p tcp
抓取的数据包如下所示,请先查看疑问.
【疑问】 DNAT,我理解的,在路由器做了DNAT转换之后,在服务器端抓取数据包,数据包应该是(源地址是外网 192.168.88.100,目的地址10.12.88.120)
但实际抓取的数据包中,并没有外网192.168.88.100有相关的连接;而服务器上的数据包,全部是路由器内网接口10.12.88.254与服务器10.12.88.120之间的交互。
请问,这是正常现象,还是MikroTik配置有错误吗?
10.12.88.254.54795 > 10.12.88.120.22: Flags [P.], cksum 0x9a8b (correct), seq 180:216, ack 629, win 509, options [nop,nop,TS val 6860383 ecr 3449050210], length 36
08:30:43.883899 IP (tos 0x48, ttl 64, id 52957, offset 0, flags [DF], proto TCP (6), length 88)
10.12.88.120.22 > 10.12.88.254.54795: Flags [P.], cksum 0xc5d8 (incorrect -> 0x53c2), seq 629:665, ack 216, win 259, options [nop,nop,TS val 3449050331 ecr 6860383], length 36
08:30:43.893702 IP (tos 0x48, ttl 64, id 52958, offset 0, flags [DF], proto TCP (6), length 424)
10.12.88.120.22 > 10.12.88.254.54795: Flags [P.], cksum 0xc728 (incorrect -> 0x0529), seq 665:1037, ack 216, win 259, options [nop,nop,TS val 3449050340 ecr 6860383], length 372
08:30:43.894336 IP (tos 0x48, ttl 64, id 52959, offset 0, flags [DF], proto TCP (6), length 128)
10.12.88.120.22 > 10.12.88.254.54795: Flags [P.], cksum 0xc600 (incorrect -> 0x7a95), seq 1037:1113, ack 216, win 259, options [nop,nop,TS val 3449050341 ecr 6860383], length 76
08:30:43.897442 IP (tos 0x0, ttl 63, id 53213, offset 0, flags [DF], proto TCP (6), length 52)
10.12.88.254.54795 > 10.12.88.120.22: Flags [.], cksum 0x3334 (correct), ack 1037, win 514, options [nop,nop,TS val 6860397 ecr 3449050331], length 0
08:30:43.936344 IP (tos 0x0, ttl 63, id 53214, offset 0, flags [DF], proto TCP (6), length 52)
在服务器上,使用netstat -an 查看TCP的连接状态,也仅是路由器内网接口10.12.88.254与服务器10.12.88.120之间,如下所示:
(0)
最佳答案
目的地址nat原则上源地址是不会变化的,除非是lan口做了源地址nat。
(0)
感谢, 我刚才对SNAT配置的out指定了接口,就解决刚才的问题现象了。 之前,DNAT是指定了in的接口的 感谢,这么晚了,还打扰您,谢谢!
我确实同时配置了SNAT,但实际需求中,该服务器存在同时访问外网的需求。也就是需要同时配置SNAT和DNAT。 我刚才也尝试了,将SNAT规则删除,内网就直接是连接外网IP,建立的TCP连接。 有没有同时配置SNAT\DNAT,DNAT通信时,服务器端的TCP连接数据包,源IP是外网IP的配置模式。(由于应用程序的原因,应用程序会获取DNAT的源IP,作为数据包回复)
是的
请问,有没有什么办法,配置路由器,达到我的这个需求。 我记得,我使用Windows系统的路由转发,配置DNAT,好像没有遇到过此类问题。
外网口做入方向的yu按地址转换,华三的设备叫nat inbound
外网口做入方向的源地址转换,华三的设备叫nat inbound
感谢, 我刚才对SNAT配置的out指定了接口,就解决刚才的问题现象了。 之前,DNAT是指定了in的接口的 感谢,这么晚了,还打扰您,谢谢!
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明