交换机基础
通过telnet配置交换机
使用telnet方式访问交换机的前提条件是什么
对交换机进行初始化配置,否则用户无法正确登录和访问。初始化配置是为交换机配置正确的网段和IP地址,以便实现交换机互联。交换机配置的工作包括:
- 配置正确的交换机IP地址,这里所说的为交换机配置IP地址,实际上是指在交换机上配置管理VLAN接口的IP地址。
- 确定与PC相连的交换机端口属于该管理VLAN
- 如果PC和交换机相连的端口在同一个局域网内,则其IP地址必须配置为同一个网段;否则,要保证PC和交换机必须路由可达。
生成树协议STP
交换机STP原理
STP(Spanning Tree Protocol)是生成树协议,该协议的原理是按照树的结构来构造网络拓扑,消除网络中的环路,避免由于环路的存在而造成广播风暴以及MAC地址表不稳定等问题。可在提高可靠性的同时又能避免环路带来的各种问题。
STP的工作过程
运行STP算法的网桥(交换机),在规定的间隔内(默认2秒),通过网桥协议数据单元(BPDU)的组播帧与其他交换机交换配置信息,完成生成树的构建。
选举根桥(Root)
通过比较网桥优先级选取根网桥,给定广播域内只有一个根网桥。一般情况下, 网桥的BID(桥ID)最小的那个作为根网桥。
每个交换机假设自己为根,互相发送BPDU报文,然后通过比较BID竞选根桥。
根端口(RP)选举
交换机通过RP来向根交换机发送信息,可以有最小的路径开销,根端口负责向根交换机发送数据,并且通过这个端口发送数据较快。
非根交换机根据根路径开销(RPC,Root Path Cost)来选举根端口。根路径开销是指接收由根桥发送的BPDU所经过的所有路径的路径开销之和,交换机在接收BPDU时累加路径开销,转发BPDU时不累加路径开销。路径开销是设置在交换机的端口上的,表示这个端口的开销。
若该交换机的根路径开销相同,则比较两个路径的上一个交换机的BID(多个端口连接的对端交换机的BID),例如,有ABCD,AEFD两个从A到达D的路径,则比较C和F的BID来选择应该将哪个端口设置为RP。
- 若交换机多个端口连接的对端交换机也相同(即BID相同),比如ABDE, ACDE,从D的两个端口分别连接E的两个端口。此时比较连接的对端交换机的端口的PID。
RP的选举是向上的。与DP的选举相反,DP是向下的,指向深层的交换机和主机。
指定端口(DP)选举
选举指定端口是相对于两个交换机的,比如有两个交换机A和B相连,
- 比较A和B的RPC,选择RPC较小的那个交换机连接的端口为指定端口。
- 若RPC相同,则选择BID较小的那个交换机连接的端口作为DP。
阻塞端口(AP)
阻塞非跟端口和非指定端口。
网络中不再有环路了。
题目
- STP协议中端口处在(Forwarding)状态可以转发用户报文
- STP协议中桥ID(BID)的构成包括?(桥优先级,桥背板MAC地址)
交换机以太网端口
端口镜像配置方法
将指定的一个或多个端口的报文复制到观察端口,用于报文的分析和监视。

