1、1二层以太网交换机基本原理及转发流程版本 主要作者 版本描述 完成日期1.0 李小玮二层以太网交换机基本原理及转发流程2011-7-212目录1 MAC 地址的简单介绍 .32 VLAN 的简单介绍 .33 IP 过滤技术的简单介绍 44 QOS 的简单介绍 45 实验 56 小结 1731、MAC地址的简单介绍MAC(Media Access Control,介质访问控制)地址是烧录在 Network Interface Card(网卡)的 EPROM 里。MAC 地址是 48 bit 二进制的地址,如: 00-e0-fc-00-00-06。前 24 位叫做组织唯一标志符,后 24 位是由厂
2、家自己分配。MAC 地址可以分为单播地址、多播地址和广播地址。单播地址:第一字节最低位为 0,如:00-e0-fc-00-00-06多播地址:第一字节最低位为 1,如:01-e0-fc-00-00-06广播地址:48 位全 1,即:ff-ff-ff-ff-ff-ff2、VLAN的简单介绍VLAN(Virtual Local Area Network)的中文名为“虚拟局域网“。VLAN 是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术。VLAN 网络可以是有混合的网络类型设备组成,比如:10M 以太网、100M 以太网、令牌网、FDDI、CDDI 等等,可以是工作
3、站、服务器、集线器、网络上行主干等等。VLAN 除了能将网络划分为多个广播域,从而有效地控制广播风暴的发生,以及使网络的拓扑结构变得非常灵活的优点外,还可以用于控制网络中不同部门、不同站点之间的互相访问。VLAN 是为解决以太网的广播问题和安全性而提出的一种协议,它在以太网帧的基础上增加了 VLAN 头,即 VLAN Tag。用 VLAN ID 把用户划分为更小的工作组,限制不同工作组间的用户互访,每个工作组就是一个虚拟局域网。虚拟局域网的好处是可以限制广播范围,并能够形成虚拟工作组,动态管理网络。43、Ip过滤技术的简单介绍IP 过滤技术可将访问和被访问者限制在一个特定范围内。可通过由管理员
4、配置 IP 分组过滤表,IP 过滤模块根据 IP 分组中报头的源地址、目的地址、端口号等信息,对来往的 IP 分组进行过滤,允许或者禁止某些 IP 地址的访问。还可以通过配置代理服务器来限制内部用户对 Internet 的访问。4、QOS的简单介绍QoS(Quality of Service)即服务质量。对于网络业务,服务质量包括传输的带宽、传送的时延、数据的丢包率等。在网络中可以通过保证传输的带宽、降低传送的时延、降低数据的丢包率以及时延抖动等措施来提高服务质量。55、实验 实验一:在同一 vlan 下,对于 G0/1 和 G0/2 设置 ip 过滤,PC ping 路由器的 F0/0 端口
5、实验目的:分析一般情况下,交换机收到报文后的转发流程。分析:1)通过 ping 之前,在交换机上 show mac address-table 可以看出,一开始交换机没有mac 信息。Switch_config#show mac address-table Mac Address Table (Total 0)-Vlan Mac Address Type Ports- - - -通过 show interface g0/1,看出 ping 前的包数。GigaEthernet0/1 is up, line protocol is upHardware is Giga-Combo-TX, addr
6、ess is 00e0.0fad.d0da (bia 00e0.0fad.d0da)MTU 1500 bytes, BW 100000 kbit, DLY 10 usecEncapsulation ARPAAuto-Duplex(Full), Auto-Speed(100Mb/s)flow-control off5 minutes input rate 0 bits/sec, 0 packets/sec5 minutes output rate 0 bits/sec, 0 packets/secReceived 17 packets, 1688 bytes15 broadcasts, 2 mu
7、lticasts0 discard, 0 error, 0 PAUSE0 align, 0 FCS, 0 symbol0 jabber, 0 oversize, 0 undersize0 carriersense, 0 collision, 0 fragment0 L3 packets, 0 discards, 0 Header errorsTransmited 0 packets, 0 bytes0 broadcasts, 0 multicasts60 discard, 0 error, 0 PAUSE0 sqettest, 0 deferred0 single, 0 multiple, 0
8、 excessive, 0 late0 L3 forwards通过 show interface g0/2,看出 ping 前的包数。Switch#show int g0/2GigaEthernet0/2 is up, line protocol is upHardware is Giga-Combo-TX, address is 00e0.0fad.d0db (bia 00e0.0fad.d0db)MTU 1500 bytes, BW 100000 kbit, DLY 10 usecEncapsulation ARPAAuto-Duplex(Full), Auto-Speed(100Mb/s
9、)flow-control off5 minutes input rate 0 bits/sec, 0 packets/sec5 minutes output rate 0 bits/sec, 0 packets/secReceived 0 packets, 0 bytes0 broadcasts, 0 multicasts0 discard, 0 error, 0 PAUSE0 align, 0 FCS, 0 symbol0 jabber, 0 oversize, 0 undersize0 carriersense, 0 collision, 0 fragment0 L3 packets,
10、0 discards, 0 Header errorsTransmited 17 packets, 1704 bytes15 broadcasts, 2 multicasts0 discard, 0 error, 0 PAUSE0 sqettest, 0 deferred0 single, 0 multiple, 0 excessive, 0 late0 L3 forwards2)此时,pc 开始 ping F0/0A、交换机收到 pc 的 arp 包。先查看所收到的包,是否有 vlan tag。如果没,那么就加上端口所属 vlan 的 tag。如果有,就查看 vlan 规则,是否允许该 vl
11、an 通过,如果不允许,那么就直接丢弃。VLAN Status Name Ports- - - -1 Static Default F0/1, F0/2, F0/3, F0/4, F0/5F0/6, F0/7, F0/8, F0/9, F0/10F0/11, F0/12, F0/13, F0/14, F0/15F0/16, F0/17, F0/18, F0/19, F0/20F0/21, F0/22, F0/23, F0/24, G0/42 Static VLAN0002 G0/1, G0/2, G0/37通过 show vlan 可以得到以上信息,看到端口 G0/1,G0/2,G0/3 均划
12、入了 vlan 2,并不属于其他 vlan,所以交换机 G0/1 口只允许 vlan 2 通过,因此所有非 vlan 2 的包,将全部丢弃。同时,由于 pc 所发出的包是没有 vlan tag 的,因此,交换机会将 pc 的包加上一个vlan2 的 tag。B、交换机查看其端口的 ip 过滤表信息。通过 show ip access-list,可以看到 ip 过滤表的相关信息。Standard IP access list 1Index Rule content-1 permit 192.168.1.1 255.255.255.02 permit 192.168.1.2 255.255.255
13、.03 deny any同时我们通过 show run 看到该 ip acl 已经应用在 G0/1 口上。interface GigaEthernet0/1ip access-group 1所以,G0/1 端口允许 192.168.1.1 的 ip 和 192.168.1.2 的 ip 通过。因此,交换机转发pc 的包,否则丢弃。C、交换机查看自己的 mac 表,如果 pc 的 mac 没有,那么就记录在 mac-port 表。Mac Address Table (Total 1)-Vlan Mac Address Type Ports- - - -1 000a.e42f.d625 DYNAM
14、IC g0/1D、交换机查看自己的 vlan-map,在表中查找允许 vlan 2 通过的端口。VLAN Status Name Ports- - - -1 Static Default F0/1, F0/2, F0/3, F0/4, F0/5F0/6, F0/7, F0/8, F0/9, F0/10F0/11, F0/12, F0/13, F0/14, F0/15F0/16, F0/17, F0/18, F0/19, F0/20F0/21, F0/22, F0/23, F0/24, G0/482 Static VLAN0002 G0/1, G0/2, G0/3于是找到了 G0/1,G0/2
15、和 G0/3,由于 G0/1 是包的来源端口,所以交换机不予以考虑。然后交换机通过 mac-port 表,开始查找端口对应的 mac 是否为目的 mac,如果找到,就进行后续处理;找不到就直接进行广播处理。交换机查看到所收到的包是广播包,那么就直接发送出 vlan 2 中除了该包来源端口的其他所有端口(这里即 G0/2 和 G0/3) 。图 1 pc 发出的 arp request上图即为 pc 所发出的 arp 包。由于是广播包,所以此时如果在 G0/3 端口抓包,同样可以看到上图。E、因为 G0/2 默认为 access 口,所以交换机会将报文的 tag 进行 untag 处理,然后再发送
16、。如果为 Trunck 口,那么交换机就会根据配置决定是否对包做 untag 处理,默认情况下,不进行 untag 处理。F、路由器 F0/0 端口收到 arp request 后,回复 arp reply。此时交换机同样先查看所收到的包是否有 vlan tag。如果有,那么就查看该端口的 vlan 规则,是否允许该 vlan 通过。没有,则打上 vlan 2 的 tag。G、然后交换机查看 G0/2 端口的 ip 过滤表信息。9通过 show ip access-list,可以看到 ip 过滤表的相关信息。Standard IP access list 1Index Rule content
17、-1 permit 192.168.1.1 255.255.255.02 permit 192.168.1.2 255.255.255.03 deny any同时我们通过 show run 看到该 ip acl 已经应用在 G0/2 口上。interface GigaEthernet0/2ip access-group 1可以看出,端口允许 192.168.1.1 的 ip 和 192.168.1.2 的 ip 通过,因此,交换机转发报文,否则丢弃。同时交换机记录了 F0/0 的 mac ,记录在 mac-port 表。Mac Address Table (Total 2)-Vlan Mac
18、Address Type Ports- - - -1 000a.e42f.d625 DYNAMIC g0/11 00e0.0f84.4b30 DYNAMIC g0/2H、交换机查看自己的 vlan-map,在表中查找允许 vlan 2 通过的端口。VLAN Status Name Ports- - - -1 Static Default F0/1, F0/2, F0/3, F0/4, F0/5F0/6, F0/7, F0/8, F0/9, F0/10F0/11, F0/12, F0/13, F0/14, F0/15F0/16, F0/17, F0/18, F0/19, F0/20F0/21,
19、F0/22, F0/23, F0/24, G0/42 Static VLAN0002 G0/1, G0/2, G0/3这个是交换机当前 vlan 的信息。于是交换机找到了 G0/1 和 G0/3,然后查找端口对应的 mac 是否为目的 mac。然后进行单播转发。此时,在 G0/3 抓包,则无法看到 arp reply。10图 1 Router 发出的 arp replyI、由于 G0/1 为 access 口,那么交换机就自动将 vlan 2 的 tag 进行 untag 处理。如果是 Trunck 口,由于 pc 无法识别有 tag 的报文,因此会对与通讯造成影响,那么就必须手工配置“swi
20、tchport trunck untag vlan “进行 untag 处理。H、Pc 记录了 F0/0 的 mac 后,就开始了 icmp 报文的发送与接收。3)通过 ping 之后,在交换机上 show mac address-table 可以看出,交换机上面有了 mac信息Mac Address Table (Total 2)-Vlan Mac Address Type Ports- - - -1 000a.e42f.d625 DYNAMIC g0/11 00e0.0f84.4b30 DYNAMIC g0/2Ping 后,G0/1 的信息。GigaEthernet0/1 is up, l
21、ine protocol is upHardware is Giga-Combo-TX, address is 00e0.0fad.d0da (bia 00e0.0fad.d0da)MTU 1500 bytes, BW 100000 kbit, DLY 10 usecEncapsulation ARPAAuto-Duplex(Full), Auto-Speed(100Mb/s)flow-control off5 minutes input rate 0 bits/sec, 0 packets/sec5 minutes output rate 0 bits/sec, 0 packets/secR
22、eceived 22 packets, 2064 bytes16 broadcasts, 2 multicasts0 discard, 0 error, 0 PAUSE0 align, 0 FCS, 0 symbol0 jabber, 0 oversize, 0 undersize0 carriersense, 0 collision, 0 fragment110 L3 packets, 0 discards, 0 Header errorsTransmited 5 packets, 376 bytes0 broadcasts, 0 multicasts0 discard, 0 error,
23、0 PAUSE0 sqettest, 0 deferred0 single, 0 multiple, 0 excessive, 0 late0 L3 forwards与 ping 前相比多了 5 个包。1 个 arp 包,4 个 ping 包。 ( Received 17 packets, 15 broadcasts, Transmited 0 packets,0 broadcasts)Ping 后,G0/2 的信息。GigaEthernet0/2 is up, line protocol is upHardware is Giga-Combo-TX, address is 00e0.0fad
24、.d0db (bia 00e0.0fad.d0db)MTU 1500 bytes, BW 100000 kbit, DLY 10 usecEncapsulation ARPAAuto-Duplex(Full), Auto-Speed(100Mb/s)flow-control off5 minutes input rate 0 bits/sec, 0 packets/sec5 minutes output rate 0 bits/sec, 0 packets/secReceived 5 packets, 376 bytes0 broadcasts, 0 multicasts0 discard,
25、0 error, 0 PAUSE0 align, 0 FCS, 0 symbol0 jabber, 0 oversize, 0 undersize0 carriersense, 0 collision, 0 fragment0 L3 packets, 0 discards, 0 Header errorsTransmited 22 packets, 2080 bytes16 broadcasts, 2 multicasts0 discard, 0 error, 0 PAUSE0 sqettest, 0 deferred0 single, 0 multiple, 0 excessive, 0 l
26、ate0 L3 forwards相比之前,多了 5 个包。1 个 arp 包,4 个 ping 包。 (Received 0 packets,0 broadcasts,Transmited 17 packets,15 broadcasts)4)Ping 完后如果将缆线从交换机任意端口拔出,那么交换机会自动清除改端口对应 mac-port 信息Mac Address Table (Total 1)12-Vlan Mac Address Type Ports- - - -1 00e0.0f84.4b30 DYNAMIC g0/2此时,已经将 PC 的缆线从交换机 G0/1 口拔出。5)交换机的 m
27、ac-port 表有老化时间。在一定时间内,如果没有流量从该端口通过,那么交换机会自动清除该端口所对应的 mac 信息。Mac Address Table (Total 0)-Vlan Mac Address Type Ports- - - -13实验二:在同一 vlan 下,对于 G0/1 和 G0/2 设置如下 ip 过滤,PC ping 路由器的 F0/0端口实验目的:研究 ip acl 的处理流程。A、Ip 过滤设置,第一种:Extended IP access list 123Index Rule content-1 permit ip 192.168.1.100 255.255.2
28、55.0 any2 permit ip 192.168.1.1 255.255.255.0 any3 permit ip 192.168.1.2 255.255.255.0 any4 deny ip any any同时我们通过 show run 看到该 ip acl 已经应用在 G0/1 口上。interface GigaEthernet0/1ip access-group 123结果:从图中可以看出 PC 已经 ping 通了路由器。得出,当第一条 ip acl 并不匹配时,交换机并没有直接就做 drop 处理,而是继续匹配第二项,直到匹配到相符的信息在做处理。14B、Ip 过滤设置,第二种
29、:Extended IP access list 123Index Rule content-1 deny ip any any2 permit ip 192.168.1.1 255.255.255.0 any3 permit ip 192.168.1.2 255.255.255.0 any同时我们通过 show run 看到该 ip acl 已经应用在 G0/1 口上。interface GigaEthernet0/1ip access-group 123结果:从图中我们可以看出,pc 并没有 ping 通路由器。可以看出,交换机是严格按照第一条,第二条.这样的顺序进行匹配的。小结:上面两个
30、实验说明了交换机在处理 IP Acl 时,严格按照第一条,第二条. 这样的顺序进行匹配的。当第一条不符合时,交换机会查看第二条,依次执行,直到找到一条相符合的,再做出反应。15实验三:在同一 vlan 下,对于 G0/2 设置如下 qos 设置,路由器的 F0/0 端口 ping PC实验目的:研究 QOS 的处理流程。通过在交换机上 show ip access-list 和 show policy-map 可以看出在交换机上所设置的QOS 。Index Rule content-1 permit ip any any这个是 ip access-list 信息。policy-map 12cl
31、assify ip access-group 123action forwardpolicy-map 123classify ip access-group 123action drop这个是 policy-map 信息。可以看出,qos 的设置是根据 ip access-list 的,因而,ip acl 的处理肯定是先于 qos的处理的。A、Qos 设置第一种:interface GigaEthernet0/2qos policy 123 ingressqos policy 12 ingress在这种设置情况下,路由器 ping pc ,可以看到如下信息。PING 192.168.1.2 (
32、192.168.1.2): 56 data bytes.- 192.168.1.2 ping statistics -5 packets transmitted, 0 packets received, 100% packet loss同时,在 pc 上面抓包,可以看到下图。16看到 Pc 所收到的仅有 arp 报文。从中可以了解到,在不做其他任何设置的情况下,路由器发出的 icmp ping 包已经在交换机的 G0/2 口被 qos 处理了。所以,可以得出,交换机在处理 qos 时,当匹配到了第一条 qos 后,就会立即做出相应处理。B、Qos 设置第二种:interface GigaEth
33、ernet0/2qos policy 12 ingressqos policy 123 ingress在这种设置情况下,路由器 ping pc ,可以看到如下信息。PING 192.168.1.2 (192.168.1.2): 56 data bytes!- 192.168.1.2 ping statistics -5 packets transmitted, 5 packets received, 0% packet lossround-trip min/avg/max = 0/0/0 ms同时,在 pc 上面抓包,可以看到下图。看到 Pc 收到了 arp 包和 icmp ping 包。从中
34、可以了解到,在不做其他任何设置的情况下,路由器发出的 icmp ping 包经过在交换机的 G0/2 口的 qos 处理后,依然到达了 pc 这端。所以,可以得出,交换机在处理 qos 时,是严格按照第一条,第二条 .这样的顺序进行匹配,当匹配到了一条后,就立即做出处理,不在进行匹配。176、小结二层交换机的交换流程比较简单,主要是 vlan 匹配、ip 过滤、 mac 的学习还有 QOS处理。1、讨论了一下二层交换机的普通流程。1)数据包刚到交换机时:A、交换机会优先看数据包的 tag 信息。B、交换机进行 vlan 的匹配以及处理。C、根据 ip 过滤表来决定该包是否进行转发,如果转发,那
35、么就学习其 mac 信息,否则直接丢弃。2)当数据包要传出交换机时:A、交换机先查找允许该包所属的 vlan 通过的所有端口。B、然后再进行目的 mac 和 port 的匹配。如果目的 mac 为全 F,即广播报文,那么就向除了发送端的所有端口进行泛洪处理;如果找到目的 mac 所属的发送端口,那么就进行单播转发。C、根据端口的模式决定是否要进行 untag 处理,然后发送数据包。2、同时,通过实验证实了 ip acl 和端口 qos 设置的匹配顺序,得出1)ip acl 和 qos 设置都是严格按照第一条,第二条.的顺序进行匹配,若匹配了一项以后,就立即做出处理,不再继续进行匹配。2)通过对
36、于 qos 设置的过程,得出 qos 是根据 ip acl 进行处理的,因而 ip acl 的处理一定优先于 qos 的处理。另:由于设配有限,并没有做 vlan 的 tag 处理和 ip 过滤处理的先后处理问题的实验。18附录:交换机的版本信息和在实验一中的配置信息UNIDATA S.p.A. Internetwork Operating System SoftwareUNISW.324F Series Software, Version 2.0.2A, RELEASE SOFTWARECopyright 2010Compiled: 2010-1-29 17:14:22 by SYS, Im
37、age text-base: 0x10000ROM: System Bootstrap, Version 0.3.3Serial num:S35020154, ID num:S35020154System image file is “Switch.bin“UNIDATA UNISW.324F RISC131072K bytes of memory,8192K bytes of flashBase ethernet MAC Address: 00:e0:0f:ad:d0:c1Switch uptime is 0:01:29:03, The current time: 2011-7-19 15:
38、37:55Module Version Descriptionsystem 2.3.3 System lib(Oct.13,2009)command 2.0.31 Switch command lib(Dec.25,2009)Resource 1.0.2 Resource Manager(Jan 29 2010 13:37:46)LIBDEV 3.5.14 Device Manager(Nov.30,2009)PUB 0.5.8 PUB MODULEMAC 2.1.4 MAC Layer(Nov.25.2009)VM 2.1.11 IEEE 802.1Q VLAN Manager(Jan 29
39、 2010 13:49:39)LACP 0.1.40 IEEE 802.3AD Link Aggregate Control Protocol802.1x 0.2.23 IEEE 802.1x Port-Based Network Access ControlSTP 2.7.6 IEEE 802.1D,.1w &.1s Spanning Tree ProtocolsGARP 0.0.14 IEEE 802.1D GARP Protocol(Jan 29 2010 13:47:46)GVRP 0.0.21 IEEE 802.1Q GVRP Protocol(2009-07-14)PDP 1.0.
40、1 Discovery protocolUDLD 1.0.4 UniDirectional Link Detection (UDLD) protocolLLDP 1.0.2 L2 Discovery protocolbcmp 1.0.2 bcmp lib(Jan 29 2010 13:50:06)EAPS 1.2.6 Ethernet Automatic Protection SwitchingOAM 1.0.5 IEEE 802.3ah EFM(2009-12-17)LLC 0.0.2 Logic Link Control, updated 2009.03.10IPV4 2.8.36 IPv
41、4 (distributed system, Jan.11,2010)OSI 0.0.3 OSI network module, updated 2009.03.10NAT 5.2.6 Network Address TranslationCurrent configuration:!version 2.0.2Aservice timestamps log dateservice timestamps debug date19!no spanning-tree! !ip access-list standard 1permit 192.168.1.1 255.255.255.0permit 1
42、92.168.1.2 255.255.255.0deny any !interface FastEthernet0/1!interface FastEthernet0/2!interface FastEthernet0/3!interface FastEthernet0/4!interface FastEthernet0/5! interface FastEthernet0/6!interface FastEthernet0/7!interface FastEthernet0/8!interface FastEthernet0/9!interface FastEthernet0/10!inte
43、rface FastEthernet0/11!interface FastEthernet0/12!interface FastEthernet0/13!interface FastEthernet0/1420!interface FastEthernet0/15!interface FastEthernet0/16!interface FastEthernet0/17!interface FastEthernet0/18!interface FastEthernet0/19!interface FastEthernet0/20!interface FastEthernet0/21!inter
44、face FastEthernet0/22!interface FastEthernet0/23!interface FastEthernet0/24!interface GigaEthernet0/1switchport pvid 2ip access-group 1!interface GigaEthernet0/2switchport pvid 2ip access-group 1! interface GigaEthernet0/3switchport pvid 2ip access-group 1!interface GigaEthernet0/4!interface VLAN2no ip addressno ip directed-broadcast!vlan 1-2!no ip exf!21!