//在交换机S1上创建VLAN 10与20,并将连接PC的端口配置成为Access类型接口,划入相应VLAN。交换机间的接口配置成为Trunk接口,允许所有VLAN 通过。
<Huawei>system-view
[Huawei]sysname S1
[S1]vlan batch 10 20
[S1]interface Ethernet0/0/3
[S1-Ethernet0/0/3]port link-type access
[S1-Ethernet0/0/3]port default vlan 10
[S1-Ethernet0/0/3]interface Ethernet0/0/1
[S1-Ethernet0/0/1]port link-type trunk
[S1-Ethernet0/0/1]port trunk allow-pass vlan all
[S1-Ethernet0/0/1]interface Ethernet0/0/2
[S1-Ethernet0/0/2]port link-type trunk
[S1-Ethernet0/0/2]port trunk allow-pass vlan all
//在交换机S1上创建VLAN 10与20,并将连接PC的端口配置成为Access类型接口,划入相应VLAN。交换机间的接口配置成为Trunk接口,允许所有VLAN 通过。
<Huawei>system-view
[Huawei]sysname S1
[S1]vlan batch 10 20
[S1]interface Ethernet0/0/3
[S1-Ethernet0/0/3]port link-type access
[S1-Ethernet0/0/3]port default vlan 10
[S1-Ethernet0/0/3]interface Ethernet0/0/1
[S1-Ethernet0/0/1]port link-type trunk
[S1-Ethernet0/0/1]port trunk allow-pass vlan all
[S1-Ethernet0/0/1]interface Ethernet0/0/2
[S1-Ethernet0/0/2]port link-type trunk
[S1-Ethernet0/0/2]port trunk allow-pass vlan all
//在交换机S3上创建VLAN 10与20,并将连接PC的端口配置成为Access类型接口,划入相应VLAN。交换机间的接口配置成为Trunk接口,允许所有VLAN 通过。
<Huawei>system-view
[Huawei]sysname S3
[S3]vlan batch 10 20
[S3]interface Ethernet0/0/3
[S3-Ethernet0/0/3]port link-type access
[S3-Ethernet0/0/3]port default vlan 10
[S3-Ethernet0/0/3]interface Ethernet0/0/4
[S3-Ethernet0/0/4]port link-type access
[S3-Ethernet0/0/4]port default vlan 20
[S3-Ethernet0/0/4]interface Eth0/0/1
[S3-Ethernet0/0/1]port link-type trunk
[S3-Ethernet0/0/1]port trunk allow-pass vlan all
[S3-Ethernet0/0/1]interface Ethernet0/0/2
[S3-Ethernet0/0/2]port link-type trunk
[S3-Ethernet0/0/2]port trunk allow-pass vlan al
当网络管理员按照设计搭建完公司二层网络后,启动设备。在华为交换机上默认即运行MSTP协议。
检查S1 STP状态信息在S1上使用stp root primary命令设置为根桥,然后使用命令display stp检查生成树的状态和统计信息
可以观察到,在CIST全局信息中,显示目前STP模式为MSTP,根交换机为S1自身,另外还有交换机各个接口上的STP信息。
使用命令display stp brief检查S1上生成树的状态和统计的摘要信息
可以观察到,此时S1上的端口都为指定端口,且都处于转发状态,为根交换机。
在S1上使用stp root secondary命令设置为次优根桥,然后使用命令display stp brief检查S2上生成树的状态和统计的摘要信息。
使用命令display stp brief检查S3上生成树的状态和统计的摘要信息。
可以观察到,S3上的E 0/0/2为替代端口,处于丢弃状态。
MSTID,即MSTP的实例ID,三台交换机上目前都为0,即在默认情况下,所有VLAN都处于MSTP实例0中。
假如网络管理员配置STP模式为RSTP,最终选举出来的根交换机及被阻塞的端口等结果将和目前MSTP的选举结果一致,即在MSTP的单个实例中,选举规则与RSTP一致,端口角色与状态与RSTP也一致。
PC2:ping 192.168.10.1 -t
PC4:ping 192.168.20.1 -t
可以观察到,目前VLAN 10和VLAN 20的数据包都从S2的接口E 0/0/1转发
可以观察到,在S3的E 0/0/2接口上,没有任何数据包转发,只接收到上行接口周期发送的BPDU。
此时S2与S3间的链路完全处于闲置状态,造成了资源的浪费,也导致了S1与S3间链路上数据转发任务繁重,易引起拥塞丢包。
为了能够有效的利用链路资源,可以通过配置MSTP的多实例来实现。 关闭PC上的ping测试。
//配置S1 MSTP域
使用命令stp region-configuration进入MST域视图。
[S1]stp region-configuration
[S1-mst-region]
使用命令region-name 配置MST域名为huawei。
[S1-mst-region]region-name huawei
使用命令revision-level 配置MSTP的修订级别为1。
[S1-mst-region]revision-level 1
使用命令instance指定VLAN 10映射到MSTI 1,指定VLAN 20映射到MSTI 2。
[S1-mst-region]instance 1 vlan 10
[S1-mst-region]instance 2 vlan 20
使用命令active region-configuration 激活MST域配置。
[S1-mst-region]active region-configuration Info: This operation may take a few seconds. Please wait for a moment...done.
激活域后,配置S1为两个实例的根桥。
stp instance 1 root primary
stp instance 2 root primary
//配置S2 MSTP域
在S2上做同样配置,注意,在同一MST域中,必须具有相同域名,修订级别,以及VLAN到MSTI的映射关系。激活域后,配置S2为两个实例的次优根桥。
[S2]stp region-configuration
[S2-mst-region]region-name huawei
[S2-mst-region]revision-level 1
[S2-mst-region]instance 1 vlan 10
[S2-mst-region]instance 2 vlan 20
[S2-mst-region]active region-configuration
//配置S3 MSTP域
在S3上做同样配置,注意,在同一MST域中,必须具有相同域名,修订级别,以及VLAN到MSTI的映射关系。 [S3]stp region-configuration
[S3-mst-region]region-name huawei
[S3-mst-region]revision-level 1
[S3-mst-region]instance 1 vlan 10
[S3-mst-region]instance 2 vlan 20
[S3-mst-region]active region-configuration
PC2:ping 192.168.10.1 -t
PC4:ping 192.168.20.1 -t
可以观察到,目前VLAN 10和VLAN 20的数据包仍然从E 0/0/1转发。
在S3的E 0/0/2接口上抓包观察。
可以观察到,在E 0/0/2接口上,仍然没有任何数据包转发,只有接收到的上行接口周期发送的BPDU。
关闭PC上的ping测试。
现在已经配置了MSTP多实例,但由于每个MSTP实例都是单独的一颗生成树,独立进行选举,所以在默认不变动任何生成树参数的情况下,其实每棵生成树的选举结果是一致的。
在S1上使用命令display stp instance 0 brief检查默认实例0中的生成树状态和统计的摘要信息。
在S2上使用命令display stp instance 0 brief检查默认实例0中的生成树状态和统计的摘要信息
在S3上使用命令display stp instance 0 brief检查默认实例0中的生成树状态和统计的摘要信息。
在S1上使用命令display stp instance 1 brief检查实例1中的生成树状态和统计的摘要信息。
在S2上使用命令display stp instance 1 brief检查实例2中的生成树状态和统计的摘要信息。
可以观察到,在三个实例中,选举结果是一致的,都是S3的E 0/0/2接口处于Discarding状态。 现在要实现S2与S3间的链路被利用,可以在实例1中,保持目前生成树选举结果不变,即使得VLAN 10中的HR部门内的流量通过S1与S3间的链路转发。在实例2中,配置使得S2成为根交换机,阻塞S1与S3间的链路,即使得VLAN 20中的IT部门的流量通过S2与S3间的链路转发。
//在S2上使用命令stp instance priority配置其在实例2中的优先级为0,成为实例2中的根交换机。
[S2]undo stp instance 2 root
[S2]stp instance 2 priority 0
再次查看S1实例2的信息
再次检查S3实例2信息
可以观察到,此时S2成为了实例2中的根交换机,所有端口都为指定端口,而S3的E0/0/1接口为替代端口,即S1与S3间的链路现已阻塞。
PC2>ping 192.168.10.1 -t
PC4>ping 192.168.10.1 -t
抓S3的e0/0/1接口
可以观察到,目前VLAN 10的流量都从S3的E0/0/1接口转发。
抓S3的e0/0/2接口
可以观察到,目前VLAN 20的流量都从E0/0/2接口转发。 至此,完成了MSTP的多实例的配置,并达到了流量分担的目的,有效的利用了网络资源,也同时使得S3的两条上行可以互相备份。
]]>每台设备都创建了Loopback0,地址为10.123.x.x/32(x为设备号)
R1、R2、R3使用Loopback0接口地址作为Router ID,在互联接口、Loopback0接口上激活OSPF。
//R1
[R1]ospf 1 router-id 10.123.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 10.123.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0] network 10.123.12.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0] quit
[R1-ospf-1] quit
//R2
[R2]ospf 1 router-id 10.123.2.2
[R2-ospf-1] area 0.0.0.0
[R2-ospf-1-area-0.0.0.0] network 10.123.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0] network 10.123.12.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0] network 10.123.23.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0] quit
[R2-ospf-1] quit
//R3
[R3]ospf 1 router-id 10.123.3.3
[R3-ospf-1] area 0.0.0.0
[R3-ospf-1-area-0.0.0.0] network 10.123.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0] network 10.123.23.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0] quit
[R3-ospf-1] quit
在R2上检查OSPF邻居概要信息
R3、R4上配置IS-IS,区域为49.0001,系统ID采用0000.0000.000x格式(x为设备编号),两台设备都为Level-1路由器,在互联接口、R4的Loopback0接口上激活IS-IS。
//R3
[R3]isis 1
[R3-isis-1] is-level level-1
[R3-isis-1] network-entity 49.0001.0000.0000.0003.00
[R3-isis-1] quit
[R3]interface GigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1] isis enable 1
[R3-GigabitEthernet0/0/1] quit
//R4
[R4]isis 1
[R4-isis-1] is-level level-1
[R4-isis-1] network-entity 49.0001.0000.0000.0004.00
[R4-isis-1] quit
[R4]interface GigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0] isis enable 1
[R4-GigabitEthernet0/0/0] quit
[R4]interface LoopBack 0
[R4-LoopBack0] isis enable 1
[R4-LoopBack0] quit
在R3上检查IS-IS邻居状态
创建IP前缀列表1,匹配Loopback1接口路由(A业务网段)
[R1]ip ip-prefix 1 index 10 permit 172.16.1.0 24 greater-equal 24 less-equal 24
创建IP前缀列表2,匹配Loopback2接口路由(B业务网段)
[R1]ip ip-prefix 2 index 10 permit 172.16.2.0 24 greater-equal 24 less-equal 24
创建Route-Policy hcip,并创建节点10、20,分别调用IP前缀列表1、2,打上路由标记
[R1]route-policy hcip permit node 10
[R1-route-policy] if-match ip-prefix 1
[R1-route-policy] apply tag 10
[R1-route-policy] quit
[R1]route-policy hcip permit node 20
[R1-route-policy] if-match ip-prefix 2
[R1-route-policy] apply tag 20
[R1-route-policy] quit
在R1的OSPF中引入直连路由,调用Route-Policy hcip
[R1]ospf 1
[R1-ospf-1] import-route direct route-policy hcip
在R1上查看OSPF LSDB
Loopback1、2接口路由已经被成功引入OSPF中
在R1上查看OSPF LSDB中AS-external LSA 172.16.1.0、172.16.2.0的相关信息
在R2上配置Filter-Policy对接收的OSPF路由进行过滤,只接收B业务网段的路由。
查看配置Filter-Policy前的OSPF路由表
查看配置Filter-Policy前的IP路由表中的OSPF路由
配置基础ACL
[R2]acl number 2000
[R2-acl-basic-2000] rule 5 deny source 172.16.1.0 0.0.0.255
[R2-acl-basic-2000] rule 10 permit
在OSPF中部署入方向的Filter-Policy,调用ACL 2000
[R2]ospf 1
[R2-ospf-1] filter-policy 2000 import
查看配置Filter-Policy后的OSPF路由表
查看配置Filter-Policy后的IP路由表中的OSPF路由
在IP路由表中路由172.16.2.0/24已经不存在,但是在OSPF路由表中依旧存在。这验证了对于OSPF,Filter-Policy只是限制路由加入IP路由表,不影响本地的LSDB以及LSA的传递。
在R3上查看IP路由表中的OSPF路由
R3的IP路由表中OSPF外部路由172.16.1.0/24、172.16.2.0/24依旧存在
在R3上将OSPF路由引入到IS-IS中,通过Route-Policy匹配路由标记,只引入A业务网段的OSPF外部路由。
创建Route-Policy hcip
[R3]route-policy hcip permit node 10
[R3-route-policy] if-match tag 10
[R3-route-policy] quit
在IS-IS中引入OSPF路由,调用Route-Policy hcip只引入A业务网段的OSPF外部路由
[R3]isis 1
[R3-isis-1] import-route ospf 1 level-1 route-policy hcip
查看R3的IS-IS路由表
Level-1的路由重分发表中只有172.16.1.0/24。
]]>