二层,即OSI第二层数据链路层,数据链路层提出物理编址概念,即MAC地址。
MAC地址:给每一台设备分配一个物理地址(MAC地址),长度为48bit,用十二位十六进制表示。MAC地址的表现形式大体上分为两种:
XX-XX-XX-XX-XX-XX ,常见于Windows系统下
XXXX-XXXX-XXXX,常见于网络设备中
其中,前24bit用于标识OUI(厂商),后24位由厂商自行定义。
工作在数据链路层的设备为交换机
交换机的基本功能为自动学习MAC地址
交换机转发数据帧依靠MAC地址表,交换机查看源目MAC地址进行数据帧的转发
交换机查看MAC地址
Switch# show mac address-table
MAC地址表的来源:
1.Dynamic:自动学习
自动学习MAC地址是交换机的基本功能,且无法关闭。
交换机查看源MAC地址就是自动学习的过程,将源MAC地址和收到该数据帧的接口进行绑定,形成Dynamic的MAC表项
交换机查看目的MAC地址就是交换过程。
2.Static:静态手动指定
Switch(config)#mac address-table static 6666.6666.6666 vlan 1 int e0/0
手动指定的MAC表项是永远不会消失的
VLAN:Virtual Local Area Network,虚拟局域网
在原先物理局域网的基础上进行划分,分隔成几个小的虚拟的局域网
作用:
1.提高局域网的安全性
2.减小广播域
冲突域和广播域:
冲突域:常见于Hub上,
集线器的所有接口位于一个冲突域中
交换机的每个接口是一个独立的冲突域
广播域:广播报文能够传输的范围
交换机的所有接口都位于一个广播域中
而路由器的一个接口就是一个广播域
VLAN号范围:1-4094,其中
1-1001:标准VLAN号,一般用于二层交换机。
1002-1005:保留VLAN号,用于令牌环网等(几乎用不到)。
1006-4094:扩展VLAN号,一般用于三层交换机。
VLAN的配置:
1.VLAN的创建
在不那么旧的IOS版本上
Switch(config)# vlan x Switch(config-vlan)# name XX
在较老IOS版本上(如2950)
Switch# vlan databse Switch(vlan)# vlan x name y
2.VLAN的删除
在不那么旧的IOS版本上
Switch(config)# no vlan x
在较老IOS版本上(如2950)
Switch# vlan databse Switch(vlan)# no vlan x
查看创建的VLAN信息:
Switch# show vlan brief
3.将某些接口划分进入VLAN中
默认情况下,交换机的所有接口处在VLAN 1下。
(config)# int e0/0 (config-if)# switchport access vlan 10 # 划分进入VLAN10 (config-if)# switchport mode access # 端口模式改为接入模式
VLAN预配的删除
VLAN信息不像路由器保存在running-config中,而是存储在vlan.dat中,因此,交换机清除预配,除了要erase startup-config外,还需要delete flash:vlan.dat。(具体目录通过特权模式下dir看)
Trunk,干道协议,用于在一条或多条链路上传输多个VLAN的数据
Trunk会重新封装数据帧,其具体过程为给数据帧一个VLAN标记,标记本数据帧是属于哪个VLAN的
封装协议分为两种:
1.802.1Q:公有协议,支持所有的VLAN号(1-4094)
2.ISL:Cisco私有协议,只支持标准VLAN号(1-1005)
802.1Q封装需要重新计算FCS处的值,需要消耗一定的硬件资源(如CPU),也会带来一定的延迟。
ISL封装,不更改原数据帧
只有Cisco新设备支持ISL,老版本IOS(如vlan database)的设备不支持
干道配置:
1.定义干道的封装协议,在Cisco的设备上,默认的封装协议是ISL
(config)# interface e0/2 (config-if)# switchport trunk encapsulation dot1q
2.修改接口模式
(config)# interface e0/2 (config-if)# switchport mode trunk
本征VLAN:
Trunk链路传输过程中无VLAN-ID字段内容的VLAN称之为本征VLAN
默认是VLAN1
VLAN1的数据子啊经过Trunk链路时是不需要经过802.1Q重封装的
如果要修改本征VLAN,需要保证:
1.本征VLAN是基于802.1Q概念的技术,若通过ISL封装,则无本征VLAN概念
2.两端的本征VLAN id要相同
本征VLAN的部署:
(config)# interface e0/2 (config-if)# switchport trunk native vlan 20 # 设置本征VLAN为VLAN 20 # 设置本征VLAN为VLAN 20
DTP协议:
Dynamic Trunk Protocol,动态中继/干道协议,Cisco交换机是默认开启的。
Cisco私有协议
作用:动态协商交换机之间的Trunk链路
协商内容分为两部分:
1.接口的类型,协商完毕后接口会成为access/trunk类型
2.Trunk的封装协议,协商完毕后接口Trunk的封装协议会成为802.1Q/ISL
DTP的四种模式:
Dynamic Desirable :动态主动模式,主动向其它接口要求成为Trunk模式。 Dynamic Auto:动态被动模式,被动地响应其它接口的请求,不会主动要求成为 On:主动/强行成为干道。 Off:主动.强行关闭干道。
在DTP协商建立Trunk链路时,只需保证两端有一端是主动端即可成功协商Trunk链路。
DTP在Cisco交换机端口的默认模式:
Switch# show interface e0/2 switchport
Administrative Mode:管理模式
Operational Mode:运行模式
接口下配置修改DTP模式:
(config)# int e0/2 (config-if)# swichport mode dynamic desirable
DTP协商结果图
DYNAMC DESIRABLE | DYNAMIC AUTO | ON(TRUNK) | OFF(ACCESS) | |
---|---|---|---|---|
Dynamc Desirable | Trunk | Trunk | Trunk | Access |
Dynamic auto | Trunk | Access | Trunk | Access |
On(Trunk) | Trunk | Trunk | Trunk | - |
Off(Access | Access | Access | - | Access |
图-DTP协商结果
CDP:Cisco Discovery Protocol,思科发现协议,Cisco私有协议
作用:用于自动发现思科设备
# show cdp neighbor
VTP协议:Vlan Trunking Protocol,VLAN中继/干道协议
用于自动同步各交换机的VLAN信息
VTP域名:
只有VTP域名相同的交换机才会互相同步VLAN信息。
如果交换机域名为空(还未配置VTP),此时,交换机会自动学习其它交换机的域名
VTP域名的配置:
(config)# vtp domain CCNP
查看VTP信息
# show vtp status
VTP版本:
VTP支持版本1,版本2,版本3
默认运行版本1,常用版本2
(config)# vtp version 2
V1:支持VLAN1-1001(不支持令牌环网)
在旧版本IOS的VTP中,透明模式是不会转发VLAN信息的。
V2:支持VLAN1-1005
V3:支持VLAN1-4094
VTP模式:
Server:服务模式 可以修改和删除VLAN信息,也可以任意修改VTP配置 发送和接收VLAN信息,同步VLAN信息。 Client:客户模式 不可以修改和删除VLAN信息,可以修改少量VTP配置 发送和接收VLAN信息,同步VLAN信息。 Transparent:透明模式 可以修改和删除本地VLAN信息,也可以任意修改VTP配置 转发VTP的VLAN信息,但是不会同步。
实验BUG解释:
如若出现VTP信息不同步的情况,则将没有同步到VLAN信息的设备VTP模式先改为透明模式,再改回客户机模式。
VTP的修订号:
每对VTP或VLAN进行修改后,修订号都会改变
创建、删除、修改VLAN信息,修订号每次都会加1。
VTP的服务模式和客户模式都会自动同步修订号较高的VLAN信息。
VTP的倒灌:
由于Client设备无法更改VLAN信息,所以正常情况下都应该是Client向Server同步,因为Client修订号应永远等于或小于Server的修订号
但是如果出现Client设备的修订号大于Server的修订号,则Server会向Client端同步VLAN信息,这个过程称为VTP倒灌。
为了防止倒灌现象的发生,新设备在上线前,需要先将设备的VTP模式改为Transparent,再改回Client或者修改VTP域名,并确保修订号归0。
Etherchannel:以太通道
将多条物理链路聚合成一条逻辑链路,当其中的某条物理链路故障后,逻辑链路依旧存在,从而防止单点故障。
Etherchannel的封装:
PAGP:端口聚合协议,Cisco私有,支持的物理链路最多8条
模式:
Desirable:主动 Auto:被动
LACP:链路聚合控制协议,公有协议,支持的物理链路最多16条,但其中只有8条可以使用,另外8条作为备用链路。
模式:
Active:主动 Passive:被动
Etherchannel的部署:
1.确定以太通道的协议和以太通道端口号
int ran e0/2,e1/0 channel-protocol pagp/lacp channel-group 1 mode desirable/auto/active/passive
2.将以太通道设置成Trunk
int po1 switchport trunk encapsulation dot1q switchport mode trunk
Etherchannel的负载方式:
# show etherchannel load-balance
Dst-IP:基于目的IP负载 # 常见于三层交换机 Src-IP: 基于源IP负载 # 常见于三层交换机 Drc-dst-IP:基于源目IP负载,默认方式。# 常见于三层交换机 Dst-MAC: 基于目的MAC负载 # 常见于二层交换机 Src-MAC: 基于源MAC负载 # 常见于二层交换机 Src-dst-MAC: 基于源目MAC负载 # 常见于二层交换机
调整Etherchannel的负载方式
(config)# port-channel load-balance xx # 调整负载方式
STP,Spanning-Tree PRrotoco:生成树协议
STP技术的产生是为了防止物理链路出现环路,STP会在存在环路的二层网络中构建一个无环的拓扑。
环路的危害:
1.广播风暴
由于交换机之间物理链路冗余,造成广播帧不停地在冗余链路之间来回传输,如果交换机的端口指示灯有规律的一同灭闪,则应注意是否发生了广播风暴。
2.MAC地址表不稳定(翻转)
交换机从不同接口收到同一个源MAC地址的数据,会导致该MAC地址会出现在多个接口下。
BPDU:
Bridge Protocol Data Unit:网桥协议数据单元,交换机之间会通过BPDU来协商链路。类似于IGP的Hello报文。
BPDU字段解释:
Root ID:标识根交换机的MAC地址,占8字节,由两部分组成。 Root ID的组成: 优先级:占2字节,默认值32768,范围0-65535(需要是4096的倍数) MAC地址:占6字节,根交换机的MAC地址
Bridge ID:网桥ID,占8字节,由两部分组成 Bridge ID的组成: 优先级:占2字节,默认值32768,范围0-65535(需要是4096的倍数) MAC地址:占6字节,表明本台交换机的MAC地址(选举本交换机MAC地址中最小的地址)
Port ID:端口ID,占2字节,由两部分组成 Port ID的组成: 优先级:占1字节,范围0-255,默认128,递增基数为16 端口号:如0/0
交换机的接口状态:
Disabled:禁用状态,相当于接口被shutdown Blocking:阻塞状态,逻辑意义上shutdown,默认情况下,端口会在此状态停留20s。不能够接收和发送BPDU、数据帧、参与MAC-address-table Listening:监听状态,表明交换机已得知本接口应当参与数据帧的转发。端口会在本状态下停留15s。接收和发送BPDU,不能够收发数据帧,不参与MAC-address-table Learning:学习状态,接口参与填写MAC-address-table,端口会在本状态下停留15s。接收和发送BPDU,参与MAC-Address-table,不能收发数据帧 Forwarding:转发状态
生成树的算法(重点):
1.选举根交换机
BID值最小者优先成为根交换机
在交换机初始状态下,每台交换机都会互相发送BPDU,初始状态下,大家都会认为自己是根,因此BID=RID。
选举规则:
(1)先比较优先级,越小越优
优先级范围0-65535,默认是32768
(2)再比较MAC地址,越小越优
根交换机选举完成后,其它的非根交换机不会再发送BPDU报文了,只有根交换机在发送BPDU。
2.选举根端口
根端口是在所有的非根交换机上选举,同时每台非根交换机只有一个根端口,用于转发BPDU和数据。
根端口的选举依据:
(1)比较BPDU接收端口到交换机的路径成本,越小越优
旧标准(不用了,纯了解) | 新标准(目前使用) | |
---|---|---|
万兆链路(10G链路) | 1 | 2 |
1G链路 | 1 | 4 |
100M链路 | 10 | 19 |
10M链路 | 100 | 100 |
(2)比较对端的BID值(网桥ID值),越小越优
(3)比较对端的PID值(端口ID值),越小越优
端口ID由两部分组成,优先级+端口号
先比较优先级,越小越优
再比较对端端口ID,越小越优(如e0/x永远比e1/x)要小
3.选举指定端口,并阻塞没有角色的端口
在每条链路上都需要选举一个指定端口,用于转发BPDU和数据
(1)根交换机的所有端口全部都为指定端口
(2)非根交换机上根端口的对端一定是指定端口
(3)BPDU转发端口到达根交换机的路径成本,越小越优
(4)本端的BID值越小越优
(5)本端的PID值越小越优
例:生成树选举过程
具体选举过程:
1.选举根交换机
比较各交换机的BID值,发现aabb.cc00.1000,即SW1的MAC地址最小,因此SW1作为根交换机。
2.选举根端口
SW2:
SW2的e0/0端口到根交换机的路径成本为100,e0/1端口到根交换机的路径成本为300,因此,根据路径成本越小越优的道理,我们选择e0/0端口作为SW2的根端口。
SW3:
SW3的e0/1端口到根交换机的路径成本为100,e0/0端口到根交换机的路径成本为300,因此,根据路径成本越小越优的道理,我们选择e0/1端口作为SW2的根端口。
SW4:
SW4的e0/1端口到根交换机的路径成本为200,e0/2端口到根交换机的路径成本为200,因此,根据路径成本比不出来;开始比较对端网桥ID值,则aabb.cc00.2000(SW2)比aabb.cc00.3000(SW3)小,因此,连接到SW2的端口e0/1被选举为根端口。
SW5:
e0/0端口到根交换机的路径成本为300,e0/3端口到根交换机的路径成本为300,因此,根据路径成本比不出来;开始比较对端网桥ID值,对端网桥均为aabb.cc00.4000(SW4)也比不太出来;开始比较对端端口ID值,SW5的e0/0连接到SW4的e0/0,SW5的e0/3连接到SW4的e0/3,则PID值0/0小,则SW5的端口e0/0端口被选举为根端口
3.选举指定端口
(1)根交换机上的端口全部是指定端口,因此SW1的e0/0和e0/1端口都是指定端口
(2)根端口的对端一定是指定端口,因此,SW4的根端口e0/1,对端是SW2的e0/1,因此SW2的e0/1也是指定端口;同理,SW5的根端口是e0/0,对端是SW4的e0/0,因此,SW4的e0/0也是指定端口;
因此,我们只剩下SW4连接SW3的链路及SW4连接SW5的左侧链路没有选择出指定端口。
SW4通过e0/2端口连接到SW3的e0/0端口,首先比较两个端口到根交换机的路径开销。
SW4通过e0/2转发BPDU是转发通过左侧RPe0/1接口收到的BPDU,到根的路径开销值为200,而SW3的e0/0端口转发BPDU是转发通过上方RPe0/0接口收到的BPDU,根路径开销值为100。本着越低越优的原则,优选SW3的E0/0端口作为转发端口。
SW4通过e0/3端口连接到SW5的e0/3端口,首先比较两个端口到根交换机的路径开销。
SW4通过e0/2转发BPDU是转发通过左侧RPe0/1接口收到的BPDU,到根的路径开销值为200,而SW5的e0/3端口转发BPDU是转发通过右侧RPe0/0接口收到的BPDU,根路径开销值为300。本着越低越优的原则,优选SW4的E0/3端口作为转发端口。
生成树的种类:
1.802.1D:STP
Cisco拿过来做了改进,演变出了PVST(Per Vlan Spaning-Tree)
PVST是Cisco交换机默认运行的种类,每个VLAN有一颗独立的生成树。
PVST的配置:
(config)# spanning-tree mode pvst # 生成树模式定义为PVST (config)# spanning-tree vlan x priority y # 将该交换机设备在vlan x中的优先级设置为y。
PVST的缺点:
慢
一个端口从Blocking到最后Forwarding的过程如下:
Blocking--20s—Listening--15s—Learning--15s—Forwarding
2.802.1W:RSTP(Rapid Spanning-Tree),快速生成树协议
RSTP相较于PVST,将端口状态数量调整为了4个,去掉了Listening状态。RSTP模式下,一个端口从Blocking到最后Forwarding的过程如下:
Blocking--20s—Learning--15s—Forwarding
RSTP的配置:
(config)# spanning-tree mode rapid-pvst # 生成树模式定义为RSTP
3.802.1S:MST/MSTP(Multiple Spanning-Tree),多生成树协议
把多个VLAN绑定成一个实例,每个实例生成一棵树,实例内的VLAN共享这一棵生成树。
MSTP的配置:
(config)# spanning-tree mode mst # 定义生成树模式为MSTP (config)# spanning-tree mst configuration (config-mst)# name MST (config-mst)# instance 1 vlan 1, 10 # 实例号绑定对应VLAN (config-mst)# instance 2 vlan 20 # 实例号绑定对应VLAN (config)# spanning-tree mst 1 priority 0 # 设置本交换机在实例1 中的优先级值为0。
查看MSTP:
# show spanning-tree mst instance-id
STP的两个特性:
1.Portfast
Portfast接口可无需经过Blocking等状态,直接进入Forwarding状态,如果某个接口下连接的一定是一台终端设备,则可以将这个接口设置为portfast接口。
(config-if)# interface eX/y (config-if)#spanning-tree portfast (edge) # 指定某个接口为快速接口 (config)# spanning-tree portfast edge default # 指定全局接口为快速接口
2.BPDUGuard
BPDU防护,若该接口收到了BPDU,则表明该接口下可能存在交换机,此时有可能会造成二层环路。此时若配置了BPDUGuard,则会主动关闭该接口。
(config-if)# spanning-tree bpduguard enable # 无论该接口是否为快速接口,只要收到BPDU报文,就置入err-disable状态,并且接口置为down状态 (config)# spanning-tree portfast edge bpduguard default # 全局下的快速接口只要收到BPDU报文,就置入err-disable状态,并且接口置为down状态
被BPDU防护关掉的接口,重新恢复up状态的方法
1.重新配置正确的Portfast后重启设备。
2.排除错误之后,进入接口,sh后no sh
3.排除错误之后,使用errdisable自动恢复。
(config)#errdisable recovery cause bpduguard (config)#errdisable recovery interval 30
跨设备通信由于需要网关转发本网络数据包,因此需要借助于三层设备
三层设备:路由器、多层交换机。
多层交换机实现VLAN间通信
借助于多层交换机的SVI接口
SVI接口是一个逻辑接口,在多层交换机上,每一个VLAN可以拥有一个独立的SVI接口,且该SVI接口为所在的VLAN提供服务
创建对应VLAN的SVI接口:
(config)# interface vlan 10 (config-if)# ip add 192.168.1.1 255.255.255.0 (config-if)# no shutdown
路由器实现VLAN间通信
借助于路由器的子接口
(config)# interface e0/0.10 (config-if)# encapsulation dot1Q 10 # 封装给VLAN10使用 (config-if)# ip address 192.168.1.1 255.255.255.0 (config)# interface e0/0.20 (config-if)# encapsulation dot1Q 20 # 封装给VLAN20使用 (config-if)# ip address 192.168.2.1 255.255.255.0 (config)# interface e0/0 (config-if)# no shutdown # 打开母接口
FHRP协议,即First Hop Redundancy Protocol,首跳冗余协议,这里的首跳也就意味着是网关。
FHRP协议的分类
HSRP
VRRP
HSRP协议
Hot standby Router Protocol,热备份路由器协议,是Cisco私有协议
HSRP路由器的两种角色:
Active:活动路由器,用于实际承担流量转发(当前的实际网关)。
Standby:备份路由器,一旦Active路由器发生故障,则Standby设备就会顶替原先Active路由器,并承担原Active路由器的工作。Standby路由器会监听Active路由器的状态。
Active路由器会向Standby路由器定期地主动发送存活报文(3s一次,目的地址224.0.0.2),如果在一定时间内Standby路由器没有收到Active路由器的存活报文,则表明Active路由器可能DOWN,此时Standby路由器会接替Active路由器。
HSRP组:
即由多台HSRP路由器组成。
HSRP角色选举:
1.比较优先级,优先级越大越优,默认值100,修改范围0-255。
2.比较IP地址,越大越优。
HSRP中的虚拟路由器&IP&MAC:
由Active路由器和Standby路由器共同虚拟化为一台虚拟路由器。
虚拟路由器的IP地址即是将来要设置的网关,可以实现网关的备份冗余。
虚拟IP地址:虚拟路由器的IP地址,可自行设置,不可与现有地址重复
虚拟MAC地址:0000.0c07.acxx,xx表示HSRP组号
HSRP的基本配置
(config)# interface vlan10 (config-if)# standby 10 ip 192.168.10.254 # 即表示加入组号为10的HSRP备份组,该组的虚拟IP地址为192.168.10.254
HSRP的抢占
默认情况下,组内的设备不会主动抢占Active路由器的角色,即使其优先级或者IP地址并当前的Active设备更大。
若想发生Active路由器角色的切换,则需要手动开启HSRP的抢占
(config)# interface vlan10 (config-if)# standby 10 priority 110 # 将此设备的优先级调高。 (config-if)# standby 1 preempt # 开启抢占,若比当前Active路由器更大,则直接发生抢占。
HSRP的链路监测机制:
(config)# track 1 interface e0/0 line-protocol # 通过track检测链路是否DOWN (config-if)# standby 1 track 1 decrement 20 # 如果链路DOWN,则将本地HSRP优先级降低20
此功能必须搭配HSRP的抢占一起使用。
VRRP协议
Virtual Router Redundancy Protocol,虚拟路由器冗余协议。公有协议
VRRP路由器的两种角色:
Master路由器:活动路由器,用于实际承担流量转发(当前的实际网关)。
Backup路由器:备份路由器,一旦Master路由器发生故障,则Backup设备就会顶替原先Active路由器,并承担原Master路由器的工作。
VRRP的目的地址:224.0.0.18
VRRP的虚拟IP&虚拟MAC:
虚拟IP地址:VRRP的虚拟IP地址可以和现有的IP地址重叠,IP地址拥有者VRRP优先级为255。
虚拟MAC地址:0000.5e00.01xx # xx表示组ID
VRRP的抢占:
VRRP的抢占功能是默认开启的。
VRRP的部署:
(config)# interface vlan 10 (config-if)# vrrp 10 ip 192.168.10.254 # 将该设备加入VRRP备份组10中,虚拟IP是192.168.10.254 (config-if)# vrrp 10 priority 110 # 将该设备在VRRP组中的优先级设置为110 (config-if)# vrrp 10 track 1 decrement 20 # VRRP也可联动track技术实现链路检测