二层转发

一、Vlan
1、Vlan的概念
虚拟局域网Vlan(Virtual Virtual Local Area Network)是一个逻辑上的广播域、是在LAN技术基础上发展起来的一种逻辑上存在的虚拟的LAN。
2、Vlan作用
1)划分广播域:不需要路由器 不需要按地域划分子网
2)信息安全: 同一Vlan内的信息不回广播到其他Vlan中
3)方便管理: 节省因为网络节点的增加,移动,删除带来的网络维护。
3、Vlan划分方式
1)基于端口划分
2)基于Mac地址划分
3)基于子网划分
4)基于协议划分
4、以太网帧格式

目的地址 6字节
源地址 6字节
类型 2字节
数据 46-1500字节
FCS 4字节

5、IEEE 802.1Q标签帧格式:

目的地址 6B
源地址 6B
802.1Q标记类型2B(0X8100)
TCI 2B
类型 2B
DATA 46~1500B
FCS 4B
Priority 3bit
CFI 1bit
VLAN ID 12bit
Priority:用户优先级,当交换机阻塞时,根据7~0的优先级发送数据包。
CFI(Canonical Format Indicator):规范格式指示符,这一位主要用于总线型的以太网与FDDI、令牌环网交换数据时的帧格式
VLAN ID: VLAN标识符,范围是1~4094,0用作pri-tagged数据包的VLAN ID,4095保留作为特殊用途
二、端口
1、PVID:(Port Vlan ID),又称端口默认VLAN ID(default Vlan ID),也可称之为native vlan;在基于端口划分的VLAN 中,每一个端口都会有一个PVID。
2、作用:因为端口可以属于多个VLAN,当一个untagged包进入交换机端口时,根据PVID插入标签并且根据PVID学习、交换转发
3、端口模式
1)access:端口以access模式只能加入一个vlan
接收数据时,如果数据包是带TAG的帧,如果这个TAG的值与该端口的PVID相等则转发,否则丢弃;如果是不带TAG的数据帧,则加上端口的VLAN ID的TAG(即PVID)进行转发;
发送数据时,需要剥掉TAG后发送。注意,如果设置某个端口为Access模式,当把这个端口的VLAN ID设置为X,则这个端口的PVID也是X。
2)truck:端口以trunk模式可以加入多个vlan,除pvid外,端口的其他vlan都是以tagged方式加入的
接收数据时,如果是带TAG的帧,如果tag值与端口的VLAN ID中的一个相等,则进行转发,否则丢弃。如果不带TAG,则需要给这个数据包打上PVID的标签后进行转发;
发送数据时,如果数据帧带的TAG与该端口所属的VLAN ID(不是PVID)中的一个一致,则保留tag转发;如果数据帧的TAG值只与端口的PVID相同时,则去掉TAG进行转发。
3)hybrid:端口以hybrid模式可以加入多个vlan,既可以以untagged方式加入vlan,也可以以tagged方式加入vlan,但是在同一vlan内不能同时是tagged和untagged,只能是其中的一种方式

4、端口行为
1)入端口:收到报文的端口
2)出端口:报文转发的端口
3)入端口行为
a) 对于收到untagged的报文,加上端口pvid的vlan标签,并在对应vlan内转发或路由
b) 对于收到tagged的报文,检查端口所属vlan的列表,如果存在和报文中vid相匹配的,则在对应vlan内转发或路由,否则丢弃
4)出端口行为
a) 出端口为untagged,则在转发报文时去掉报文中标签(802.1Q的四个字节)
b) 出端口为tagged,则保留802.1Q标签
5、总结
1)交换机内每一个数据帧都有tag
2)端口tagged或者untagged,只和报文出方向有关,决定报文从此设备转发出去后,是否携带802.1Q标签。
3)端口pvid是在入口处起作用的
三、MAC地址
1、mac地址分类
1)单播:第一个比特是0
00-d0-d0-fc-00-01
0000,0000-0000,1011-……
2)组播:第一个比特是1
01-00-33-22-11-aa
1000,0000-0000,0000-……
3)广播:所有比特都是1。
ff-ff-ff-ff-ff-ff
1111,1111-1111,1111-……
Mac地址中高字节在前,字节中低位在前。
2、对不同以太网帧的处理
1)端口收到以太网广播、组播帧,在所属vlan内广播
2)端口收到未知单播帧,在所属vlan内洪泛此帧
3)端口收到已知单播帧,从mac表中相应条目中转发此帧
3、mac地址表
Mac地址表每个表项包括:

MAC_ADDR:48位的MAC地址
VLAN ID:拥有该MAC地址的主机或设备所属的VLAN
PORT:该MAC地址所属的端口
HIT:用于MAC地址老化的标志
STATIC:是否静态MAC地址的标志(交换机的MAC一般标识为静态的)
SRC DIS(SOURCE DISCARD):是否源MAC地址过滤的标志
DST DIS(DESTINATION DISCARD):是否目的MAC地址过滤的标志
L3:是否进行三层转发的标志,L3=1进行三层转发,L3=0进行二层转发

4、二层转发流程

1)确定是否在同一个网段:pc1与pc2比较网络号看是否在同一个网段内,在同一个网段,获取pc2的mac地址,将数据发送给pc2;不在同一个网段,查找路由表,数据发送给下一跳网关
2)发送ARP请求报文:在同一个网段,pc1查找ARP表查询pc2的mac地址,找不到,发送ARP请求报文

DA SA Length/Type SIP DIP
FF:FF:FF:FF:FF:FF MAC1 0X0806 IP1(10.1.1.2) IP2(10.1.1.6)
3)Sw处理ARP请求报文:根据原地址查询mac表,为空,进行地址学习,跟新mac表(mac1,port1,vlan10),查看目的地址,目的地址为广播地址,交换机在vlan10内广播ARP报文。
4)ARP应答:pc2收到ARP请求报文,根据 ip1,vlan10 查询ARP表,没有找到,跟新ARP表(ip1,mac1,vlan10),
查看目的ip,发现目的ip与自己的一致,发送ARP应答报文

DA SA Length/Type SIP DIP
MAC1 MAC2 0X0806 IP2(10.1.1.1) IP1(10.1.1.6)

5)处理ARP应答报文:交换机收到ARP应答报文,根据源mac地址查询mac表,为空,跟新mac表(mac2,port2,vlan10),查看目的地址,在mac表中找到对应表项,吧报文发送出去
6)ICMP请求:pc1 收到ARP应答报文,查看ARP表,跟新ARP表(ip2,mac2,vlan10),查看目的ip,发现与自己一致,发送ICMP请求报文

DA SA Length/Type SIP DIP
MAC2 MAC1 0X0800 IP1(10.1.1.6) IP2(10.1.1.1)

7)交换机处理ICMP请求报文:查看源mac,查找mac表,发现存在,跟新该表项老化时间,根据目的地址查看mac表,将报文从port2发送出去、
8)ICMP应答:PC2收到ICMP请求报文,首先查看源IP,依据“IP1+VLAN10”查找ARP表,发现已存在,不再更新。其次,查看目的IP,发现目的IP与自己一致,因此PC2回复ICMP应答报文给PC1,提取关键信息如下:

DA SA Length/Type SIP DIP
MAC1 MAC2 0X0800 IP2(10.1.1.1) IP1(10.1.1.6)
9)交换机处理ICMP应答:查看源mac,查找mac表能找到,跟新老化时间,根据目的mac查找mac表,根据mac表项将报文从port1发送出去
10)Ping成功:pc1收到ICMP应答报文,ping过程成功。

你可能感兴趣的:(交换机)