LAN总结:
延迟:A—>B:A发出或者B接收中,B等待的时间
传输延迟:传播的时间,不可处理,取决于媒介及距离
处理延迟:A->B之间的设备对数据处理所花时间
队列延迟:排队机制所花时间
不用HUB的原因:冲突域的原因,避免冲突机制:CSMA/CD,虽然有CSMA/CD,但还是不能解决等待时间,效率还是低下,因此利用二层设备,因为冲突是一层问题
冲突域:一层概念,但要2层设备隔离
广播域(广播传递的范围):二层概念,但要3层设备隔离
ARP广播能传递到有3层设备,3层设备不能传递,但可以查看数据包
广播域划分的好处:性能,安全
二层设备:bridge,switch
区别:switch端口密度大;switch功能比bridge多;二者性能不同(switch好,因为有专门的转发芯片,且转发性能好)
switch的3中转发模式:
存储转发:完整收到数据帧并进行CRC校验无错后转发,交换机将整个帧存储在内存缓存区,可靠,但速度,延时大
快速转发:交换机一旦确定目的MAC地址和正确的端口号,就立即发出去,通常情况下,大约收到帧头14个字节左右就开始转发,使得转发速度快,延迟小,但不可靠,连小于64自己的帧和一些坏帧也会转发,浪费带宽
无碎片转发:快速转发的修订版,目前交换机的缺省方式,检查前64个字节后转发
switch比bridge的优势在于其3种交换方式:
软件交换:通过CPU(工业级,摩托罗拉等)实现帧的交换
硬件交换:通过专门的ASIC硬件组建处理数据包,通常能达到线速的吞吐量。SW要执行硬件交换,路由处理器必须将有关路由选择,交换,ACL和QOS等信息下载在硬件中
MLS(多层交换):指的是SW能够通过硬件来交换和路由选择数据包,并可能通过硬件支持4-7层的交换
基于netflow的MLS
基于CEF(cisco express forwarding)的MLS
网络技术必须按OSI7层封装,没有就不是
蓝牙,红外,微波(属于PAN,个人区域网)
LAN分为:有线(以太局域网,FDDI,令牌环),无线
网络的分类:
按地理:PAN,LAN,WAN
按访问对象:P2P(访问一个)---单一目的地;MA---BMA(广播);NBMA(非广播)
一层拓扑结构:
总线:线缆问题,全部通信都断掉
(双)令牌环:安全机构,一断全断
(扩展)星型:分级集团,信息在center管理
全(部分)互联:任意一个断掉都不影响其他通信,成本高
主要是有线中的以太网:
二层技术:
封装类型:
Ethernet II(用户终端,data)
802.3(网络状态维持,protocol)
二层地址:
48位:1+1+22+24共48位
第1位:1表示broadcast,0表示非广播
第二位:1表示local,0表示非本地
之后22位:OUI(厂商标识)
最后24:vendor assigned(区分MAC)
CAM:(二重)可寻址内存
T-CAM(三重CAM)
二层主要基于CAM表转发,三层主要基于FIB和ARP表转发
CAM----非专业叫法为MAC地址表
由:出厂写入;出厂预留(MAC表中看不到);动态学习/网工写入三种组成
show mac-address-table、mac address-table:查看CAM表
出厂写入:为某些协议保留的MAC地址,用来告诉switch,当收到这些时,把它交给switch的硬件处理
出厂预留:MAC表中看不到,有两类,第一类用show version查看(里面有:base mac ,主板地址);第二类在接口下:show int fX/X(看到一个hardware address,接口地址,处于连续的地址空间),出这两个之外,还预留了一部分地址空间:可以创建一些设备支持的其它接口;预留MAC地址的原因:预留给主板的或者之后创建接口的,用来实现其他特殊功能;
预留给物理接口的MAC地址:
1,用来区分2层转发和3层转发问题(需要2层转发的帧头目的MAC是未知或者学习到的;需要3层转发的目的MAC全是预留MAC);
2,用于switch之间数据转发及交流
动态学习:出厂时空的,因为表明是那个接口连的那个设备
选用交换机主要考虑:
CAM表大小(体现放的MAC地址数目,CAM表太小影响flood大小);
预留MAC数量(影响创建其他接口数量)
L2/L3转发原理:
L3:router printer firewall PC
L2:switch bridge
switch:show mac address-table aging-time (cisco默认300s)
修改:mac address-table aging-time
mac address-table static XXX.XXX.XXX vlan X int fX/X
router:修改ARP time:arp timeout (cisco默认4小时)
修改ARP表:arp X.X.X.X XXXX.XXXX.XXXX arpa
L2转发原理:
PC 4 sw1 8 10 sw2 12 1 router
数据包的发送过程:从7向下封装,到L3,封装源目ip,之后封装2层,因为不知道目的mac地址,因此封装失败,第一个包丢包,从而触发ARP,发出ARP请求包,目的mac全f,后面为ARP数据,到sw1,sw1查到源mac为pc mac,从4号接口进入,因此将接口和mac映射写入CAM表,之后发现目标是全f就泛洪,之后sw2收到泛洪消息,查看源mac为pc的mac,从10号接口进入,将映射写入自己CAM表,之后继续泛洪,之后router收到,拆开2层,发现目的地址是自己,就再拆开3层,向上发现是ARP请求;router就回复arp请求,封装3层,2层,源为自己接口mac,目的为pc mac,sw2收到,查看源是router mac,从12 口进入,将消息写入CAM,之后看目的,发现自己CAM表中有就从相应接口(10)发出,sw1收到,记录源mac和接口到CAM,之后再从4号接口发出,之后pc收到,学到mac,之后封装成功,能够通信
在此过程中有一次丢包:因为pc封装失败丢包
L3转发原理:
8
PC1.1 1.2 L3 sw 2.2 10 L2 sw 2.1 1 router
交换机进行3层转发,则两边都要有子网与其相连,因为要构建FIB表
数据包发送过程:从7向下封装,到L3,封装源目ip,之后封装2层,因为不知道目的mac地址,因此封装失败,第一个包丢包,从而触发ARP,发出ARP请求包,目的mac全f,后面为ARP数据,到L3 sw,因为3层设备隔离广播,因此全f的过不去,因此需要触发代理ARP,1.2接口对应的mac地址作为源回复给pc,pc收到后,可以封装,因此封装完毕,发送给l3 sw,l3 sw收到后,发现目的mac是自己,但是拆开3层,发现目的ip不是自己,因此l3 sw需要帮助pc转发,3层查FIB表,ARP表,封装3层,之后封装2层,发现目的mac在ARP表中没有,所以封装失败,因此需要ARP协议解析,发ARP请求,封装3层,2层,以2.2对应接口的mac为源mac,全f为目的,封装发到,l2 sw,l2 sw收到后查看源mac和入接口,将其映射写入CAM表,再将消息泛洪,之后router收到,查看是arp请求,router就响应,到l2 sw,查源,写入CAM表,之后查CAM,找到目的对应接口,转发,l3 sw 收到,ARP解析成功,后续pc发包就能正常通信
在此过程中有两次丢包:1次是因为pc封装失败丢包,1次是l3 sw封装失败丢包
注意:
1,全f的MAC地址是在出厂时写入的
2,router有FIB表和ARP表,FIB表中有路由就发,没有就丢包;但交换机只有CAM表,进行单播或者泛洪
3,区分几层设备的关键:转发表项和转发原理不同
PC和router中都有FIB表(router table)和ARP表(动态学习),所以是同层设备;由于动态学习,所以有时间问题(存表时间)
存表时间不变,无老化:适合于少量固定设备,网络变化情况不大的;好处:丢包可避免
逻辑拓扑:可以省略2层设备的拓扑;在转发过程中无影响,则可以省略
物理拓扑:所有设备都画出来
排错两种方法: 1,从osi的7到1
2,从1到7
1层:网线等
2层:CAM表为主(mac表写错,或者后面加了drop)
3层:FIB和ARP表为主(路由问题,arp写错
vlan技术就是将CAM表虚拟成多张,再将接口划入不同虚拟化CAM表
设备支持0—4095个vlan,其中0,4095不能用(系统保留);其他的可以分为3部分:
保留vlan:1,1002,1003,1004,1005;
基本vlan:1-1001(server)
扩展vlan:1006-4094(transit)
基本和扩展:配置模式不同,transit模式保存在running-conf中
1:default
1002:fddi-default
1003:token-ring-default
1004:fddinet-default
1005:trnet-default
在vlan的删除前,需要将其中的接口先溢出,否则其接口不再属于任何vlan,可能导致通信问题
在进交换机接口前,交换机不知道数据属于那个vlan,除非数据的入接口划入了某个vlan,交换机就认为进入的数据属于该vlan
同一网段同一vlan在同一交换机一定能通信;但在不同交换机就不一定
交换机接口分为:3层接口,2层接口,SVI,BVI
2层接口又分为:access,trunk,qinq(dot1q-tunnel)
access:一个access只能属于一个vlan(出了一个特例);推荐只连到终端
trunk:承载多vlan流量;推荐交换机之间的互连(S-R;S-S)
交换机对帧进行vlan标记有两种协议:ISL和802.1Q
ISL:不需要拆封,而是直接在头部封装;增加的字段太大,增加30个字节;而且不支持QOS技术;vlan字段最多支持1024个vlan;在trunk上传递的都要加ISL头
802.1Q:需要拆封,在source和len之间插入,之后再重新封装;增加的字段很小(4个字节),而且支持QOS(有priority字段);最多支持4096个vlan;可以有一个vlan不打标(native vlan:默认为vlan 1)
在trunk封装中:除了两种封装协议,还有一种协商机制(cisco私有)------DTP
Vlan中出入口规则:
DTP(dynamic trunk protocol,)用来判断接口是access还是trunk,只影响接口的mode,不影响数据通信(不通是因为接口本身):动态trunk协议,cisco私有(不是所有cisco设备都支持)
当一台设备接入switch,若模式为auto就不管,若为desirable则向外发包,回了就协商,不会就认为对端不是cisco交换机或者交换机,就将接口划入access,并属于vlan1
DTP模式 function
off(access) 关闭DTP,非trunk,不问不答
on (trunk) 设置为trunk,问答,主动向外发DTP报文,认为自己是trunk
desirable(DD) 主动问答(3550缺省),强烈想成为trunk
auto (DA) 不主动问,被动回答(3560缺省),想成为trunk,但不主动
nonegotiate(DTP附加的功能) 非协商, 强制本端trunk
show dtp interface:查看接口dtp情况
接口下:
switchport mode + :设置模式
switchport trunk encapsulation + :设置封装类型
negotiate模式只能在dynamic auto/desirable封装中使用
vlan dot1q tag native:native vlan也打标
trunk起来的条件:
双方trunk协议不冲突
L1无问题
需要一问一答
每隔30s发送一个DTP hello 包
在运行DTP时有3种mode:
on:强制
DD:主动
DA:被动
ON模式:虽然直接成为trunk,但还向外发,因此还是有风险,可以用
switchport mode trunk
switchport nonegotiate(关闭向外发送)
CDP/VTP/DTP/PAgp/UDLD:0100.0ccc.cccc cisco私有协议的目的mac地址
DTP在trunking时,两端的VTP的域名必须相同
native vlan:默认为vlan1,最多只能有一个接口成为native vlan
switchport trunk native vlan X(1-4094)
native vlan在DD的两端不匹配时:CDP协议报错,DTP正常,trunk没有问题
QinQ技术:在ISP(SP)连接客户的接口设为QinQ接口(dot1q-tunnel,支持tag;用户发来的数据不丢,不拆,不理会;人为再指定一个vlan,之后从某接口收到的数据,在发出时再打一个tag),因此用户数据在SP上发送,会有两层tag,内层用户自己设定,外层tag为用户编号,之后SP之间为普通trunk
QinQ接口的配置:
int fX/X
switchport mode dot1q-tunnel
switchport access vlan XX(客户编号)
客户编号:两端的SP(ISP)边界对于一个用户要一致
不能做native vlan(防止客户中有和SP中的vlan-id一样的vlan),建议:vlan dot1q tag native
注意:在cisco交换机上做了QinQ,cdp会自动关闭(安全考虑)
QinQ只支持802.1q,因此客户发过来的也必须是dot1q的(不支持ISL,ISL中有源目mac,但不是用户原始mac,改成了特定mac和交换机接口mac)
在SP(ISP)内部的交换机之间可以做成ISL封装
QinQ(802.1q in 802.1q)
QinI(802.1q in ISL)
cisco建议做成QinI,因为不会因为native vlan导致无法分辨用户问题;用户的mac在ISL头部的后面,对SP中遇到黑客有一定安全保障
VTP(vlan trunking protocol):vlan 干道协议,只能运行在干道上;是一个在域中统一管理vlan消息的二层协议
大致分为server,client;server的配置会保存在flash:vlan.dat中,而client的不会保存,每次都从server同步;之后又有transparent模式:可以帮助传递vlan信息,但本地不受影响,自己配置vlan也可以保存在nvranm的startup-configure中,但不会告诉server和client
在同步时会比对配置修订号(有多少次修订),越大的,越新,同步新的(覆盖,不是增加)
由于修订号的原因,所以VTP使用不太广泛;并且VTP只能告诉交换机有哪些vlan,不能告诉那个接口属于那个vlan(现在在接口化vlan,就会自动创建),因此使用VTP在接入没有太大意义;VTP是cisco私有,因此设备必须都是cisco的,但这种情况不太多
vtp剪裁(vtp pruning):通过阻止不必要的数据的泛洪来增加可用的带宽,提升数据传输率
注意:
1,vtp裁剪,裁剪的是广播和未知单播数据帧(泛洪流量)
2,vtp裁剪要在server模式中配置,不能在client模式和transparent摸得下配置
3,允许被裁剪的vlan的范围是vlan 2-1001,而vlan1和1002-1005以及1006-4094是不能被裁剪的,开启pruning后,默认裁剪是2-1001,但裁剪的vlan号可以在trunk上随意定义
接口下有switchport trunk pruning vlan XX(允许trunk中的那些vlan被裁剪),只要server支持,客户端也会自动支持;vtp version也是server支持,client同步
pruning在transparent和client模式下不能做,但version可以在transparent和server下做,client端会从收到的vtp消息来确定自己的版本号
vtp version的区别:
token-ring支持:v1不支持token-ring,v2支持token-ring
TLV支持:v2出现了TLV的支持
版本增强:两个版本的透明模式不一样,v1必须检查收到vtp消息中的domain信息,一致才转发,cisco文档说v2是直接转发,不检查(但实际中不生效)
一致性检测:只有对CLI和SNMP输入的新消息检测,通过vtp message学到的不能检测(由于这个原因,在15.0之后的ios会有一个md5校验一致性检测)
vtp v3(在12.2(52)SE以上开始支持):
最大特点:不能直接处理vlan,vtp v3负责在管理域中分发一个数据库的列表,具体增强在于:
支持扩展vlan(在#号模式下 vtp primary;v3的server默认模式为second server,在此模式下,不能配置vtp信息,防止引入错误信息)(pruning只能在1-1005做)
支持创建和通告pvlan(无需再用transparent)
支持vlan信息以及mst配置信息的传递(mst config可只配置一台,其余可通过vtp同步)
增强服务认证(密码可以加参数)
增强了保护机制,能够防止“错误的”数据库被意外的插入到vtp域中(server细分primary和second两种)
能够与v1和v2互动
能够基于端口配置vtp(show vtp interface),可以进入接口,no vtp(连接终端,服务器,和限制接口一定要关闭)
运行v3之前,需要配置域名
v3的显示信息,分3段:基本信息,vlan feature,mst feature,unknown feature
v3的版本号不会在交换机上变化,只有敲了才是,不会同步
v3的主server只能有一个,有抢占功能;想让自己强制成为主server:vtp primary force
vtp interface+带有ip的接口(修改local updater id,接口没ip,敲了还是显示0.0.0.0,但敲了随意一个名字(不是真实存在的接口),updater interface名字就会变成敲的,id会选物理接口有ip的最小的物理接口,同时存在环回和物理接口,依然优选物理接口id最小的,其次是环回的最小id;但在后面若加了only,则接口存在有ip就用,没有或者不存在就是0.0.0.0)
vtp file:将vtp文件存放在哪儿
华为设备上可以利用GVRP协议实现VTP功能,和VTP功能一样
相对于CDP协议,其他厂商有了LLDP协议
cisco还有一个技术:VMPS(vlan membership policy server):动态为端口划分vlan,根据端口mac地址在server上与vlan的对应关系,动态下放(但server的设备必须是catalyst 6500系列交换机,而且需要先将所有的mac域vlan信息写入server中,但这种工程量太大)
NAC可以取代VMPS
STP:
未运行STP可能会导致环路,从而导致带宽被消耗或者广播风暴;mac地址与接口的关联会发生变化(一个mac不能同时在多个接口下),导致mac地址抖动
为了在交换机上部署多条链路,从而促使了STP的发展,但由于STP会逻辑的阻断某条链路,又利用了EC技术将多条链路捆绑,使其逻辑上是一条链路
DEC stp(最早的stp)
CST stp(IEEE 802.1D,被802.1t补充):将交换机之间的流量进行统一计算,基于DEC STP设计,之后cisco改进,有了PVST+(最多支持128个vlan,超过的vlan不能运行stp,可以关闭某个的stp,no spanning-tree vlan X,但不建议关闭)
VSS(只支持65系列),VPC(只支持N系列交换机)(收敛速度达到毫秒级):不利用STP也能做到无环转发
RSTP(IEEE 802.1w),cisco有自己的R_PVST
MSTP(IEEE 802.1s),公有协议
CST-PVST+(802.1d,版本为0):
生成树协议的核心算法:SPA(最短路径树算法)------
1,选一个节点作为root
2,选择root port(RP)
3,决定每个端口的功能(DP-指定端口)
4,block端口
spt转发数据包为BPDU----C-BPDU(交换机之间配置);TCN-BPDU(交换机之间拓扑变更)
BPDU的帧格式:35个字节12个字段
目的mac:0180:c200:0000(IEEE规定的保留);0100:0ccc:cccd(cisco)
protocol id:2字节,总为0
version:1字节,802.1D默认为0
message type:1字节,配置BPDU0x00,TCN BPDU是0x80
flags:1字节
root id:8字节,bridge的mac地址和优先级
cost of path:4字节
bridge id:8字节,自己的mac和优先级
port id:2字节
message age:2字节
max age:2字节(默认20s,端口BPDU的最大存储时间,多长时间没收到bpdu就重新选举spanning-tree vlan X max-age Y,非根桥上修改,因为根桥不监听)
hellotime:2字节(默认2s,spanning-tree vlan X hello-time Y,根桥上改即可)
forward delay:2字节(默认一个listening和一个learning time,spanning-tree vlan X forward-time Y,所有交换机最好保持一致)
底层链路问题:30s切换,15s+15s
设备问题,弱光输问题:50s切换=20s+15s+15s
pvst的5种状态:
disabled:可以理解为此时交换机端口没有active,或者强制关闭该端口或者关闭该端口的stp。丢弃所有收到的数据帧,不学习MAC地址,能收BPDU,但不处理
blocking:端口监听BPDU,但是不转发BPDU,丢弃所有收到的数据帧,不学习mac地址,也不产生任何CAM表
listening:持续15s,接收并且转发BPDU,不转发用户数据,不产生该端口的CAM表项,在该状态下完成STP的收敛。在此状态,交换机能够决定根,并且可以选择跟端口,指定端口,非指定端口
learning:持续15s,接收并且发送BPDU,不转发用户数据,完成部分端口的CAM表项,目的是为了减少当用户开始转发数据时,带来的flooding
forwarding:接收并且发送BPDU,开始转发用户数据
选举规则:
root桥:比较root id中的优先级,小优,优先级相同,比较mac地址(主板mac),小优
spanning-tree vlan X root primary:工作原理,查看背板MAC,如果mac比原来的根的小,就将priority改为和对方相同,mac比根桥大,则将priority降低,降1级(减4096);但若priority大于32768,则抢根时,会将priority降为24576;当根的priority为4096,当mac比根大,则不能手动抢根;此命令在running-configure看不到,是以一个数值保存,不是动态变化,是一次性命令,一次性生效
spanning-tree vlan X root secondary:敲完,priority一直是28672
root port(所有非根桥交换机,且有且只有一个):cost:本地自己产生(BPDU数据包中的cost),会累加收到BPDU的入口cost,cost最小;若cost相同,比较BID;若BID相同,比较PID(端口priority(16的整数倍,0-255)和端口number组成(不一定等于端口编号))
在接口下可以调整cost:
spanning-tree cost(只有BPDU发送入接口才生效,影响所有vlan)
spanning-tree vlan X cost(只有BPDU发送入接口才生效,修改某个vlan cost)
因为bandwith和cost相关,则可以修改接口带宽,间接影响cost,但不建议这样做,因为影响流量;当bandwith和cost命令都有,cost命令生效
在接口下修改port-priority(在root bridge上修改影响非根对根端口的选举):
spanning-tree port-priority XX(必须是16整数倍)
spanning-tree vlan X port-priority XX(必须是16整数倍)
总之在选举root port时,是比较收到的BPDU的BID的priority,收到的BPDU的PID的priority,收到的BPDU的cost+入口cost
指定端口(DP,每根网线都要选):
RP的对端一定是DP
其他链路:比较向外发送的cost:root bridge产生的加BPDU入向的,cost相同,比较本地BID(谁发比较谁的);BID相同,比较本地PID(谁发比较谁的)
总之,在选举DP时,比较的是出向的(注意:cost还是入向有效)
在交换机有多条链路连接时,可能会从一条经过到达另一条链路
总结:root bridge上的接口全是DP(除非有一根网线两端连在其两接口)
从BPDU发送角度,DP全背向root bridge(发bpdu);RP全面向root bridge(收bpdu);block口和RP监听bpdu(影响网络稳定性的端口)
bandwith STP cost
4M 250
10M 100
16M 62
45M 39
100M 19
155M 14
622M 6
1G 4
10G 2
STP重新收敛,就是TCN-BPDU工作过程:
当非根交换机发现链路出现故障或者变化,都会发送BPDU消息,不会考虑对生成树是否有影响
当链路不是down掉,但有问题,STP会重选,但重选后(50s),SPT没问题,但可能还是无法通信,因为CAM表的映射还是在原来接口,因此在root bridge发出TCN-BPDU后,会将aging time 改为15s(默认300s,mac 老化时间)
RSTP-R_PVST(802.1w,版本为2):
5个端口:跟端口,指定端口,替代端口(替代根端口),备份端口(备份指定端口),禁用端口
替代加备份等于CST中的非指定
3个状态:(丢弃状态)discarding,(学习)learning,(转发)forwarding
接口类型:P2P----全双工
share--半双工
修改:spanning-tree link-type
flag字段:
7:TC
6:proposal(新加网线,立即向外发proposal,发BPDU时,置位)
5,4:端口角色
3:learning
2:forwarding
1:agreement(收到agreement,完成收敛,6s及以内完成)
0:TCA
只有非边缘的指定端口(edge)才能进入discarding状态
SW-SW: P2P指定(直接进入forwarding);share指定(不能直接进入forwarding)
SW-HOST:edge指定端口(直接进入forwarding)
将接口设为边缘端口:spanning-tree portfast(不等待时间,直接接受发送用户数据,但若数据中包含BPDU,则退回,进行选举;但不建议随便敲,因为BPDU2s发送一次,若在2s内可能导致广播风暴)
spanning-tree portfast trunk(也是在连接用户的接口上敲,连接用户的需要trunk情况:对端连接的server支持trunk;或者连接的是语音电话)
switchport host(敲了后自动执行3个功能:mode为access,执行portfast,channel关闭)
cisco支持的是pvst+,不支持802.1w
native vlan不一致,两端的spanning-tree会blocking掉
access接口和trunk命令可以在一个接口下同时配置,但以mode的类型生效
MSTP-MST(802.1s,版本为3)
MSTP的协议号为IEEE 802.1s,在交换机存在多个vlan时,CST会将所有的流量放在单挑链路上传输,而PVST+则可以通过为每个vlan都有一个STP实例,由于PVST+可能会多达128个STP实例,所以PVST+会及其消耗系统资源。MSTP正是因为这个原因,将需要进行相同STP计算的vlan映射到一个STP实例中,即无论有多少个vlan,只要实际需要多少条不同的路径,就根据需要的路径维护相同的stp实例数,从而大大节省系统资源,MSTP是在RSTP的基础上运行的,所以具有快速收敛功能,RSTP是随着开启MSTP时自动开启的。MSTP最多支持65个STP实例,cisco设备最多支持16个,但映射到实例的vlan数目没有限制,默认所有vlan都在实例0
在mst中:MSTR(mst域名),reve(类似配置修订号,手工制定)及instances(实例映射)必须相同才能在同一实例域
mst有CST,PVST,RPVST的优点,且能互相兼容
mst在RPVST的端口定义上新加了2个端口:域边缘端口和master端口(这两个端口代表对端不是MST或者不匹配,则会运行802.1d,跑802.1d的BPDU)
mst将网络环境分为:IST(全网运行在一个实例中)和CIST(运行在多个实例中或者在网络中同时还运行了STP)
在mst中有总根(全网的根)和域根(在域内的根)
mst的工作原理和PVST一样,区别不大
mst中cost的计算与PVST和RPVST不同;100M是200000;10M是2000000,是线性关系
在mst中,修改参数与pvst也一样,只是将vlan改为mst
show spanning-tree mst configuration
在cisco交换机上,若对端运行的不是mst,而是PVST,则会自动同步对端协议,并在接口下有标识(bound)
在cisco交换机上,若对端运行的不是mst,而是R-PVST,则会认为对端还是PVST,并在接口下有标识(bound),对端认为自己是标准STP(PVST)
cisco的mst不管对端是PVST还是R-PVST都认为是PVST,可能是cisco IOS的bug
STP中的features:
1,portfast,加速收敛,在与用户相连的接口配置
2,bpduguard:当接口执行后,该接口严禁收到bpdu,若收到,直接down掉
接口下:spanning-tree bpduguard enable,与连接用户的接口下敲,可以与portfast同时存在,若在非与用户连接的接口启用了此命令,show ip int bri,会看到down down(err-desiable),之后想用no shutdown,不会激活,可以先人为shutdown,再no shutdown,还可以自动恢复:errdisable recovery cause bpduguard(默认300s恢复);errdisable recovery interval +time(单位是s,最小是30)
show errdisable +参数,可以看到相关功能
3,bpdufilter:可以过滤掉在接口上发出或者收到的bpdu,该命令如果执行在接口上,其实就等于关闭了该接口的STP(有可能引起环路),全局配置bpdufilter,不会导致接口生成树被关闭
spanning-tree bpdufilter enable
bpdufilter和bpduguard都支持全局配置,全局配置只对敲了portfast的接口有效
当接口同时敲了bpdufilter和bpduguard,bpdufilter生效,bpdufilter优先级高于bpduguard
bpdufilter在全局开启:只在开启了portfast的接口过滤bpdu,并且只过滤发出的bpdu(接口刚刚up时依然会出现极少的bpdu发送),并不能过滤收到的bpdu,而当一个开启了portfast的接口,在开启bpdufilter后,如果还能收到bpdu,则bpdufilter特性会丢失,因此还会造成接口portfast功能丢失
如果在接口模式下开启(非portfast接口亦可),则可以过滤任何接口收到和发出的bpdu
4,uplinkfast
当在交换机上运行uplinkfast后,交换机会动态检测所有位于转发状态(RP,DP)的接口的直连情况,一旦链路down会立刻启用block端口,会抑制listening和learning,直接转发(时间大概为1-5s)
spanning-tree uplinkfast(不区分全局,接口,因为敲了,所有接口生效;并且优先级会变为49152;所有接口cost加3000),no掉会恢复,认为指定priority后,再敲uplinkfast,不会自动增加,两条冲突,人为指定了priority,不会执行uplinkfast;但修改接口cost对uplinkfast技术无影响,会在改的基础上再加3000
5,backbonefast
可以使得当网桥无法直接检测到失效链路时,可以将block端口立即设置为listening状态,不需要等待max-age超时,从而加快网络收敛
特性原理:因为正常网络中,除了根交换机,其他交换机不能发出bpdu,但在交换机上配置了backbonefast后,若SW3发现与SW1的网线断掉,则立即发出次级bpdu,说自己是根,SW2收到后,发现根SW1还在,就向SW3回复,SW3看到后,就发送拓扑变更消息给SW2,之后SW2立即向SW1发送一个特殊bpdu(只有35字节的数据),作用是让SW1进行拓扑变更
连接方式:SW1->SW3->SW2->SW1
因为需要所有交换机都要识别特殊数据帧,因此所有交换机都要开启backbonefast 功能
注意:当配置backbonefast的时候,要求在网络中每台switch上启用,不能针对vlan单独开启,也不支持MSTP模式
show spanning-tree backbonefast
6,rootguard
是为了使得当有BID更优的网桥加入现有网络后,为了不对现有网络造成
接口下:spanning-tree guard root
7,loop guard
通过loop guard可以对第二层转发环路(stp环路)提供额外保护,通过使用该特性,交换机将在过渡到stp转发状态之前执行额外检查,如果交换机启用环路防护特性的非指定端口上停止接收bpdu,那么交换机将使得端口进入stp“不一致环路”的阻塞状态,而不是使得端口经历监听学习转发状态,如果交换机在loop-inconsistent“不一致环路”stp状态的端口上
注意:portfast接口不能开loop guard
rootguard和loopguard不能同时存在在一个接口
因此现在使用UDLD:
在交换机没有使用任何模块的接口上,如果接口出现故障,如物理故障,或不能发送数据与接收数据,自己能快速察觉;而当接口上使用了模块后,如光纤模块,当模块上出现故障后,交换机并不能保证在任何时候都能察觉。当交换机的接口如果自己不能发送或接收数据,而对方能时,可能引起STP环路,这样的故障被称为单向链路故障,而交换机上的特性UDLD则可防止单向链路故障
UDLD使用二层协议来做单向链路检测(但更倾向于一层检测),开启了UDLD的接口会向外发送udld hello,默认间隔15s。收到udld hello的交换机必须向邻居回复,如果超时,就认为单项链路故障,就采取相应措施
UDLD的运行分为两种模式:normal和aggressive
normal模式只能检测光纤上的单项链路故障,而aggressive模式能检测光纤和双绞线上的单向链路故障。当使用normal检测光纤故障后,标记端口为undetermined状态,但不影响流量转发,而使用aggressive模式时,检测到故障后,连续发送8s的udld message,如果此间没有任何的udld echo应答,产生desirable消息,并将接口关闭
接口下运行UDLD:udld port
全局下也可以使用udld:
udld enable(normal模式)
udld aggressive(aggressive模式)
udld message time(修改udld发送时间)
udld检测到一个单项链路故障所需时间为:2.5*时间间隔+4s;在间隔为15s时约需要41s检测单向连接端口。这刚好小于STP重新收敛用时50s
UDLD测试:在#模式下:udld reset(重启所有被udld关闭的接口),之后可以查看udld
UDLD技术不支持ATM接口(因为ATM二层是信元不是帧,而以太网接口是帧)
EtherChannel:
重复数据帧,未知单播帧,广播风暴,网络震荡等是造成环路的主要原因
STP可以做到避免环路,但不能实现负载,因此有了EC技术,可以防环也可以负载
EC的捆绑不仅支持SW和SW之间,还可以与server/PC/router等使用EC技术,与3层设备做EC技术只要是为了增加带宽(上行下行的吞吐量)
EC有三种做法:LACP(链路聚合控制,IEEE802.3ad),PAGP(端口聚合,cisco私有),强制on模式(直接指定为EC);前两种也可归为动态,后一种为静态
做EC的两端的编号可以不一致
show etherchannel:可以看到有多少个EC组
show etherchannel summary
LACP和PAGP的区别及特点:
在一个组中lacp最多支持的接口为16,pagp最多为8个;但两个都是最多只有8个端口转发数据,只是lacp用8个做备份
二者都要求以太网接口带宽至少是100M
LACP中若EC协商失败,接口直接down,不能转发数据;PAGP中若协商失败,接口还是up,交换机之间还是可以转发数据,相当于没做EC时转发数据
PAGP也可以支持安全特性:
channel-group XX mode desirable non-silent(之后协商失败接口也会逻辑down)
删除EC需要2步:default接口,no channel-group
当做on模式时,在一个交换机上敲了on模式,而在另一个交换机没敲,过一段时间才敲,EC起不来,因为配置间隔时间太长,而也没有动态检测报文,所以起不来,解决:把2台交换机上的有关接口shutdown,no shutdown重新触发
LACP因为有备份,所以可以调整端口优先级,判断那8个活动,则比较priority,若一样,则比较端口id,若一样,比较全局priority(全局下:lacp system-priority)
EC的形成原则:
1,在一个EC组中的所有端口速率,双工必须匹配(LACP只能全双工),第一个接口定下来,后面必须保持一致,不一致就抑制
2,将接口配置为access时,全部必须在相同vlan
3,如果是trunk,native vlan必须相同。trunk的封装必须一致。switchport trunk allow vlan X,X在捆绑的trunk端口上必须是相同的
4,每个端口上的应用策略必须一致(QOS)
5,端口不能启用port-security以及802.1x
6,端口不能为SPAN的源和目的端口(目的不报错,但会变为down状态,源端口直接报错)
7,STP的端口开销建议一致(唯一可以不一致的属性),多个接口捆绑成单个EC后,在STP中,被当作单条链路来计算,同时path cost值会和原物理链路有所不同
8,两边交换机的EC组号可以不一致
9,LACP最多支持16个接口,但只有有8个转发数据,PAGP支持8个接口
10,两个协议可以配置在同一台交换机上,但不能配置在同一组中
11,配好EC组后,在port-channel下配置的参数会对所有物理接口生效,但对单个物理接口配置的只对其生效(所以在配置时,所有配置都在port-channel中敲)
当做了EC之后,数据到底从那个物理口发,取决于EC load balance
EC load balance:
当将多个接口捆绑层EC组后,流量同时从多个接口被发出去,称为load balancing,对于流量以什么样的负载均衡凡是从EC组中的多个接口上发出去,channel的负载使用帧分配原理:EC可将以帧形式的二进制模式的一部分缩减为一个选择通道中某一链路的数值,以便在通道的链路之间分发帧,EC帧分发使用cisco专有的散列算法,该算法是确定性算法,如果使用相同的地址和会话信息,则总是散列到通道的同一端口。此方法可避免无序传送数据包
全局下:port-channel load-balance+参数(源,目IP,MAC,port;源目IP,MAC,port,平台不同,支持不同),源时,根据源相同,走一根;目的时,目的相同走一根;源目时,会用最后的几个bite做XOR运算,2^n=m;m根网线用最后n bite计算
show etherchannel load-balance命令,查看负载情况
负载均衡方式要根据流量的流向来判断
流量在EC中执行2层流量时,就用S-M;D-M;S-D-M
流量在EC中执行3层流量时,就用S-ip;D-ip;S-D-ip
L3-SW:
与router3层转发的不同:必须有3层功能;必须有3层接口(物理接口,包含EC接口,统称routing-port;虚拟vlan接口-svi)
在SW上开启路由功能:V4--ip routing
V6--sdm prefer dual-ipv4-and-ipv6 routing(v4和v6路由双栈功能,但需要重启生效)
show sdm prefer(查看当前栈情况)
当在接口下no switchport后,所有以switchport开头的命令失效,但其他的2层命令能敲,但也无效(执行此命令后:关闭该接口所有以switchport开头的命令;关闭该接口的所有二层技术,但不依赖二层存在的协议可以运行)
EC port在no switchport之前需要将其对应的物理接口先no switchport
3层创建接口最主要的目的就是创建route table
2层设备创建SVI主要是为了远程管理,并且就算创建了多个,但只有一个是双up
SVI 双up的条件 :该svi的vlan在vlan列表中存在
该vlan中必须包含至少一个双up的物理接口(access,trunk-allowed)
3层交换机配ip的目的就是做终端的网关
SVI接口相对于物理接口的优点:
1,SVI可以节省设备,可以将多个接口划入SVI所属的vlan,做多个设备的网关
2,SVI会自己分配带宽为1G,所以延迟小,传输速率一般比物理接口快
HA:高可用性-冗余
VPC:数据中心冗余,virtual portchannel
VSS:将多台65系列的交换机虚拟成一台
引擎冗余:
主控引擎的集中冗余模式:
1,HSA(high system availability);为了提高系统的可靠性,允许在单个路由器里面装两个RP(该模式只在7500系列上可以用),这种模式是采用“冷启动”方式,即当active RP fail后,另一个reboot路由器
2,RPP(route processor redundancy),在standby模式中,active RP同步startup配置到standby RP,如果发生指明stratup错误时,系统将切换到standby RP,然后重新加载配置,重启所有线卡,restart系统
3,RPR+(route processor redundancy plus),在RPR+模式下,standby RP完全初始化了,active RPdog太同步startup和running的配置到standby RP,即当active RP出现问题时,standby RP不需要reload,但线卡,协议,应用状态不会同步到standby RP
4,SSO(stateful switchover);SSO模式提供RPR+所提供的所有功能,另外SSO支持两个RP之间线卡,协议,应用状态信息等的同步
模式failover后在新RP上立刻转发数据包时间 failover后新RP完全加载
HAS 10min 20min
RPR 5min 15min
RPR+ 30s 11min
SSO 7s 7min
网关冗余:
Proxy-arp(代理arp)---
代理arp的作用--让主机在没有设置网关的情况下也能访问外部
代理arp使没有路由信息的主机获悉其他网络子网主机的mac
当收到主机的arp,将自己的mac回应给主机,这样,主机所有包都发给网关,网关再转发给目标主机(默认启用)cisco路由器的以太网默认开启arp代理
无法立即检测直接host的链路问题
如果有两个网关都回应了同一个arp请求,主机会选择后收到的网关
arp -a:Windows
no ip proxy-arp:关闭代理arp
clear arp-cache
当pc ping一个ip时,router收到arp包,只有router有目的ip的路有时,才回arp,把自己的mac告诉pc
代理arp的缺点:
1,转发性能永远是最差的
2,有冗余性,但切换太慢
与代理arp同时出现的技术:为了解决数据到了网关,但网关1到不了目标,从而设计了ICMP重定向:当数据包到网关1,若网关1出不去,就发送重定向给pc,pc将arp表的目的mac设为网关2(因为在回pc的arp时,两个网关都回了,所以网关1知道有网关2的存在)
当pc ping一个地址,数据包到达一个网关,但其上行链路down,icmp包会从进入该网关的接口重新发包出去,重定向后,在pc上会多出一条路由,指向新的网关,show ip route可以看到
clear ip redirect:清楚pc上的重定向表项
默认开启
在接口下,no ip redirects 关闭重定向
IRDP(icmp router discovery protocol)(host不配置网关的解决方案)
利用icmp的两种报文:路由器请求和通告报文
IRDP允许交换机使用路由器发现动态学习到达其他网段的路由。IRDP允许主机找到router。当主机在引导以后要广播或多播传送一份路由器请求报文。一台或更多台路由器响应一份路由器通告报文。交换机还可以监听RIP和IGRP路由更新用于推断路由器额位置,交换机不需要存储路由表,只需要判断数据包的发送方向,路由器定期的广播或多播传送它们的路由通告报文,允许每个正在监听的主机相应的更新它们的路由表
不是每个交换机对IRDP都支持
不管HSRP还是VRRP都是运行在A,B两台设备上,不依赖与PC和L2 SW;A,B两台设备共同创建一个ip地址(pc所写的网关)
HSRP:cisco私有;不能是A,B两设备接口的真实mac,是新的
VRRP:公有,是否真实的都可以
HSRP(hot standby routing protocol):热备份路由协议
可以实现路由设备之间的冗余,即3层交换冗余。参与HSRP协议的路由设备为ip终端提供一个虚拟ip地址,且ipx等其他网络协议与HSRP兼容
启用HSRP后,默认会关闭ICMP重定向(router上不一定关闭),可以防止主机自动学习到真实的网关地址
配置了HSRP协议的路由设备交换以下3种消息:
hello---hello消息通知其他设备,发送设备的HSRP优先级和状态,HSRP设备默认每3s发送一个hello消息
coup---当一个备用设备变成一个主动设备时发送一个coup消息
resign--当主设备要重启(reload,shutdown)或者当有优先级更高的设备发送hello消息时,主动设备发送一个resign消息
认证,优先级,虚拟ip,组号是HSRP最重要的4点
在任一时刻,配置了HSRP协议的设备处于以下6种状态:
init or disabled 初始化状态,表明HSRP未运行,修改配置或接口刚启动时处于此状态
learn 学习状态,等待活跃设备发送hello消息,收到后进入监听状态
listen 监听状态(真正选举主备),在HSRP组中,出活跃设备和备用设备外,其他设备都处于这种状态,说白了,这个状态就是用来选举的,如果被选举是备用状态或者活跃状态,就进入speak状态
speak发言状态,处于发言状态的设备定期地发送hello消息,如果在speak状态发现了更优秀的hello包,此时就转化成listen状态
standby 备用状态(备份),定期发送hello消息,随时准比检测active设备fail
active活跃状态(网关),定期发送hello消息
HRSP需要占用udp的源目1985端口
目的ip 224.0.0.2(v2的为224.0.0.102)
目的mac 0100.5e00.0002(v2为01005e000066)
hello每3s发送,hold time 10s
在HSRP中,只能有一个活跃设备和一个备用设备,其他都处于listen状态;初始时都进入listen状态,在listen状态选举两台最好的设备进入speak状态,之后选的两台再在speak交互hello包,选active和standby
HSRP的选举规则:
1,priority相同的情况下,接口ip最大的为active,次大为standby
2,优先级不同时,最大的为active,次大为standby;先比priority,再比ip
HSRP工作原理:
active设备将虚拟mac为源mac封装数据包给SW,SW绑定CAM表,之后pc以虚拟mac为目的封装,交换收到后查CAM表,转发;当active down后,会向standby发送coup报文,standby收到后自己成为active,并以虚拟MAC为源向交换机发数据包,交换机收到后修改CAM表
早期一个接口只有一个MAC地址,所以无法虚拟MAC地址,则可以在接口下用standby use-bia(将bia MAC用于虚拟MAC)
HSRP priority and preemption(抢占默认关闭)
standby XX priority YY
use-bia在抢占中会遇到问题,切换之后,mac会发生变化
standby preempt(所有组都开)
standby XX preempt(XX组开启抢占)
抢占关闭时,active 设备抢不走,只能抢standby设备
HSRP认证:standby XX authentication
HSRP中的track,可以对上行链路进行追踪,当track检测到接口down就将priority减10(默认,但可以改变,track后加参数);track工作时,能起作用的条件:active的priority-standby的priority<10;对端一定要开抢占;除了追踪接口,还可以追踪项目工程编号(全局下的track编号)
HSRP有两个version:两个版本的区别就是组播地址和mac的变化
VRRP(virtual router redundancy protocol ):虚拟路由器冗余协议
和HSRP的区别:
1,公有的
2,一个虚拟ip地址,一个虚拟mac地址;虚拟ip地址可以和真实ip地址相同;虚拟mac地址:0000.5e00.01XX,XX为组号
当虚拟ip地址设置为一台路由器的实际接口地址时,这台路由器的优先级会变成255,自动成为master
3,HSRP是一主一辅,VRRP是一主多辅。HSRP中主,辅设备都发hello包,VRRP中只有主发hello包
4,每台路由器的默认优先级为100,如果配置为0,表示不再是虚拟组中的成员(相当于关闭其VRRP功能)
5,协议号112,组播之地224.0.0.18.默认通告间隔1s,hold 3s
6,VRRP默认有抢占机制
7,HSRP支持跟踪,VRRP没有跟踪机制(不支持在技术中监控,但可以在全局配置之后调用)
当master的ip地址和虚拟ip一样时,priority可以改但不生效,track不能配置
GLBP(gateway load balancing protocol):网关负载均衡协议
GLBP是cisco私有协议,GLBP在将多台路由器配置成一个组时,也同时向用户提供一个单一的ip地址,额外增加的功能是让组内所有的成员都能为用户提供数据转发,而不存在空闲的路由器。做法是在为用户提供单一的ip的同时,每台路由器都为用户提供不同的mac地址,组内的各个成员之间也有hello数据包的交流,3s发一个,10s hold。使用组播地址224.0.0.102,udp协议,322端口
在GLBP组中一台路由器作为active virtual gateway(AVG),其他路由器作为AVG的备份,在AVG不可用时替代AVG的角色。在组中,AVG的任务只是为各组成员分配虚拟mac地址,mac地址不同,就可以同时为用户提供数据转发,用户的数据包目标mac发到谁,谁就转发数据。这些能够为用户提供数据转发的路由器为active virtual forwarders(AVFs),AVG也是AVF,只是AVG响应ARP请求,GLBP组最多使用4台网关mac,也可以有一个AVG,四台AVF,但是那台AVG不能成为AVF,也就是说他不能转发数据(不管怎么分配,只能有一台AVG,AVG+AVF=4/5,4:有一台既当AVG,又当AVF;5:有一台只当AVG)
AVG只有一台,但有一台作为备份AVG,状态为standby,但不妨碍其成为AVF
GLBP支持3种负载均衡模式:
1,host-dependent:确保主机始终使用同一个虚拟mac地址(不太好)
2,round-robin:每次轮流地分配AVF的虚拟MAC地址(初期)
3,weighted:前往AVF的流量取决于AVF的权重(推荐)
GLBP组最多可以有1024virtual routers和4个虚拟MAC地址,主的为活动网关,其他都停在listen state,可以定义优先级,1到255,然后high ip address
GLBP的抢占模式默认是关闭的。一台路由器转发用户流量的多少,可以利用weighting来控制,也可以track一个接口,接口失效节降低相应权重
组内所有成员配置相同的组号,并且如果是vlan不同,那么组号也必须是不同的
glbp XX client-cache:指定客户端的最大缓存数
glbp XX forwarder preempt:配置AVF的抢占,可加时间,过多久抢占
当track中递减数级与weight后面的lower同时存在,以lower为主;但在之后加的时候可能超过设的priority,所以可以设一个uper,加的不能超过uper
实际中HSRP不用,GLBP和VRRP用的也很少,一般专门去买负载均衡设备(F5,Array,Read-Back,国内相关厂商),因为专门设备还支持7层负载
补充知识:
span技术:
流量监控的常规技术之一,在实验中可以抓包,企业中用于监控流量
monitor session 1 source int fX/X
monitor session 1 destination int fX/X
源接口不会感知,但目的接口不能正常工作(协议down,不能转发任何流量,显示monitoring)
RSPAN技术(remote,远程span):在两交换机上创建一个vlan X,使其能在trunk中转发,之后将想监控的流量放到vlan X中(vlan X;remote-span),之后再在另一个交换机上将流量通过vlan X引入目的地
在工程中track和span技术及R_span技术经常使用