gns3/dynamips可以通过Cloud设备,使用nio_linux_eth来使模拟的路由器桥接到宿主机的物理网卡。假如机器上的物理网卡是eth0,在cloud里就只能添加一个nio_linux_eth0,也就只能桥接一个端口。一般实验拓扑中都远不止一个需要桥接连接到交换机的端口,要实现与多台真实交换机连接,就需要多个桥接端口。
方法一:
加装多块物理网卡,比如可以去淘四口的pci网卡。这篇老外的博客里就是这样做的 http://mellowd.co.uk/ccie/?p=1516
方法二:
还有更简单的办法:使用子接口。Linux中直接可以ifconfig eth0:1创建eth0:1子接口,需要几个可以创建几个。创建之后分配ip。
如果是自己编辑.net文件, 就类似这样写:
[[ROUTER R1]]
model = 3640
console = 2000
slot0 = NM-4E
e0/0 = nio_linux_eth:eth0:1
x = -266.0
y = -96.0
[GNS3-DATA]
[[Cloud C1]]
x = -270.5
y = 45.0
connections = R1:e0/0:nio_linux_eth:eth0:1
如果是用gns3, gns3的cloud里不会出现子接口。所以需要一个虚拟网卡的驱动,vethd。
#veth -v veth0 -e eth0
#veth -v veth1 -e eth0
… …
之后在cloud里,就可以看到创建的多个网卡对应的nio_linux_eth了。
最后吧把eth0 接到一台交换机,再把需要连接到实验拓扑的交换机端口连接到这台交换机,就完成了。