一、Trunk
1.技术背景,解决了什么问题
划分多个vlan之后,解决不同交换机之间,相同vlan的通信问题
相同vlan在不同交换机上,跨越地理位置的通信问题
使用交换机的某一条线路,来承载多个vlan,实现数据通信
当一条链路,需要承载多VLAN信息的时候,需使用trunk来实现
Trunk两端的交换机需采用相同的干道协议
一般见于交换机之间或交换机与路由器、服务器之间
2.实现原理
设置一条IEEE,来实现trunk。
IEEE802.1Q干道协议(交换机进行标记和拆除,802.1Q干道跑所有的vlan数据,除非规定)
定义了基于端口的VLAN模型
规定如何标识带有VLAN成员信息的以太帧
定义VLAN标签的格式
VLAN标签:长4个字节,直接添加在以太网帧头中,IEEE802.1Q文档对VLAN标签作出了说明。
TPID: 2字节,固定取值,0x8100,是IEEE定义的新类型,表明这是一个携带802.1Q标签的帧。
如果不支持802.1Q的设备收到这样的帧,会将其丢弃。.
TCl:2字节。帧的控制信息,详细说明如下:
1. Priority: 3比特,表示帧的优先级,取值范围为O~7,值越大优先级越高。当交换机阻塞
时,优先发送优先级高的数据帧。
2 .CFI: Canonical Format Indicator,1比特。CFI表示MAC地址是否是经典格式。CFI为0
说明是经典格式,CFI为1表示为非经典格式。用于区分以太网帧、FDDI (Fiber Distributed
Digital Interface)帧和令牌环网帧。在以太网中,CFlI的值为0。
2. VLAN ldentifier: VLAN ID,12比特,在X7系列交换机中,可配置的VLAN ID取值范围
为O~4095,但是0和4095在协议中规定为保留的VLAN ID,不能给用户使用。
在现有的交换网络环境中,以太网的帧有两种格式:
没有加上VLAN标记的标准以太网帧(untagged frame);
有VLAN标记的以太网帧(tagged frame)。
3.Trunk的配置
(静态配置)
》sysname sw1改名字
》vlan batch 2 3划分2 3vlan
》display查看vlan
》interface G0/0/1进入接口0/0/1
》port link-type access接口类型为access
》port default vlan 2划分接口到vlan2下
》q退出
》interface G0/0/24
》port link-type trunk接口类型为trunk
》port trunk allow-pass vlan 2 3允许通过vlan2 3
》port
扩展:关闭/开启设备发生变化时的提示信息:undo/do terminal monitor
(动态配置)DTP
4.交换机的端口类型
ACCESS端口
UnTagged端口,即接入端口
Access端口只能属于一个VLAN,它发送的帧不带有VLAN标签,一般用于连接计算机的端口
Trunk端口
Tag Aware端口,即干道接口
可以允许多个VLAN通过,它发出的帧一般是带有VLAN标签的,一般用于交换机之间连接的端口
5.通信过程 I
pc1 ping pc3
1.pc1封装一个去往pc3的icmp request 包
封装到数据链路层:目标mac地址的时候,查ARP缓存表,此时ARP缓存表没有内容,数据帧封装
失败,触发ARP请求
2.pc1 发送ARP 请求数据帧
3.ARP请求数据帧 被 G0/0/1 收到(pvid:2)
交换机接封装数据帧
给数据帧打上 tag:2的标签
交换机接封装数据链路层:学习源MAc地址 跟接口对应起来,将这条信息封装到和vlan id(2)
相关的CAM表里面
查看目标MAC地址:全FF,将这个数据帧 向vlan2内的所有接口 广播(包括trunk接口)
4.ARP请求包经过G0/0/24,携带了 vlan id 为2 的tag
5.sw2 接受ARP的广播报文,解封装数据链路层(包括源、目Mac地址,vlan tag),学习源Mac地址,
封装到 vlan2的CAM表里面,查看目标Mac地址,全FF,向vlan2的所有接口转发ARP请求包,从G0/0/1发
出,(ACCESS,剥离tag)
6.APR请求数据帧被Pc3接收到,接封装数据链路层,查看目标MAc地址,全FF,Pc接收数据帧并处理继续
接封装到ARP的数据部分,将源IP和源MAC添加到自己的ARP缓存表,
发现目标IP地址是自己,PC3向PC发送ARP的reply报文
7.ARP回复包从PC3发出,被Sw2的G/0/1接收,接封装数据链路层,添加TAG:2,学习源NAc地址,
查看目标MAc地址,查询cAM表,知道目标MAc地址对应的出口是G0/0/24
Sw2将数据帧从G0/0/24发出,此时数据帧依然携带vlan2的tag标记
8.ARP回复包被sw1的G0/0/24接口接收,接封装数据链路层,查看vlan id:2,学习源NAc地址,
查看目标MAC地址,找到转发接口是c0/0/1,将ARP回复报文从G0/0/1转发出去
9.PC1收到ARP回复包,接封装数据链路层,查看目标MAc地址,是自己的,继续接封装,查看ARP
的数据部分,将PC3的IP地址和MAC地址对应起来,添加到ARP缓存表。
此时PC1已经获得了PC3的MAC地址
10.PC1能够封装一个完整的ICMP的数据帧,PC1向PC3发送ICMP数据帧
11.封装接封装过程同 ARP 封装解封装过程....
6.应用场景
交换机--交换机
交换机--路由器
交换机--linux服务器
二、native VLAN(本征vlan)
1.特点
Native VLAN所属的帧在经过trunk时不打标签
Native VLAN在Trunk两端必须匹配,否则会出现VLAN流量互串
默认的native vlan是vlan 1
建议将一个生僻的VLAN配置为Native vlan
2.native vlan通信过程
首先,Access端口接收到数据帧时,没有VLAN标记,打上该Access端口的PVID后继续转发,
Access瑞口通常从PC端接收数据帧,有VLAN标记,则直接丢弃,这个数据帧肯定来自其他非Acess流
和终端FPC,因为Acces端口和终端PC,网卡不会发送带VLAN标记的数据桢。
其次,Trunk端口发送数据帧时,将要发送数据帧的VLAN标记与自己的PVID进行比较,如果与PVID相同,
则去掉后再发送。
然后,如果与PVID不相同,则直接发送,将交换机级联端口都设为Trunk,并允许所有van通过后,默认情况下
除vlan1外的所有来自其他van的数据帧将直接发送,而作为Trunk端口默认vlan的vlan1的数据帧,则需要去掉
vlan信息后再发送。即vlan1通过Trunk链路时是一个普通数据帧,并不带任何vlan信息。也就是native vlan 。
3.修改native vlan
port trunk pvid vlan 100
4.GVRP
简化大型园区网中VLAN信息库同步的问题
只同步VLAN信息
需要交换机之间的trunk链路支持
GVRP端口注册模式
Normal模式:能收能发
Fixed模式:能发不收
Forbidden模式:孤岛----跟外界通信只能通过vlan1
5.相关命令
1.开启交换机GVRP功能 gvrp
2.在trunk上配置
>interface G0/0/1
>gvrp
>gvrp registration ? 类型选择
3.查看命令
>display gvrp status验证GVRP的配置,可以查看交换机是否使用了gvrp
>display gvrp statistics可以查看gvrp中的活动接口信息
三、vlan跳跃攻击:
1.基于DTP的协商的攻击
2.双TAG帧的攻击
基于DTP---》
2.1攻击者将与自己相连的链路接口协商成Trunk模式(允许所有vlan通过}
2.2封装一个具有2个tag标签的数据帧,外层的tag id是Trunk链路的本征vlan的pvid,内部的tag id
是要攻击的主机所在的vlan id
3.当具有双tag的帧从交换机trunk接口转发出丢时,
外层的tag id是Trunk链路的本征vlan的 pvid,会剥离掉外菌的一个 tag,进而将具有攻击性的数据发送
到对应的vlan下