先设置观察端口,再设置镜像端口。缺省情况下,系统没有配置本地观察端口,如果要修改观察端口,需要删除原来的配置后再重新配置(将和观察端口绑定的镜像端口删除掉,再配置它们的观察端口)。
一个观察端口可以观察多个镜像端口,同时,一个镜像端口也可以被很多个观察端口观察。
设置观察端口后,该端口自动配置为Trunk端口,删除观察端口后,该端口自动配置为Access端口,且加入VLAN1。
端口绑定
利用了交换机的地址学习功能,只要取消了端口的地址学习功能,那么它就只能知道你告诉它的主机应该往哪个端口发送,而你没有告诉它的,它则不知道往哪里发送,因为这个端口不能学习了,这个你告诉它的主机就是存在于它的静态地址表项中的。如果你再设置:这个端口抛弃它不知道往哪里发的报文(目的MAC不在它的静态地址表项中),那它就只能转发目的MAC地址存在于静态地址表项中的报文,从而实现端口绑定的功能。
- 取消该端口的MAC地址学习功能
- 将授权设备的MAC地址添加到该端口的静态地址表项中。
题目
negotiation 命令所在的视图是:(端口视图)
关于基于端口的镜像说法正确的是?(ABCD)
A、
在S3700和S5700交换机上可以有两个观察端口。
B、
一个观察端口可以监控多个镜像端口。
C、
一个镜像端口可以被多个观察端口监控。
D、
在配置镜像端口前,先要设置好观察端口。
关于MAC地址与端口绑定的说法正确的是?(AC)
A、
静态MAC地址表项的优先级高于动态MAC地址表项。
B、
交换机的端口被shutdown后,与该端口绑定的静态MAC地址表项和动态MAC地址表项都会被清空。
C、
端口绑定是通过禁用端口学习功能,并将授权主机MAC地址与授权端口配对信息添加到静态MAC地址表项来实现的。
D、
同一时刻、相同的MAC地址,在交换机的MAC地址表中可能会存在多个交换机端口与之绑定。
交换机链路聚合
VLAN
虚拟局域网原理
解决的问题
早期以太网基于CSMA/CD的共享通讯介质的通讯技术,当主机数目过多时会导致冲突严重,广播泛滥,性能显著下降甚至网络不可用等问题。通过交换机虽然可以解决冲突问题,但是仍然不能隔离广播报文和提升网络质量。VLAN技术可以把一个物理LAN划分为多个逻辑的VLAN,每个VLAN是一个广播域,VLAN内的主机通信就像在一个LAN内一样,而VLAN间则不能直接互通,这样,广播报文就限制在一个VLAN内。

VLAN标签
IEEE 802.1协议规定,在以太网数据帧的目的MAC地址之后,协议类型字段之前加上4字节的VLAN标签(VLAN tag),用以表示VLAN信息。
在以太网交换网络中,以太网帧主要有以下两种:有标记帧(Tagged帧)和无标记帧(Untagged 帧)。主机,服务器,Hub和傻瓜交换机只能收发Untagged帧;交换机,路由器既能收发Tagged帧也能收发Untagged帧。
接口的链路类型
现网中属于同一个VLAN的用户可能被连在不同的交换机上,且跨越交换机的VLAN不止一个,这就需要交换机间的接口能够同时识别和发送多个VLAN的数据帧。
根据接口连接对象以及对收发数据帧处理的不同,分为4种接口链路类型:Access, Trunk, Hybrid, QinQ。
Access接口
Access接口一般用于主机/服务器和交换机的相连。交换机内部只处理Tagged帧,主机和服务器不能处理Tagged帧,所以Access接口需要给收到的数据帧添加VLAN Tag,因此Access接口也必须设置自己的缺省VLAN(PVID)。配置了PVID后,该Access接口也就加入了该VLAN。

Trunk接口
Trunk一般用于连接交换机,路由器。它可以允许多个VLAN的帧带Tag通过,但是只允许一个VLAN的帧从该接口上不带Tag(即剥除Tag)。

