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转发原理:
http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/
http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/
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转发原理:
http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/ 8
http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/ http://blog.iyunv.com/share_technology_go/article/details/
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中出入口规则:
http://blog.iyunv.com/share_technology_go/article/details/
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 技术经常使用
版权声明:本文为博主原创文章,未经博主允许不得转载。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com