zoukankan      html  css  js  c++  java
  • Dynamips的虚拟设备之--Virtual Ethernet Switch

    以下为转贴

    Dynamips的虚拟设备之--Virtual Ethernet Switch

    【原创】Dynamips的虚拟设备之--Virtual Ethernet Switch   作者:Mingmeng

    上次我们讨论了Dynamips提供的一种最简单的虚拟设备Virtual Bridge(实际上是HUB),今天我们来看看另外一种虚拟设备Virtual Ethernet Switch,虚拟以太网交换机。

    如果说Virtual Bridge不过是一个功能简单的小HUB的话,那么Dynamips所提供的Virtual Switch则足以令人刮目相看。Chris显然在Virtual Switch上投以重墨,完全依靠软件实现了一个支持帧转发、MAC地址学习、VLAN隔离和TRUNK封装功能的完整以太网交换机,其代码量甚至超过了ATM和帧中继模拟器。虽然目前还不能比拟专业的硬件交换机,但作为我们搭建模拟路由器网络的"胶水"来说,已经是绰绰有余了。

    下面我们通过实验来验证一下Chris的Virtual Ethernet Switch(以下简称为VS)。

    网络拓扑:


    相关文件:

    R1.bat
    dynamips -P 3600 -t 3640 -i 0 --idle-pc 0x6036e514 -p 0:NM-1FE-TX -s 0:0:udp:20000:127.0.0.1:20001 -E vs.cfg C3640-IS.BIN

    R2.bat
    dynamips -P 3600 -t 3640 -i 1 --idle-pc 0x6036e514 -p 0:NM-1FE-TX -s 0:0:udp:20002:127.0.0.1:20003 C3640-IS.BIN

    R3.bat
    dynamips -P 3600 -t 3640 -i 2 --idle-pc 0x6036e514 -p 0:NM-1FE-TX -s 0:0:udp:20004:127.0.0.1:20005 C3640-IS.BIN

    R4.bat
    dynamips -P 3600 -t 3640 -i 3 --idle-pc 0x6036e514 -p 0:NM-1FE-TX -s 0:0:udp:20006:127.0.0.1:20007 C3640-IS.BIN

    R5.bat
    dynamips -P 3600 -t 3640 -i 4 --idle-pc 0x6036e514 -p 0:NM-1FE-TX -s 0:0:udp:20008:127.0.0.1:20009 C3640-IS.BIN

    R6.bat
    dynamips -P 3600 -t 3640 -i 5 --idle-pc 0x6036e514 -p 0:NM-1FE-TX -s 0:0:udp:20010:127.0.0.1:20011 C3640-IS.BIN

    vs.cfg
    IF:E0:udp:20001:127.0.0.1:20000
    IF:E1:udp:20003:127.0.0.1:20002
    IF:E2:udp:20005:127.0.0.1:20004
    IF:E3:udp:20007:127.0.0.1:20006
    IF:E4:udp:20009:127.0.0.1:20008
    IF:E5:udp:20011:127.0.0.1:20010

    DOT1Q:E0:1
    ACCESS:E1:2
    ACCESS:E2:2
    ACCESS:E3:3
    ACCESS:E4:3
    ACCESS:E5:3

    配置说明:

    1、用Virtual Ethernet Switch连接6台路由器,其中连接R1的端口配置为dot1Q Trunk端口,其他全部配置为ACCESS端口;
    2、将VS连接R2和R3的两个端口配置为VLAN2,将连接R4、R5和R6的端口配置为VLAN3;
    3、路由器R1的FastEthernet接口配置:
       逻辑子口 fa0/0.1: enca dot1Q 2, ip addr 10.0.0.1 255.255.255.0
       逻辑子口 fa0/0.2: enca dot1Q 3, ip addr 10.0.1.1 255.255.255.0
    4、R2到R6的FastEthernet接口按照图示配置IP地址并启动;


    实验过程:

    我们对Virtual Ethernet Switch提出了以下问题并通过实验寻找答案。

    1、同一VLAN是否连通?不同VLAN是否隔离?

    (1) R2/R3和R1的Fa0/0.1同在VLAN2中,可互相Ping通;R4/R5/R6和R1的Fa0/0.2同在VLAN3中,可互相Ping通,说明同一VLAN可连通。
    (2) 将R1的Fa0/0 Shutdown后,修改R2/R3的端口地址分别为10.0.1.5/24和10.0.1.6/24,使得R2到R6都在同一网段,然后从R2/R3 Ping R4/R5/R6都不通,反之亦不通,说明VLAN之间的确有隔离。


    2、能否进行MAC地址学习?

    从R6 Ping R1(10.0.1.1),然后用CommView抓取本地包,用StripUDP脱壳后看到帧的流向如下:
    R6->VS     VS->R1   (R6的ICMP Request发给R1)
    R1->VS     VS->R6   (R1的ICMP Reply发给R6)
    除此之外没有发现其他帧,即VS从R6收到帧后,未发给除R1之外的任何端口,说明VS不是漫无目标的将帧发到所有端口,而是学习到了R1的MAC地址并进行了目标确定的转发。这说明VS的确具有MAC地址学习功能。


    3、Trunk中的帧是否进行了802.1Q封装?

    观察VS->R1和R1->VS的以太帧,发现Ethernet II帧中的Type=0x8100,即802.1Q协议(平常看到的大多是0x0800,即IP协议);之后的4字节为802.1q的包头:00 03 08 00,其含义是Priority=0,CFI=0,ID=3,Type=0x0800(IP)。可见Trunk中的帧果然进行了802.1Q的封装。


    4、广播帧是否会溢出VLAN?

    从R6 Ping 10.0.1.255,然后用CommView抓包,并用StripUDP脱壳后看到帧的流向如下:
    R6->VS(1个目标为广播的ICMP Request)  
    VS->R1  VS->R4  VS->R5 (这里VS将广播帧转发给R1、R4和R5)
    R4->VS  VS->R6  (R4的应答返回R6)
    R1->VS  R4->VS  VS->R6  VS->R6  (R1和R4的应答返回R6)
    即R6发出的广播帧被VS发送给了同一VLAN的R1、R4和R5,而没有发给其他端口,证实了VLAN对广播的阻断作用。


    5、VLAN如何互通?

    实验中使得VLAN2和VLAN3能够互通的重要设备是R1,它为两个VLAN提供了三层的路由。有趣的是,在R1上不用做任何路由设置,容易忘记的反而是在R2到R6上配置默认路由。R2到R6上没有默认路由两个VLAN还是Ping不通,这时ICMP请求在路由器内部就被扔掉了,根本都不会出现在Virtual Switch上。


    实验结论:
    通过上述一系列的实验我们不难看出,Virtual Ethernet Bridge较完整的实现了一个基本的以太网交换机应有的功能,完全可以在我们的网络构建中加以灵活应用。


    下一次,我们将讨论Dynamips提供的第三种虚拟设备--Virtual FR Switch,其中讲介绍如何实现 R1---Virtual FR Switch---R2,即不用路由器模拟帧中继交换机的情况下,如何做帧中继实验。
  • 相关阅读:
    627. Swap Salary
    176. Second Highest Salary
    596. Classes More Than 5 Students
    183. Customers Who Never Order
    181. Employees Earning More Than Their Managers
    182. Duplicate Emails
    175. Combine Two Tables
    620. Not Boring Movies
    595. Big Countries
    HDU 6034 Balala Power! (贪心+坑题)
  • 原文地址:https://www.cnblogs.com/jjkv3/p/1173161.html
Copyright © 2011-2022 走看看