VLAN划分
基于接口划分是最常用的VLAN划分方式。网络管理员预先给交换机的每个接口配置不同的PVID。
优点是:定义成员简单,配置过程简单明了
缺点是:移动成员需要重新配置VLAN,配置不够灵活
VLAN内互访
VLAN内互访首先要进行ARP过程,这个过程与普通的局域网内的ARP过程的区别是:
- 交换机转发数据帧时检查是否是能够通过的VLAN的帧
- MAC地址表项是:(MAC,VID,端口)
由于Trunk接口可以允许多个VLAN的帧通过链路,这被称作透传。
管理VLAN
为交换机配置IP地址,通常是指在交换机上配置管理VLAN接口的IP地址。
问题
三层交换机和路由器是如何实现VLAN间通信的?
三层交换机配置了很多VLANIF虚拟接口,并在该接口下配置了IP地址,三层交换机的各个端口是如何配置的呢?access端口配置了PVID,trunk端口配置了可允许特定VLAND的帧通过。当三层交换机收到一个帧时,通过它的目的IP地址就可以通过路由表或者MAC地址表知道它应该往哪个端口发送(假如是portA),并且知道了该目的网络属于哪个VLAN。
路由器配置了子接口,以及下面的IP地址,在子接口下配置了dot1q termination vlan,这样的话,当路由器知道要往哪个子接口转发帧时,就可以将对应的VLAN标签加在帧上。

VLAN实验
如图所示,某企业的交换机连接有很多用户,且相同业务用户通过不同的设备接入企业网络。为了通信的安全性和避免广播风暴,企业希望相同业务用户之间可以互相访问,不同业务用户不能互相访问。现在,通过在交换机上配置基于接口划分的VLAN,来满足企业的需求。

由于User1和User2是处于同一个VLAN,因此应该设置同一个网段的IP,因此我设置User1的IP是:192.168.10.1,User2的IP是:192.168.10.2。同理,我设置User3和User4的IP分别为:192.168.20.3,192.168.20.4。它们的子网掩码都是255.255.255.0。
配置SwitchA的VLAN以及交换机接口的链路类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14$<SwitchA> system-view #进入系统视图
$[SwitchA] vlan batch 2 to 3 #创建VID为从2到3的VLAN
$[SwitchA-vlan] quit #从vlan视图中退出来
$[SwitchA] int g0/0/1 #进入g0/0/1端口视图
$[SwitchA-GigabitEthernet0/0/1] port link-type access #g0/0/1端口设置为access接口
$[SwitchA-GigabitEthernet0/0/1] port default vlan 2 #g0/0/1的PVID设置为2
$[SwitchA-GigabitEthernet0/0/1] quit
$[SwitchA] int g0/0/2 #进入g0/0/2端口视图
$[SwitchA-GigabitEthernet0/0/2] port link-type access #g0/0/2端口设置为access接口
$[SwitchA-GigabitEthernet0/0/2] port default vlan 3 #g0/0/2的PVID设置为3
$[SwitchA-GigabitEthernet0/0/2] quit
$[SwitchA] int g0/0/3 #进入g0/0/3端口视图
$[SwitchA-GigabitEthernet0/0/3] port link-type trunk #g0/0/3设置为trunk接口
$[SwitchA-GigabitEthernet0/0/3] port trunk allow-pass vlan 2 to 3 #让vlan tag为2,3的帧通过配置SwitchB的VLAN以及交换机接口的链路类型,与2的配置一模一样
题目
- IEEE 802.1Q协议中,VLAN标签的长度是:(4字节)
三层交换机
三层交换机原理
VLAN间互访需要路由器的三层交换功能的支持。
但是每一个VLAN都要使用一条独占的物理连接连接到路由器的一个接口上,这对路由器是不现实的。使用Trunk技术和路由器子接口技术来解决这个问题,交换机与路由器只有一个物理连接连接到路由器的一个物理接口,然后这个物理接口被划分为多个逻辑接口。
由于路由器使用软件实现数据交换,效率不行,因此就有了三层交换机。
二层交换机和路由器的功能的集合构成了三层交换机,三层交换机有如下特性:
- 二层交换引擎:实现同一个网段内的快速二层转发
- 三层路由引擎:实现跨VLAN的三层路由转发。三层交换机的交换功能是路由器的交换功能的裁剪版,比如,IP选项,报文分片功能都被裁剪掉了;三层交换机使用精确地址匹配的方式,便于硬件实现;当收到数据帧时,发现目的MAC不在地址表项中,就转向三层路由引擎,查询目的IP地址所在的网段之后,向目的网段广播一个ARP包,发现目的MAC在地址表项中时,直接在二层进行转发,这就是后面要提到的流转发方式。
- 每一个VLAN对应一个IP网段
- 使用流交换方式。报文到报文的交换方式与流交换方式的区别:如果每一个报文都要经历第三层处理,并且业务流转发是基于第三层地址的,这种交换方式就是报文到报文交换方式;如果只是第一个报文经过第三层处理,其他后续报文只进行第二层转发,这种就是流交换方式。
三层交换机与路由器的不同
主要的不同在于三层交换功能:
- 查询路由表项时,三层交换机得到的结果是某个精确路由对应的VLAN或网段,而路由器得到的是最长匹配的网络号对应的下一跳IP地址。
- 三层交换机采用流交换方式,路由器采用报文到报文的交换方式
- 三层交换机裁剪了很多功能
题目
以下关于三层交换机的描述正确的是(A)
A、
三层交换机使用硬件支持多个VLAN的二层转发。
B、
三层交换机适合用于大型网络间的路由。
C、
三层交换机使用报文到报文的交换方式。
D、
三层交换机和同性能的路由器相比更加昂贵。
[Huawei] interface vlanif 10
[Huawei-Vlanif10] ip address 10.10.10.1 24
以上命令用于配置(B)。
A、
vlan10管理接口的IP地址。
B、
vlan10三层接口的IP地址。
C、
vlan10二层转发接口的IP地址。
D、
除vlan10外的其它vlan的路由接口IP地址。
路由器基础
通用路由平台VRP(Versatile Routing Platform):
- 以IP业务为核心,采用组件化的体系结构
- 提供了基于应用的可裁剪和可扩展的功能
题目
目前绝大多数华为设备使用的都是(B)版本。
A、
VRP8
B、
VRP5
C、
VRP3
D、
VRP2
路由器基础管理
静态路由基础
静态路由配置
串口连接

