技术在于专研
分类: 系统运维
2007-03-26 16:58:25
Dynamips的虚拟设备之--Virtual Bridge
以下为转载:
【原创】Dynamips的虚拟设备之--Virtual Bridge 作者:Mingmeng
Dynamips除了提供路由器的模拟之外,还为我们提供了一些虚拟设备,利用这些虚拟设备组网,可以节省很多的系统资源。
今天先谈谈最普通的虚拟设备--Virtual Bridge。
Virutal Bridge顾名思义,就是虚拟网桥。在网络设备中,网桥应该是第二层的设备,它通过学习MAC地址进行有选择的帧转发,能够分割冲突域但不分割广播域,二层交换机是网桥的发展,因而有时也称作多端口网桥。那么Dynamips提供的Virtual Bridge是否真的是网桥呢?我们通过实验来看一下。
首先搭建一个非常简单的网络:
相关文件:
R1.bat
dynamips -P 3600 -t 3620 -i 0 -G ghost_ram_3620 --idle-pc 0x60378158 -p 0:NM-4E -s 0:0:udp:20000:127.0.0.1:20001 -b vb.cfg C3620-I-.BIN
R2.bat
dynamips -P 3600 -t 3620 -i 1 -G ghost_ram_3620 --idle-pc 0x60378158 -p 0:NM-4E -s 0:0:udp:20002:127.0.0.1:20003 C3620-I-.BIN
R3.bat
dynamips -P 3600 -t 3620 -i 2 -G ghost_ram_3620 --idle-pc 0x60378158 -p 0:NM-4E -s 0:0:udp:20004:127.0.0.1:20005 C3620-I-.BIN
vb.cfg
I0:udp:20001:127.0.0.1:20000
I1:udp:20003:127.0.0.1:20002
I2:udp:20005:127.0.0.1:20004
配置说明:
1、在R1上用-s 0:0:udp:20000:127.0.0.1:20001指定本端端口为20000,对端端口为虚拟网桥的端口20001;
2、在R2上用-s 0:0:udp:20002:127.0.0.1:20003指定本端端口为20002,对端端口为虚拟网桥的端口20003;
3、在R3上用-s 0:0:udp:20004:127.0.0.1:20005指定本端端口为20004,对端端口为虚拟网桥的端口20005;
3、在vb.cfg配置文件中指定虚拟桥的本端端口和对端端口;
4、在R1、R2、R3的对应端口上配置IP地址并启动;
实验过程:
1、在R1、R2和R3之间互相Ping,发现可以非常顺利的Ping通,这说明通过虚拟网桥就可以连接多个路由器,从而可以节省一个NM-16ESW模块,或者少启动一个VMWARE的虚拟网卡;
2、从R1 Ping 广播地址10.0.0.255,R2、R3均有应答,说明Virtual Bridge是支持广播的;
3、更进一步的研究,我们希望知道Virtual Bridge是否有MAC地址学习并能进行有选择的转发的功能。在确保R1、R2、R3的arp-cashe中都有互相的MAC地址后,从R3 ping R1,如果Virtual Bridge能够进行有选择的转发,则R2应该收不到任何帧。
但是,情况却并非如此。用CommView 4.1 抓取本地包,并用 StripUDP脱去UDP包头后发现,每个从R3 到 R1的ICMP包都会在UDP端口间出现3次,即在20004->20005,20001->20000,20003->20002间个出现一次,其中20004->20005是R3发给Virtual Bridge的,20001->20000是Virtual Bridge发给R1的,20003->20002是Virtual Bridge发给R2的。也就是说,Virtual Bridge将收到的帧转发给了其他全部的端口,而不是有选择的仅发送给目标R1,所以其运行行为不是Bridge,而是HUB。
实验结论:
1、通过Virtual Bridge可以以较少的资源连接多个Router;
2、Virtual Bridge的行为更象HUB,应该叫作Virtual HUB更加准确。
下一次,我们将讨论Dynamips提供的第二种虚拟设备--Virtual Switch。