计算机网络: Lab3
将路由器配置成 Bridge
假设现在有 Router 1 ,要将这个 Router 1 配置成 Bridge,步骤分别为:
- 停止使用 Routing,所以要
no ip routing
- 然后配置 Bridge 的协议是 ieee,优先级是 128
- 再对两个 FastEthernet 进进配置
- 将它们都设置成 bridge-group 1,并暂时停止使用 spanning-tree 特性
- 注意要
no shutdown
可以用以下命令完成。
Router1> enable
Router1# configure terminal
Router1(config)# no ip routing
Router1(config)# bridge 1 protocol ieee
Router1(config)# bridge 1 priority 128
Router1(config)# interface FastEthernet0/0
Router1(config-if)# bridge-group 1
Router1(config-if)# bridge-group 1 spanning-disabled
Router1(config-if)# no shutdown
Router1(config-if)# interface FastEthernet1/0
Router1(config-if)# bridge-group 1
Router1(config-if)# bridge-group 1 spanning-disabled
Router1(config-if)# no shutdown
Router1(config-if)# end
Router1# clear bridge
Router1# clear arp-cache
网桥的学习
网桥可以通过设置之间的发包来学习到哪个设置在本网桥的哪个端口。假如现在有结构如下
按照上面的命令来配置 3 个网桥,这里要注意的是 bridge-group 都是 1,bridge 也是 1,否则它们会被看成是不同的组!
然后每个设备都互相发一下包,让 Bridge 都学习。
PC1% ping 10.0.1.21 -c 10
PC2% ping 10.0.1.11 -c 10
PC2% ping 10.0.1.41 -c 10
PC3% ping 10.0.1.21 -c 10
来看看这三个网桥的学习情况
Bridge 1
Bridge 2
Bridge 3
改变网络结构
现在我们尝试改变一下网络结构,再来观察是否能 Ping 通。
假如现在将 PC2 到 HUB2 断开,将 PC2 连接到 HUB4 上。然后 PC1 Ping 到 PC 2
PC1% ping 10.0.1.21 -c 10
结束是还是可以 Ping 通的
首先 Bridge 2 是不知道 PC2 已经被移到新的位置了,所以第一次是不能发成功的,这里的表现为卡在 PING 10.0.1.21 (10.0.1.21) 56(84) bytes of data
这一行。最终 ARP 和 ICMP 都不能发成功。这时候 Bridge 还是不会放弃的,下一次 ICMP 从 PC 1 发出后会广播到所有的设备,当 PC 2 收到这个 ICMP 后,会做响应,这时候所有的 Bridge 都会更新 PC 2 新位置。
有了这个结论后,我们再来试试别的 PC,将 PC3 从 HUB3 断开,连接到 HUB4 上,再 PC1 Ping 到 PC3
PC1% ping 10.0.1.31
还是可以 Ping 通的。
因为现在 Bridge 已经都更新了,所以 PC3 Ping 回 PC1 也是能够成功的。
生成树协议
我们来构建如下网络结构。
这里很容易就出现循环发包的情况,如
PC3 -> R3 -> R2 -> R4 -> R3 -> ...
为了解决这个问题,我们要在所有的 Bridge 里开启生成树模式,可以用以下命令完成配置。
Router1# configure terminal
Router1(config)# interface FastEthernet0/0
Router1(config-if)# bridge-group 1
Router1(config-if)# no bridge-group 1 spanning-disabled
Router1(config-if)# interfinace FastEthernet0/1
Router1(config-if)# bridge-group 1
Router1(config-if)# no bridge-group 1 spanning-disabled
Router1(config-if)# exit
完成所有 Bridge 的生成树配置后,可以用以下命令来查看当前 Bridge 在生成树里的角色信息。
Router1# show spanning-tree
假如现在 PC3 Ping 到 PC2 就不会出现循环发包的情况了,而且只要每个 Bridge 配置了生成树后,它们自己就会选出哪个是 Root,根本不用我们操心怎么构建整个生成树。
改变网络结构
我们尝试改变网络结构,如断掉连接 Bridge 1(这个是 Root) 的线,这时候 Bridge 之间的 BPDU 就会不断互相发,来更新生成树,所以只要等一会新的生成树又会被构建起来,发包也是可以成功的。
PC1% ping 10.0.1.41 -c 100
修改 Root
生成树的 Root 一般是由最大 Priority 来确定的,这里全部都是 128 ,所以要看 Bridge 的编号来确定,因为 Bridge1 算是里面最大(优先级),所以这个 Bridge 会选成 Root。
现在我们尝试修改 Bridge 5 的 Priority,将 Priority 降低,如无意外 Bridge 5 会被选成 Root。
Router5# configure terminal
Router5(config)# bridge 1 priority 64
Router5(config)# end
使用命令 show spanning-tree
可以看到 Bridge 5 在生成树中的角色信息。
Bridge 和 Router 混用
现实生活中一般都是 Bridge 和 Router 一起来使用的,如图
Bridge 的配置还是和前面一样,Router 配置命令如下
Router2# configure terminal
Router2(config)# ip routing
Router2(config)# ip route 0.0.0.0 0.0.0.0 10.0.3.3
Router2(config)# interface FastEthernet0/0
Router2(config-if)# ip address 10.0.3.2 255.255.255.0
Router2(config-if)# no shutdown
Router2(config-if)# interface FastEthernet1/0
Router2(config-if)# ip address 10.0.1.2 255.255.255.0
Router2(config-if)# no shutdown
Router2(config)# end
配置所有信息后,PC 之间互相 Ping 都是成功的。