在串行接口上,可以通过指定下一跳路由或出端口来配置静态路由。
以太网连接

在以太网接口上配置静态路由时,必须要指定下一跳地址。
负载分担
两个路由器通过多条物理线路进行连接,多条物理线路对应多个网段和多个路由器接口,在每一个路由器接口上设置静态路由后,可以支持等值负载分担(ECMP,Equal-Cost Multiple Path) 。
ECMP是指到达同一个目的地有多条等价链路,流量在这些等价链路上平均分配,不会考虑链路带宽的差异。
ECMP的缺点是:在路径间带宽差异大时,带宽利用率低。
路由备份
又叫浮动静态路由。在链路正常的情况下,只有主路由在路由表中,在链路出现故障时,浮动静态路由会被激活。
设置浮动静态路由时,设置它的优先级比主路由的优先级低一些。
静态路由及路由器子接口实验
请运用静态路由,以及路由器子接口实现VLAN间通信,使得5台PC机可以互相通信。

分析:R1的g0/0/1物理端口必须划分为两个逻辑接口,因为这个端口底下有两个VLAN。同时,为了保证不同网段的主机能够跨路由器进行通信,R1和R2必须要进行静态路由设置。
我的拓扑图是下面的:

按照题目要求将PC01-PC05的IP地址和子网掩码先配置一下,等一下配置完了路由器,再来配置PC们的默认网关。
配置SWITCH1的VLAN和端口链路类型,和R1连接的g0/0/1端口要设置为trunk,和SWITCH2相连接的g0/0/4端口要设置为trunk。在系统视图下
1
2
3int g0/0/1 #进入g0/0/1端口
port link-type trunk #g0/0/1设置为trunk
port trunk allow-pass vlan 10 to 20 #因为vlan10和20的主机都有可能访问外网,因此这个链路要允许10和20的vlan帧通过1
2
3int g0/0/2
port link-type access
port default vlan 101
2
3int g0/0/3
port link-type access
port default vlan 201
2
3int g0/0/4
port link-type trunk
port trunk allow-pass vlan 10 to 20SWITCH2与SWITCH1类似。SWITCH3不需要配置,因为R2的g0/0/1对应的网段没有设置VLAN。
配置R1的逻辑接口,IP和静态路由。在系统视图下
1
2int g0/0/0
ip address 192.168.30.1 255.255.255.01
ip route-static 10.1.1.0 255.255.255.0 192.168.30.2 #R1的一个静态路由:到达10.1.1.0网络的下一条IP是192.168.30.2
1
2
3
4
5int g0/0/1
int g0/0/1.1 #在g0/0/1下面创建了一个逻辑接口
dot1q termination vid 10 #g0/0/1.1接口对VLAN TAG为10的帧去掉tag
ip address 192.168.10.1 255.255.255.0
arp broadcast enable #允许进行ARP广播1
2
3
4
5int g0/0/1
int g0/0/1.2 #在g0/0/1下面创建了一个逻辑接口
dot1q termination vid 20 #g0/0/1.2接口对VLAN TAG为20的帧去掉tag
ip address 192.168.20.1 255.255.255.0
arp broadcast enable #允许进行ARP广播配置R2的接口IP和静态路由
配置每个主机的默认网关。PC01和PC03的默认网关是192.168.10.1,因为192.168.10.1是一个逻辑接口的IP地址,与VLAN20相连接。其他的网关配置也类似。
题目
两个路由器R1和R2之间有3条链路,带宽分别是10Mbps、 20Mbps和30Mbps。如果使用等值负载分担,则R1和R2之间的总带宽为(B)
A、
20M
B、
30M
C、
50M
D、
60M
以太网帧结构
Ethernet_II帧的length类型值大于等于1536,帧长度在64到1518之间
802.3帧的length类型值大于1536,帧长度小于1500
RIP路由协议

