对于我的测试,我需要生成具有不同源 IP 地址的多个流,我认为虚拟设备可以完成这项工作。
我正在使用以下设置:在同一台 PC 上,我有两个 NIC,通过电缆背对背连接;我已经配置了策略路由,以便这两个接口之间的数据包通过电缆传输,没有环回接口:
$ ip rule sh
1: from 192.168.2.101 to 192.168.2.100 iif eth1 lookup local
2: from 192.168.2.100 to 192.168.2.101 iif eth2 lookup local
3: from 192.168.2.101 to 192.168.2.100 lookup main
4: from 192.168.2.100 to 192.168.2.101 lookup main
100: from all lookup local
32766: from all lookup main
32767: from all lookup default
$
现在我添加了两个虚拟设备 ( ip link add xx type dummy
) dummy0 和 dummy1,IP 分别为 10.10.10.1 和 20.20.20.1。我现在想要实现的是,数据包离开dummy0
(dummy1
例如ping -I 10.10.10.1 20.20.20.1
),反之亦然,遵循以下路线:
虚拟0 <-> eth1 <-> eth2 <-> 虚拟1
我还需要在策略路由中做什么才能使其正常工作?如果使用 Linux 网络命名空间更容易实现,我也很乐意拥有该解决方案!谢谢。