2015-06-09 53 views
0

我有兩臺機器,如下所示:Dummynet在不匹配流

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的規則。

有人可以請我指點建議。

謝謝。

回答

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,我不知道怎麼迴流量將設法回溯到源機器。