在上一篇文章有讲到核心路由器的基础配置,这一篇轮到它的下层,交换机的配置了(如下图S3700和S5700,以及它们连接的部分)
这里路由器的配置根据交换机的连接方式分两部分来讲
一种是交换机的单独连接或者两台交换机之间的直接连接,只涉及到交换机的基础配置
另一种是三台或者多台交换机的交叉连接,会涉及到STP
单独一台交换交换机连接路由器和终端,只涉及到交换机划分vlan、熟悉各接口的类型(access、trunk、hybrid),这里没有什么需要理解的,只需要知道一些命令就可以了:
创建VLAN:vlan 10;vlan batch 10 20 查看VLAN:dis vlan
配置Access接口:port link-type access;port default vlan 10
配置Trunk接口:port link-type trunk;port trunk allow-pass 10 20或者all
配置完成后可以使用display port vlan命令来查看接口的类型
配置Hybrid接口:Hybrid类型接口介于Access和Trunk接口之间,可自主定义端口上能接受和转发哪些VLAN Tag的帧,并可决定VLAN Tag是否继续携带或者剥离。
会用到的命令(和上面一样,都是在接口视图下配置):undo peot default vlan;
port link-type hybrid;port hybrid untagged vlan 10;port hybrid peid vlan 10
上面讲了单台交换机连接路由器和终端的配置,当然对于两台交换机的直连也适用,但是这里需要说明一点:两台交换机的直连也会触发交换机默认启动的STP,这时可以使用stp disable命令关掉
下面我们来讲一个特殊的需求,就是通过配置路由器或者三层交换机实现不同网段之间的PC相互通信
单臂路由器的配置:配置路由器的子接口并设置IP地址,作为终端下不同网段PC的网关。
如:interface GigabitEthernet 0/0/1.1;ip address 192.168.1.254 24
这时不同网段之间的PC之间依然无法通行,还需要配置路由器子接口封装VLAN
如:dotlq termination vid 10;arp broadcast enable
三层交换机的配置:创建对应VLAN的VLANIF接口,并配置对应的IP地址
如:interface VLANif 10;ip address 192.168.1.254 24
终于交换机的另一种配置类型,即STP。STP方面其实需要配置的并不多,重在理解吧。
我说一下我自己的理解:为什么会用到STP,或者说需求是什么呢,就是好多台交换机交叉连接在一起,数据包到达同一个终端会有好几条路线,使用STP的目的就是改变交换机的端口状态,阻塞一些端口,放行一些端口。
这一过程是通过一个叫BPDU的东西实现的。STP协议帧采用了IEEE802.3封装格式,其载荷数据被称为BPDU。具体的BPDU的种类和格式在这里就不讲了。
这里只要知道STP的实现主要是通过在交叉连接的交换机之间泛洪BPDU通告和改变交换机的端口状态来实现的…….
我们重点讲的是STP树的形成过程:首先是选举根桥(Root Bridge),然后确定根端口(Root Port,RP)和指定端口(Designated Port,DP),最后阻塞备用端口(Alternate,AP)。
选举根桥:运行STP协议的交换机会相互交换STP协议帧,即BPDU。简单点说就是交叉连接的交换机每一台都会产生和接收BPDU,然后通过比较自己的和别人的里面的BID的值,把值最小的选为根桥,根桥的作用是整个交换机网络的逻辑中心 。
确定根端口:根端口是由非根桥产生,每一台非根桥只会产生一个根端口,非根交换机依据根路径开销,即端口的速率(pid)来确定非根桥的根端口,根端口的作用是完成与根桥之间…的交互。
最终的结果,最终的目的就是形成端口状态,根据是否可以接收和发送STP和用户数据帧分为:去能(Disabled)、阻塞(Blocking)、侦听(Listening)、学习(Learning)、转发(Forwarding)
总之,关于STP这一块比前面我们讲到基础配置会比较复杂,
因为它涉及到协议了嘛。所以我也是想着怎么给大家解释清楚
这个,所以后来想着我只讲工作过程吧(基础的概念就不去讲了,
就当是大家都有一定的基础上来看这篇文章,并且那些
基础的概念或者原理什么的其他的参考书或者网上都有)
包括现在要讲的STP
和后面依次要讲的OSPF和BGP
下面,我们用一个简单的例子来粗略地说明一下端口的状态是如何迁徙的,如图4-13所示。
(1)假设交换机S1、S2、S3大概在同一时刻启动,各交换机的各端口立即从Disabled状态进入到Blocking状态。由于处于Blocking状态的端口只能接收而不能发送BPDU,所以任何端口都收不到BPDU。在等待Max Age的时间(缺省为20s)后,每台交换机都会认为自己就是根桥,所有端口的角色都会成为指定端口,并且端口的状态迁徙为Listening。
(2)交换机的端口进入Listening状态后,开始发送自己产生的Configuration BPDU,同时也接收其他交换机发送的Configuration BPDU。
假定S2最先发送Configuration BPDU,当S3从自己的GE0/0/2端口收到S2发送的Configuration BPDU后,会认为S2才应该是根桥(因为S2的BID小于S3的BID),于是S3会把自己的GE0/0/2端口由指定端口变为根端口,然后将自己重新产生的、根桥设置为S2的Configuration BPDU从自己的GE0/0/1端口发送出去。
当S1从自己的GE0/0/1端口接收到S3发送过来的Configuration BPDU后,会发现自己的BID才是才是最小的,自己更应该成为根桥,于是立即向S3发出去自己的Configuration BPDU。当然,如果S1从自己的GE0/0/2端口接收到S2发送过来的Configuration BPDU,也会立即向S2发区自己的Configuration BPDU。
S2和S3收到S1发送的Configuration BPDU后,会确认S1就是根桥,于是S2的GE0/0/1的端口和S3的GE0/0/1端口都会成为根端口,S2和S3会从各自的GE0/0/2端口发送新的Configuration BPDU。然后,S3的GE0/0/2端口会成为备用端口,进入Blocking状态,S2的GE0/0/2端口仍然为指定端口。
因为各交换机发送BPDU的时间先后带有一定的随机性,所以上述的过程并不是唯一的。但是,无论各个交换机端口最开始的状态如何,也无论中间的过程差异如何,最终的结果总是确定而唯一的:BID最小的交换机会成为根桥,各端口的角色会变化成为自己应该扮演的角色。
端口在Listening状态持续Forward Delay的时间长度(缺省15s)后,开始进入Learning状态。注意,S3的GE0/0/2端口已经变成了备用端口,所以其状态会成为Blocking状态。
(3)各个端口(S3的GE0/0/2端口除外)相继进入Learning状态后,会持续Forward Delay的时间长度(缺省15s)。在此时间内,交换机可以开始学习Mac地址与这些端口的映射关系,同时希望STP树在这段时间内能够完全收敛。
(4)然后,各端口(S3的GE0/0/2端口除外)相继进入Forwarding状态,开始用户数据帧的转发工作。
配置STP
[S1]stp priority 4096
//设置设备的桥的优先级(步长为4096,最小为0,缺省为32768)
[S1]stp root primary
//之间指定S1为根桥
[S1]stp root secondary
//指定S1为备份根桥
使用命令display stp [interface interface-type interface-number]
[brief]来查看生成树的状态信息与统计信息