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 接到一台交換機,再把需要連接到實驗拓撲的交換機端口連接到這台交換機,就完成了。