路由环路问题

一开始,各个路由器的表项是:
1 | A: 11.4.0.0 S0 2 |
1、当网络11.4.0.0 发生故障,路由器C 最先收到故障信息,路由器C 把网络11.4.0.0 设为不可达,并等待更新周期到来通告这一路由变化给相邻路由器。如果,路由器B的路由更新周期在路由器C之前到来,那么路由器C就会从路由器B那里学习到去往11.4.0.0的新路由(实际上,这一路由已经是错误路由了)。这样路由器C的路由表中就记录了一条错误路由(经过路由器B,可去往网络11.4.0.0,跳数增加到2 )。
2、路由器C 学习了一条错误信息后,它会把这样的路由信息再次通告给路由器B,根据通告原则,路由器B也会更新这样一条错误路由信息,认为可以通过路由器C去往网络11.4.0.0,跳数增加到 3 。
3。这样,路由器 B 认为 可以通过路由器C 去往网络11.4.0.0,路由器C 认为 可以通过路由器B 去往网络11.4.0.0,就形成了环路。
解决办法
水平分割
一种消除路由环路并加快网络收敛的方法是通过叫做“水平分割”的技术实现的。其规则就是不向原始路由更新的方向再次发送路由更新信息(个人理解为单向更新,单向反馈)。比如有三台路由器ABC,B向C学习到访问网络10.4.0.0的路径以后,不再向C声明自己可以通过C访问10.4.0.0网络的路径信息,A向B学习到访问10.4.0.0网络路径信息后,也不再向B声明,而一旦网络10.4.0.0发生故障无法访问,C会向A和B发送该网络不可达到的路由更新信息,但不会再学习A和B发送的能够到达10.4.0.0的错误信息。
从接口X发出的路由更新中不能包括那些出口也为X的路由信息。
路由中毒
定义最大值在一定程度上解决了路由环路问题,但并不彻底,可以看到,在达到最大值之前,路由环路还是存在的。为此,路由中毒就可以彻底解决这个问题。其原理是这样的:假设有三台路由器ABC,当网络10.4.0.0出现故障无法访问的时候,路由器C便向邻居路由发送相关路由更新信息,并将其度量值标为无穷大,告诉它们网络10.4.0.0不可到达,路由器B收到毒化消息后将该链路路由表项标记为无穷大,表示该路径已经失效,并向邻居A路由器通告,依次毒化各个路由器,告诉邻居10.4.0.0这个网络已经失效,不再接收更新信息,从而避免了路由环路。
毒性反转
抑制
触发更新
题目
距离向量路由算法采用哪些方法来减少路由环路?(ABCD)
A、
水平分割
B、
毒性反转
C、
抑制
D、
触发更新
OSPF路由协议
LS与DV的不同
采用链路状态路由协议的路由器不是交换到达目的地的距离,而是收集所有的链路信息来维护一张网络拓扑结构图,进而根据这个拓扑图计算最佳路由。当网络拓扑结构发生变化时,只需要将相应记录而非整个数据库通知其他节点,收到信息的各路由器相应地修改自身的链路状态数据库,并重新计算路由后,就可以继续正常工作了。
OSPF
OSPF是开放最短路径优先协议,基于链路状态的内部网关协议。
Router ID
一台路由器要运行OSPF协议,必须存在Router ID,这个可以手工配置,如果没有ID号,则:
- 若系统当前配置了Loopback接口的IP地址,则选择最后配置的Loopback接口的IP作为router id。
- 若系统当前没有配置Loopback接口,则选取第一个配置并UP的物理接口的IP地址作为router id。
区域(Area)
OSPF将自治系统(AS)划分为多个区域,最重要的区域是骨干区域0,可以实现一种分级的管理。
对于物理上与骨干区域不连续的区域,需要配置虚连接(virtual links)来保持与骨干区域在逻辑上的连续性。虚连接是在两台ABR之间,通过一个非骨干区域内部路由而建立的一条逻辑上的连接通道。

