0

我有两台机器,如下图:

To internet<---->PC_A<----->PC_B

PC_A 有两个接口(一个连接到互联网,另一个连接到 PC_B)。PC_B 必须经过 PC_A 才能连接到 Internet。我在 PC_A 上运行 Dummynet。PC_A 在面向 Internet 的接口上具有 IP 192.168.1.1,在面向 PC_B 的接口上具有 IP 10.42.0.1。PC_B bas 10.42.0.2 在其接口上配置。

我在 Dummynet 中有两个管道,配置如下:

ipfw add pipe 1 ip from 192.168.1.1 to any
ipfw add pipe 2 ip from any to 192.168.1.1
ipfw pipe 1 config bw 5000Kb/s
ipfw pipe 2 config bw 5000Kb/s

如果我在两台机器上运行带宽测试(比如 speedtest.net),PC_A 的带宽正是我在 Dummynet 中指定的,而 PC_B 获得了无限带宽。我不明白这是怎么可能的,因为 PC_B 的数据包必须通过它的网关,它会受到 Dummynet 规则的约束。

有人可以指点我的建议。

谢谢。

4

1 回答 1

0

PC_A 是配置为 NAT 还是这台机器只是转发数据包?如果前者没有到位,您的 IPFW 规则将不会捕获从 PC_B 的 10.42.0.2 接口通过的数据包。如果尚未完成,我建议在 PC_A 上的 192.168.1.1 接口上进行 tcpdump 以查看离开本地网络的数据包的源地址。

详细地说,您为 pipe1 和 pipe2 制定的 IPFW 规则将仅匹配源地址和目标地址(分别)为 192.168.1.1 的数据包......

根据您的网络拓扑和路由配置,您可以通过在您的 IPFW 规则中使用输入/输出过滤器来实现您想要的无需 NAT...

ipfw add pipe 1 ip from any to any in via em0
ipfw add pipe 2 ip from any to any out via em0

...但是如果没有正确配置的 NAT,我不确定返回流量将如何设法遍历回源计算机。

于 2015-07-12T17:37:11.473 回答