Chinaunix首页 | 论坛 | 博客
  • 博客访问: 658292
  • 博文数量: 87
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2022
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-23 11:16
个人简介

西邮大三狗!!!

文章分类

全部博文(87)

文章存档

2015年(47)

2014年(40)

分类: 网络与安全

2015-06-08 13:18:58

交换机工作原理: 源MAC学习,目的MAC转发
例子:
A  ping--> B
A首先发送ARP请求,请求B的MAC地址 目的MAC=FF:FF:FF:FF:FF:FF(广播) 源MAC=MAC_A
交换机受到广播数据帧后,根据帧头中的源MAC地址,学习到A的MAC,建立MAC地址表,如下:
MAC地址       端口
MAC_A          PORT1
由于ARP请求为广播帧,所以交换机向除了PORT1之外的所有UP的端口广播
B收到该ARP请求,本地建立ARP表项,同时单播回送ARP应答帧。目的MAC=MAC_A 源MAC=MAC_B
交换机收到该单播帧后,根据帧头中的源MAC地址,学习B的MAC,建立MAC地址表如下:
MAC地址       端口
MAC_A          PORT1
MAC_B          PORT2
交换机根据帧头中的目的MAC地址将数据帧从PORT1转发
A收到ARP响应,ARP交互过程成功。

Figure 2-1 以太网帧格式
|-----------------------------------------------------------------------------|
| DMAC(6bytes) | SMAC(6bytes) | Ether-Type(2bytes) | DATA |
|-----------------------------------------------------------------------------|
Figure 2-2 带VLAN TAG的以太网帧格式
|-------------------------------------------------------------------------------------------------|
| DMAC(6bytes) | SMAC(6bytes) | Ether-Type(0x8100) | VLAN(4bytes) | DATA |
|-------------------------------------------------------------------------------------------------|
Figure 2-3 VLAN TAG的格式
|---------------------------------------------------------------------------------|
| PRI(3bits) | CFI(1bit) | TAG(12bits) | Ether-Type(2bytes) | DATA |
|---------------------------------------------------------------------------------|
PRI:帧优先级,就是通常所说的802.1p。
CFI:规范标识位,0为规范格式,用于802.3或EthII。
TAG:就是我们通常说的VLAN ID
Ether-Type:标识紧随其后的数据类型。

引入VLAN概念后,MAC地址的学习也在相应的VLAN中进行。从某种意义上理解,一台交换机有多张MAC地址表,每个VLAN一张表,在交换数据帧进行查表时,只需要在相应的VLAN中进行查找。很显然,MAC地址表项中,增加了VLAN TAG属性。
VLAN        MAC地址          端口
VLAN1       MAC_PC1          PORT 1
VLAN1       MAC_PC2          PORT 2
VLAN2       MAC_PC1          PORT 1
VLAN2       MAC_PC2          PORT 2

2.2.2 VLAN中的端口属性
         一个VLAN可以包含多个端口,而一个端口也可以属于多个VLAN。一个端口在一个VLAN中有不同的属性,TAG的添加和移除原则就是根据这个属性而定的。
         TAGED:如果一个端口在一个VLAN中的属性是TAG的,那么,从该端口转发出去的数据帧就是TAGED。(当然,该数据帧是在该VLAN中交换的)
         UNTAGED:如果一个端口在一个VLAN中的属性是UNTAG的,那么,从该端口转发出去的数据帧就是UNTAGED。(当然,该数据帧是在该VLAN中交换的)
2.2.3 交换机收发数据帧的处理总结
         我们分几种情况讨论交换机的接收和发送处理:接收端口和发送端口在VLAN中属性;收到的数据帧是TAG的还是UNTAG的。
         1). 端口接收到数据帧
             a). 如果是TAG的数据帧,检查该接收端口是否在该VLAN(数据帧中所携带的VLAN TAG)中
                  - 接收端口在该VLAN中,则在该VLAN中根据交换原理(即,'源MAC学习,目的MAC转发'的原理)交换该数据包
                 - 接收端口不在该VLAN中,丢弃该数据帧
             b). 如果是UNTAG的数据帧,检查该接收端口是否在某个VLAN中的属性是UNTAG
                - 接收端口在某个VLAN中的属性是UNTAG的,则在该VLAN中根据交换原理交换该数据包
               - 接收端口在任何VLAN中的属性都不是UNTAG的,丢弃该数据包
              注:根据这个原理可知,一个端口最多在一个VLAN中的属性是UNTAG的,否则,收到一个UNTAG的数据帧之后,就无法确定在哪个VLAN中进行交换。其实,端口UNTAG所在的VLAN,就是2.1.1节中所提到的PVID的概念。
        2). 端口发送数据帧
           a).检查该端口在该VLAN(就是交换该数据帧的VLAN)中的属性
                - 该端口在该VLAN种的属性是TAG的,发送的数据帧为TAG的数据帧
                - 该端口在该VLAN种的属性是UNTAG的,发送的数据帧为UNTAG的数据帧
          注:由于数据已经被交换到该端口,说明该端口肯定在该VLAN里。

1). Access端口
         思科的Access端口是为了连接PC(终端设备)而设计的。由于大部分终端设备都不支持(其实也不需要)VLAN TAG的,所以连接终端设备的端口只需要在一个VLAN中,而且是UNTAG的。Access端口就是这样的。
         如果将端口配置为Access模式,该端口就只能在一个VLAN中(也就是Access VLAN),而且该端口在该VLAN中的属性是UNTAG的。从某种意义上说,该VLAN也就是该端口的PVID。
  
         2). Trunk端口
         思科的Trunk端口是为了连接上行设备(路由器,交换机等支持多VLAN的设备)。通常情况下,上行端口需要汇聚多个VLAN的流量,所以该端口应该属于多个VLAN。
         如果将端口配置为Trunk模式,该端口可以属于多个VLAN,在思科技术中,习惯称该端口可以允许多个VLAN通过。该端口在一个VLAN中是UNTAG的,也就是该端口的PVID,在思科技术中,称为Native VLAN。该端口在其他的VLAN中都是TAG的。

阅读(1766) | 评论(0) | 转发(0) |
0

上一篇:Mysql复制常见问题

下一篇:LVS Full-NAT

给主人留下些什么吧!~~