接着昨天的技术贴!!!
6.CSS
通过交换机集群,可以实现网络高可靠性和网络大数据量转发,同时简化网络管理。
高可靠性:集群系统两台成员交换机之间冗余备份,同时利用链路聚合功能实现跨设备的链路冗余备份。
强大的网络扩展能力:通过组建集群增加交换机,从而轻松的扩展端口数、带宽和处理能力。
简化配置和管理:集群建立后,两台物理设备虚拟成为一台设备,用户只需登录一台成员交换机即可对集群系统所有成员交换机进行统一配置和管理。
不同于 iStack 可以多台设备堆叠,对于 CSS 集群,集群中只能有一主一备两台交换机。
集群建立时,成员交换机间相互发送集群竞争报文,通过竞争,一台成为主交换机,负责管理整个集群系统,另一台则成为备交换机。
角色选举:
- 最先完成启动,并进入单框集群运行状态的交换机成为主交换机。
- 当两台交换机同时启动时,集群优先级高的交换机成为主交换机。
- 当两台交换机同时启动,且集群优先级又相同时,MAC 地址小的交换机成为主交换机。
- 当两台交换机同时启动,且集群优先级和 MAC 都相同时,集群 ID 小的交换机成为主交换机。
版本同步:
- 集群具有自动加载系统软件的功能,待组成集群的成员交换机不需要具有相同的软件版本,只需要版本间兼容即可。当主交换机选举结束后,如果备交换机与主交换机的软件版本号不一致时,备交换机会自动从主交换机下载系统软件,然后使用新的系统软件重启,并重新加入集群。
配置同步:
- 集群具有严格的配置文件同步机制,来保证集群中的多台交换机能够像一台设备一样在网络中工 作。
配置备份:
- 交换机从非集群状态进入集群状态后,会自动将原有的非集群状态下的配置文件加上.bak的扩展名进行备份,以便去使能集群功能后,恢复原有配置。例如,原配置文件扩展名为.cfg,则备份配置文件扩展名为.cfg.bak。去使能交换机集群功能时,用户如果希望恢复交换机的原有配置,可以更改备份配置文件名并指定其为下一次启动的配置文件,然后重新启动交换机,恢复原有配置。
7.Eth-trunk
可以交换机与路由器,交换机与交换机,交换机与服务器,交换机与 PC。路由器与路由器。
手工负载分担:
多少条链路聚合起来,带宽就增加多少。所有的链路都为活动状态,参与转发。比较早的协议,大部分支持链路聚合都是支持手工负载分担。
- 如果出现链路故障,还是可以通,但是带宽减少,可能出现拥塞。所以丢包。
- 如果交换机出现错连,或者逻辑故障,手工负载负担无法检测。
错连:
静态 LACP:
以 M:N 模式,M 代表活动链路,N 代表备份链路。N 可以是 0。M 最少是 1,最大 8.
如果在有备份链路情况下,如果活动链路故障,备份链路承载转发流量,带宽可以保持不变,可以做到高可靠性。
老的设备不支持 LACP 协议。所以如果这种情况。两边设置手工负载分担。
针对错连,逻辑故障问题,LAcp 会进行检测。
关于链路聚合两种方式的:
- 以流的形式负载分担:定义的属于相同源 IP,目的 IP,或者其他条件相同属于同一种流。按照不同的流给不同的链路分别承担。一个流只会在一个链路上。 这样的话,不同链路带宽利用率不一致。
- 以包的形式负载分担:根据接口的权重值。来分一定比例的包。第一个包与包之间,大小不一致。第二,可能会相同流出现乱序。 可以提高链路的利用率,但是出现报文乱序,出现报文无效。
[SW1] load-balance ?
flow Load balance per flow //以流的形式负载分担
packet Load balance per packet //以包的形式负载分担。
成员接口的带宽,流控,双工模式,全部得相同,编号连不连续无所谓。
选举:选举高优先级的交换机成为主动端。决定 LACP 的其他属性。
系统 LACP 优先级(32768),MAC。 小的优先。
接口下如果有备份接口,端口 LACP 优先级(32768),端口编号。
配置二层链路聚合:
- 创建链路聚合接口
- 选择模式(可选,如果是手工负载分担可以不配置)
- 添加成员接口 a)接口下 eth-trunk x b)链路聚合下 trunkport
- 设置系统优先级选举主动端。
- 活动链路多少条(默认是 8 条)
- 是否开启抢占(默认没有开) lacp preempt enable //开启抢占并且默认 30s。
三层链路聚合需要考虑?
- 把链路聚合接口设置为三层。
- 为其配置 IP 地址。
8.MSTP
- Stp 生成树
- RSTP 快速生成树
- MSTP 多实例生成树。
STP 和 RSTP 共享一颗生成树。所有交换链路只能走非阻塞的链路。存在如下问题:
- 部分 VLAN 不通
- 次优的二层路径
- 无法负载分担
一个 MST 域支持多个实例。
MST 域(MST Region):相同的域需要符合一定条件:
- 实例和 VLAN 映射都需要相同
- 域名要相同
- 修订版本需要相同。
MSTI代表一个生成树实例,可以包含多个 VLAN,每个 MSTI 生成树计算相互独立。不同 vlan 所属实例不相同,所走的路径也不一致。
VLAN 映射表:默认所有的 VLAN 都属于实例 0。一个 vlan 只能映射在一个 MSTI,有其他实例阻塞了端口,但是自己所属的没有阻塞,那就可以通行。 CST:把一个域当成一个交换机,相连出来的路就是 CST,跨域的流量根据 CST 来走。 IST:是各 MST 域内的一棵生成树。IST 是一个特殊的 MSTI,MSTI 的 ID 为 0,通常称为 MSTI0。 SST:如果是 STP,RSTP 都是单生成树。这个树 SST CIST:总树。需要在一个优先级最高成为总根,将整个拓扑作为一颗树。 域根:距离总根最近的端口 总根:需要在整个二层网络选一个优先级最高成为总根,也就是 CIST 的根桥 主桥:IST Master,它是域内距离总根最近的交换设备。(同域根) 端口角色:同 RSTP,MSTP 中定义了根端口、指定端口、Alternate 端口、Backup 端口和边缘端口。 端口状态:同 RSTP,MSTP 定义的端口状态有 Forwarding, Learning, Discarding。
单颗树的选举:
选举根桥:BID。(桥 ID =优先级 MAC。默认优先级:32768)最小越优先
选举交换机上选举根端口(每个交换机有且只有一个。接收 BPDU 报文,同时这个交换机距离根桥最近的端口)
- 各端口的路径开销。(一台交换机自家对比)
- 对比对端的 BID
- 对比对端的 PID
- 对比本端的 PID
在每条链路上选举一个指定端口。(每条链路只有一个,发送 BPDU 报文)
- 根路径开销。(链路上两个交换机,对比到达根桥的最短路径。)
- 本端 BID
- 本端 PID
MSTP 和 RSTP 一样可以做到快速收敛。通过 P/A 机制。
STP 为什么那么慢? 从侦听状态到学习状态需要 15s,学习状态到转发状态 15. 总共需要 30s。
为什么需要等 15 15?? 因为 STP 没有确定机制,不确定对端是否收敛好了。定了一个比较长的时间 15s,等待足够长的时间全局可以收敛完,就不会环路。
P/A 机制,就是确认机制。
什么是置位? 报文这里的 0 变成 1。
普通的 P/A 协商。(所有厂商都支持的 P/A)
刚启动起来的交换机都会认为自己是根桥,所有端口都为指定端口,端口状态都为 discarding,所以对全局发送P 置位。高优先级的设备会忽略低优先级的 P 置位报文。低优先级的交换机收到高优先级的 P 置位。停止所有端口的发送,然后同步信息。收到 P 置位的接口成为根端口。向高优先级发送 A 置位并将自己接口状态转为 forwarding 。高优先级收到 A 置位的接口成为指定端口,接口状态成为forwardsing
华为增强 P/A 协商机制。 高优先级设备发送 P 置位以后,会再发送 A 置位请求对方快速切换并转发。低优先级再发送 A 置位。完成 P/A协商。
如果拿一台华为交换机与其他厂商交换机进行 P/A 快速协商。可能出现两个设备互相协商不成功。像这种情况,就应该在华为设备接口上关闭华为增强 P/A 协商。
代码语言:javascript复制[Huawei-GigabitEthernet0/0/1]stp no-agreement-check //关闭这个端口的增强型 P/A 协商
MSTP 的配置:
默认每个交换机都有自己的域名,自己的 MAC。修订版本默认是 0,实例 0 默认所有 VLAN。
代码语言:javascript复制stp region-configuration /进入预配置
region-name HW
revision-level 1
instance 1 vlan 1 to 10
instance 2 vlan 11 to 20
active region-configuration
修改根桥:
代码语言:javascript复制[sw2]stp instance 2 root ?
primary Primary root switch //将优先级修改 0
secondary Secondary root switch //将优先级修改 4096
根保护:
代码语言:javascript复制//在指定端口,如果该接口接收到了高优先级 BPDU 报文,则将该接口设置为 discarding 状态,两个转发延迟后恢复正常。
[sw2-GigabitEthernet0/0/6]stp root-protection
BPDU 保护:
代码语言:javascript复制[sw2]stp bpdu-protection //边缘端口收到 BPDU 报文是将该接口 shutdown,并且告警。
环路保护:
代码语言:javascript复制//如果在根端口上配置,如果根端口不收到 BPDU 报文,则将该接口置位 discarding 状态。避免环路。
[sw2-GigabitEthernet0/0/6]stp loop-protection
TC 保护:
代码语言:javascript复制//如果生成树收到 TC,会删除掉没有接收到 TC 报文接口的 MAC 地址。如果攻击者不断的发送 TC报文,整个交换网络。不断删除。用户流量将全面泛洪。CPU 使用将提高带来危险。默认没有开 TC 防护。开了以后默认每 2s 处理 1 个 TC报文。
[sw3]stp tc-protection
禁止发送接受 BPDU 报文:
代码语言:javascript复制//一般是在边缘端口上设置,默认边缘端口会发送 BPDU 报文。不小配错可能导致环路。
[sw1-GigabitEthernet0/0/1]stp bpdu-filter enable
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
- Hello 代表交换机每 2 秒发送一次 BPDU 报文
- MAXage :老化时间 20s, 如果一个接口收到报文会缓存下来。然后 20 才老化。
在 STP 中非直连故障,断开的设备自认为是根桥,会发送次优 BPDU 报文,可是连接他的阻塞端口由于缓存了最优 BPDU 报文 20s,在这 20s 里面,丢弃次优 BPDU 报文。
FwDly 转发延迟 MaxHop BPDU 报文超过 20 跳就丢弃,代表无效。
如果边缘端口布置错误。是有可能出现环路。
修改 STP 计时器:
代码语言:javascript复制[Huawei]stp timer ?
forward-delay Specify forward delay
hello Specify hello time interval
max-age Specify max age
不建议修改,但是你们要会。
可以通过修改 STP 直径来修改时间参数:
代码语言:javascript复制[Huawei]stp bridge-diameter ?
//两台交换机之间最大可以多少台。这条命令可以修改,之后 STP 会这个规模自动修改合理的时间。
INTEGER<2-7> Bridge diameter
[Huawei]stp converge ? //关于故障 MAC 地址表处理
fast Fast mode //直接删除
normal Normal mode //修改老化时间加速收敛(默认)
高级生成树支持兼容低级生成树。高级的接口收到了低级的报文,在两个 hello 以后,该接口模式改为低级的模式。但是如果高版本兼容低版本以后,该接口除非手工修改,不然会保持在低版本状态。所以建议使用
代码语言:javascript复制[Huawei-GigabitEthernet0/0/1]stp mcheck
这个命令在这个接口如果兼容了低版本,在下次接口重启后恢复原本协议。
代码语言:javascript复制[Huawei]stp mcheck //全局检查。
华为计算 STP 开销的协议:
代码语言:javascript复制[Huawei]stp pathcost-standard ?
dot1d-1998 IEEE 802.1D-1998 dot1t IEEE 802.1T (默认值) legacy Legacy (华为私有的计算方式)
9.vlan
代码语言:javascript复制[Huawei-GigabitEthernet0/0/1]port link-type ?
access Access port dot1q-tunnel QinQ port hybrid Hybrid port trunk Trunk port
access 是怎么处理报文?
入方向:如果无标签打上该接口的 PVID。如果进来携带标签,检查该标签与 PVID 是否一致,如果不同则丢弃该报文,如果相同保留标签进入。
出方向:如果与 PVID 相同,撕掉标签。如果与 PVID 丢弃报文。
Trunk 是怎么处理报文?
入方向:如果无标签,加上该接口的 PVID,然后进入。如果有标签,查看本地 VLAN 表是否有该 VLAN,存在即接收,不存在则丢弃。
出方向:检查标签与允许发送列表(allow-pass),是否允许发送,如果不允许则丢弃,如果允许检查 PVID 是否相同,如果相同撕掉标签发出,如果不相同保留标签发出。
两个 PC 之间不同 VLAN,但是相同网段,使两个 PC 可以通信,需要做到的就是换标签。
PC1 到 SW1 加上 vlan 10 的标签, PC2 到 SW2 家伙是哪个的 vlan 20 的标签。像从 SW1 发到 PC1 和 SW2 到达PC 都需要特定的 VLAN。所以需要的 SW1 到 SW2 中间,可以替换标签。如 SW1 的出去的 vlan 10 到达 SW2时变为 VLAn 20 .从 SW2 出去的 vlan 20 到达 SW1 变为 VLAN10
Mux vlan
MUX VLAN(Multiplex VLAN)提供了一种通过 VLAN 进行网络资源控制的机制。
Mux Vlan 里的所有设备不管同不同 vlan,都属于一个网段。
主 VLAN : 主 VLAN 可以与其他所有 VLAN 通信。但是主 VLAN 不可以设置 VLANif
代码语言:javascript复制vlan 100
mux-vlan //将 VLAN 100 设置为 Mux vlan 的主 VLAN
从 VLAN:
- 互通型 VLAN:相同 vlan 之间可以互通,并且可以访问主 VLAN。
- 隔离型 VLAN:相同 vlan 之间不可以通信,但是可以与主 VLAN 通信。
[sw1-vlan100]subordinate ? //在主 VLAN 里设置从 VLAN
group Vlan Group //互通型 VLAN
separate Separate vlan //隔离型 VLAN
例如:
代码语言:javascript复制vlan 100
mux-vlan //将 VLAN 100 设置为主 VLAN
subordinate separate 30 //vlan 30 设置为隔离 vlan
subordinate group 10 20 //vlan 10 20 设置为互通型
[sw1-GigabitEthernet0/0/1]port mux-vlan enable //接入 Mux vlan 的接口都必须开启这条命令。
设置 Mux VLAN 需要解决内部 VLAN 与其他网段的问题。
可以接入一台新的三层,连接这个三层设备的时候,划分为主 vlan, 并且开启 mux vlan.
Voice VLAN
如果语音流量与普通业务流量一起正常处理。那么可能造成什么?出现拥塞时,处理的优先级一致,比如出现尾丢弃,语音流量也会被丢弃,但是对于语音业务而言,需要保证,低时延,低抖动,低丢包率。那么就可以设置
voice vlan 提高报文处理的优先级。
报文优先级:
802.1p:
DSCP:
接口下:
代码语言:javascript复制voice-vlan 40 enable
[sw1-GigabitEthernet0/0/1]voice-vlan mode auto
在全局:
代码语言:javascript复制voice-vlan mac-address 5489-982d-76cd mask ffff-ffff-ffff
#
voice-vlan remark 8021p 7
super VLAN
如果一个 vlan 进行隔离,需要一个网段,那么这样如果每个 VLAN 的 PC 个数不多,浪费了 IP 地址。
可以将所有的 VLAN 设置同一个网段,聚合成一个 VLAN,就可以做到多个 VLAN 一个网段的效果。聚合 vlan是不可以加入任何接口的配置先创建子 vlan, 将接口都划分给子 vlan
例如:
代码语言:javascript复制interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
创建聚合 VLAN:
代码语言:javascript复制vlan 100
aggregate-vlan //将 vlan 100 设置聚合 vlan
access-vlan 10 20 //子 VLAN 有 10 和 20
为聚合 vlan 设置 vlanif
代码语言:javascript复制interface Vlanif100
ip address 192.168.1.1 255.255.255.0
VLAN 聚合在实现不同 Sub-VLAN 间共用一个子网网段地址的同时也带来了 Sub-VLAN 间的三层转发问题。
普通 VLAN 实现方式中,VLAN 间的主机可以通过各自不同的网关进行三层转发达到互通的目的。但是 VLAN 聚合方式下,同一个 Super-VLAN 内的主机使用的是同一个网段的地址和共用同一个网关地址。即使是属于不同的 Sub-VLAN 的主机,由于它们同属一个子网,彼此通信时只会做二层转发, 而不会通过网关进行三层转发。而实际上不同的 Sub-VLAN 的主机在二层是相互隔离的,这就造成了 Sub-VLAN 间无法通信。
为了实现 Sub-VLAN 间相互通信及 Sub-VLAN 与其他网络的互通,需要利用 Proxy ARP 功能。在创建好 Super-VLAN 和对应的 VLANIF 接口后,用户需要开启设备的 Proxy ARP 功能,Super-VLAN 利用Proxy ARP 功能可以进行 ARP 请求和响应报文的转发与处理,从而实现 Sub-VLAN 之间的三层互通。
在聚合 vlanif 中开启 ARP vlan 间代理
代码语言:javascript复制[Huawei-Vlanif100]arp-proxy inter-sub-vlan-proxy enable