区域边界路由器(ABR, Area Border Router):连接骨干区域与非骨干区域的路由器。
路由聚合
AS被划分为不同的区域后,每一个区域通过ABR相连,区域间可以通过路由汇聚来减少路由信息,减少路由表的规模。
OSPF中关键的表
邻居表
LSDB
路由表
DR和BDR

OSPF报文
有5种OSPF报文:
Hello报文:发现,维持邻居关系,选举DR,BDR
DD(Database Description)报文:用于形成LSDB
路由器使用DD报文进行主从路由器的选举和数据库摘要信息的交互,Router ID大的作为主路由器;DD报文包含LSA的头部信息,用来描述LSDB的摘要信息
LSR(LSA Request)报文:请求LSA
LSU(LSA Update):收到LSR后,应答LSA
LSACK(Link State ACK):收到LSU后,对LSU进行确认
邻居状态机

在2-way状态时,双方都已经建立了邻居关系,这时可以进行发送数据信息了。
ExStart表示双方可以发送信息了。
启动OSPF
OSPF支持多进程,一台路由器上启动的OSPF进程之间由不同的进程号区分。OSPF进程号在启动OSPF时进行设置,它只在本地有效,不影响与其他路由器之间的报文交换。
如果在启动OSPF时不指定进程号,将使用缺省的进程号1;关闭OSPF时不指定进程号,缺省关闭进程号1。
在同一个区域中的进程号必须一致。
OSPF路由协议实验
网络拓扑图如下所示,请使用OSPF路由协议配置各台路由器,使得PC1、PC2、PC3可以互相连通。

配置R1的接口IP地址,loopback接口地址
1
2int g0/0/0
ip address 192.168.1.1 241
2int g0/0/1
ip address 192.168.10.1 241
2int loopback1
ip address 192.168.31.11 24 #设置loopback接口地址配置R2,R3的,和R1类似
配置各个主机的IP和默认网关
题目
哪些类型的网络需要指定路由器?(AD)
A、
广播类型
B、
点到点类型
C、
点到多点类型
D、
非广播多路访问