首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >观察DNAT下的ping答复

观察DNAT下的ping答复
EN

Unix & Linux用户
提问于 2014-12-31 21:11:51
回答 2查看 1.7K关注 0票数 1

当我试图理解在这种情况下的DNAT机制时,我感到困惑。

我的理解是:

DNAT =目标网络地址转换:将传入数据包的目标地址转换为目的地x的功能。

我在理解DNAT回复路径方面面临困难。

例如:我有一台IP为x1的机器(A),并希望进入这台机器(dest y1)的所有连接/数据包都被重路由到另一台具有IP地址为z1的机器(B)。

因此,我添加了一个新的NAT规则如下:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -s x1 -d y1 -j DNAT --to-destination z1.

在A机上的试验:ping -I x1 y1

如果我在机器A上运行tcpdump -i eth6 icmp,那么我会得到IP y1而不是z1的回复吗?或者是基于子网掩码来执行subnet?

当我监视tcpdump -i eth6 host z1时,没有任何传入的ping或数据包。有人能澄清这种情况和我的理解吗?

另外,如果包是本地翻译的,那么我们是否可以制作这个tcpdump?

EN

回答 2

Unix & Linux用户

发布于 2021-12-02 15:30:53

为了转发ping请求,您需要显式地指定ICMP协议,如下所示:

代码语言:javascript
复制
iptables -t nat -I PREROUTING -d <ip y1> -p icmp -j DNAT --to-destination <ip z1>

然而,PREROUTING本身不会在机器上工作--为了使机器工作,机器A必须介于您和pinged机器B之间。

代码语言:javascript
复制
YOU(ip x1) <---internet---> (ip y1) Machine A(ip z0) <---NATed LAN---> (ip z1)Machine B

这样就会很有魅力了。

下面是在机器A上使用IP地址y1 (10.0.0.1)和z0 (10.10.0.73)的方式,当我从机器(10.0.0.32)点击y1时。机器B具有IP地址10.10.0.1 (z1):

代码语言:javascript
复制
16:23:54.181828 IP 10.0.0.32 > 10.0.0.1: ICMP echo request, id 25492, seq 0, length 64
16:23:54.181860 IP 10.10.0.73 > 10.10.0.1: ICMP echo request, id 25492, seq 0, length 64
16:23:54.182788 IP 10.10.0.1 > 10.10.0.73: ICMP echo reply, id 25492, seq 0, length 64
16:23:54.182806 IP 10.0.0.1 > 10.0.0.32: ICMP echo reply, id 25492, seq 0, length 64
票数 1
EN

Unix & Linux用户

发布于 2015-01-01 01:31:32

您的错误在于,您需要三个系统才能做到这一点:

代码语言:javascript
复制
A -----> B

应改为

代码语言:javascript
复制
A -----> B -----> C

在这种情况下,您将需要PREROUTING链在B上,因为包将从外部传递到系统。

但是,如果您在创建数据包的同一个系统上使用iptables,那么它们是本地生成的数据包,而这些数据包根本不通过PREROUTING。通过两种系统,您可以做到这一点:

代码语言:javascript
复制
A -----> B

应改为

代码语言:javascript
复制
A -----> C

(如果测试DNAT不需要答复,C就不存在了。)

在这种情况下,您需要这样一条规则:

代码语言:javascript
复制
 iptables -t nat -A OUTPUT -d y1 -j DNAT --to-destination z1

但是,如果您将目标地址更改为自己的地址,则数据包根本无法到达eth6。你需要tcpdump -i lo -n来看它。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/176877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档