本学期学习了路由与交换技术,因此将其中一些重点内容记录下来,代码部分多为伪代码,只标记了重点步骤,一些进入接口、接口类型等基本操作多已省略
在学习时避免不了计算机网络的知识,此部分知识可看↓:
计算机网络详细笔记【湖科大教书匠,内含B站链接】
一、交换机
1. 双工模式
双工模式是指接口传输数据的方向性。接口在全双工模式下,表示可以同时在收发两个方向上传输和处理数据,若是半双工则同一时间只能收收或发。华为交换机默认启用自动协商机制设置模式,因此若我们要强制设置的话需要执行以下语句
undo negotiation auto //关闭该接口的自动协商功能
speed 10 //该接口速率为10Mbit/s
duplex half //设置为半双工模式,全双工则把half变为full
2. MAC地址
交换机上存储映射关系的逻辑表叫作MAC地址表**(告诉交换机数据怎么走)**
display max-address //查看当前交换机的MAC地址表
//静态配置的条目不会老化且优先级高于动态学习得来的
//配置静态地址,意思为要去MAC地址要通过接口A,在vlan1(默认就是vlan1)下有效
mac-address static MAC地址 接口A vlan 1
display mac-address aging-time //查看当前交换机的动态条目老化时间
mac-address aging-time (秒数) //设置老化时间,如果为0表示禁用老化功能
3. VLAN
VLAN
(Virtual LAN虚拟局域网)的根本作用就是让交换机具备分隔广播域的能力
数据帧类比为乘客;VLAN
是公交车。VLAN
技术通过为数据打上标签从而让交换机知道这是属于哪一辆公交车的乘客,即使公交车A
和公交车B
的目的地相同,但是A
的乘客也是不能搭B
车的。因此划分VLAN
后洪泛也只是洪泛同一个VLAN
的地址
//以下语句在系统视图下进行
vlan 2 //在交换机创建VLAN2并进入此VLAN配置视图
vlan batch 10 20 //创建VLAN10和VLAN20
vlan batch 10 to 20 //创建VLAN10至20
display vlan 数字 //查看当前交换机所有VLAN,若有数字则看对应VLAN信息
display vlan 10 verbose //查看VLAN10的详细信息
只有设置了接口类型后才能知道这个接口与哪个VLAN绑定,通过接口的允许通过的VLAN进行绑定
若需要具体例子可看👉VLAN原理与应用【eNSP实现】
Access接口
发送出来的数据会去除
VLAN
标签;进入的数据会打上VLAN
标签。常用于终端设备与交换机之间
终端接收到的数据是最终数据,不能有标签。终端没有为数据打标签的功能,因此需要帮助打标签便于在VLAN
中转发注意:交换机与路由器连接的接口也需要使用access接口。这是因为路由器中的消息也不带VLAN标签,就像终端一样,保证路由器的数据能够进入交换机领域,数据由路由器进入交换机是会被打上默认标签,接着猜按照交换机间VLAN的规则行走。简单理解就是把路由器当作终端
//在系统视图或以上的视图下执行
interface e0/0/1 //进入e/0/1接口
//在接口视图下执行
port link-type access //设置接口类型为access
port default vlan 5 //只允许VLAN5的数据进入或发送
Trunk接口
发送出去的数据有
VLAN
标签(为了让对方知道数据划分);接收的数据也有VLAN
标签(知道对方数据划分)。常用于交换机与交换机之间
交换机与交换机之间会有多个VLAN
流量,因此要正确转发需要打上标签进行发送
//在接口视图下执行
port trunk pvid vlan 4 //将Trunk的PVID改为4
port link-type trunk //设置接口类型为trunk
port trunk allow-pass vlan 5 //只允许VLAN5的数据或者不带VID的数据进入或发送
Hybrid接口
既有
Access端口
的特点,也有Trunk端口
的特点
根据需要对某些接口设置带标签(需要Trunk
的地方),对某些设置不用带标签(需要Access
的地方)
//在接口视图下执行
port link-type hybrid //将接口类型设置为Hybrid
//接口接送Vlan10和Vlan20的数据时带上各自标签,其中vlan也可以用to语句或者valn all等
port hybrid tagged vlan 10 20
//接口接送所有VLAN数据时都不带标签
port hybrid untagged vlan all
//当用了untagged后意味着去标签,但是终端设备发送数据时又没有打标签的功能,因此需要设置端口的pvid,即当设置了去标签时,从这个端口出去的数据都会打上设置好的pvid标签
port hybrid pvid vlan 5 //设置此端口的默认VLAN为Vlan5
GVRP
全称为通用属性注册协议。管理员手动配置的
VLAN
为"静态VLAN
",通过GVRP自动学习到的VLAN为"动态VLAN"GVRP
不仅需要在端口(必须是Trunk)上进行配置,也需要在交换机全局上进行配置。GVRP
是单向协议,只有进入的方向才会动态学习,如下图
若需要具体例子可看👉GVRP基础配置【eNSP实现】
//在系统视图下执行
gvrp
//保证所有使用GVRP的接口都是trunk接口
//在接口视图下执行,每个需要通告消息的接口都需要配置
gvrp
配置完所有接口后并启动GVRP
协议后
由LSW1
创建一个VLAN10
,则LSW2
的G1
会动态学习到VLAN10
,G2
不会学习到;LSW3
的G1
会学习到。
此时若想要G2
学习到VLAN
,可以在LSW3
上创建VLAN10
,则箭头方向会反过来,G2
就可以学习到了。
4. 生成树协议STP
由于通信只靠一条线路很容易出现故障(一条路不通就没得走了)。因此在实际线路中会有很多环路,但是环路一多很容易产生广播风暴(交换机互相转发造成死锁,
MAC地址表
不断更新),为了解决这个问题,出现了生成树协议。
其原理是在拥有冗余链路的交换环境中,既保证每个节点可达,又能打破网络中的逻辑环路。
其中一个有效的方法是通过判断当前端口是否适合转发数据(会不会环路),若不合适则阻塞
若需要具体例子可看👉生成树协议STP的原理与应用【eNSP实现】
若需要具体例子可看👉STP计时器的理解与应用【eNSP实现】
功能
- 消除环路:
STP
可以通过阻塞冗余端口,保证交换网络无环且连通 - 链路备份:当正在转发数据的链路因故障而断开时,
STP
会马上检测到这一情况,并根据需要自动开启某些处于阻塞状态的冗余端口,以迅速恢复交换网络的连通性
具体实现
执行选举、赢得选举的端口成为转发端口,剩下的端口自然成为阻塞端口
- 根网桥(根交换机):这是交换网络中的一台交换机,它将成为
STP
树的树根 - 根端口:这是交换网络中的一些端口,负责转发数据
- 指定端口:这是交换网络中的一些端口,负责转发数据
- 预备端口:这是交换网络中的一些端口,处于阻塞状态,不能转发数据。预备端口并不是选举出来的,而是在所有选举中全部落选的端口
选举角色 | 参选者 | 选举范围 |
---|---|---|
根网桥 | 交换机 | 整个交换网络 |
根端口 | 端口 | 每台交换机 |
指定端口 | 端口 | 每个网段 |
- 整个交换网络:一整个二层广播域
- 每台交换机:以自身为单位,在多个端口中选举
- 每个网段:指以两个或两个以上的网卡为边界的一段物理链路
- 选举根网桥:每个
STP
网络中都有且只有一台根网桥,作为根网桥的这台交换机就是STP
所构建的生成树的根 - 选举根端口:非根交换机会在自己的所有端口之间,选出距离根网桥最近的端口作为根端口
- 选举指定端口:在直连的两个端口之间选择出一个距离根网桥最近的端口为指定端口
- 阻塞剩余端口:选出根端口和指定端口后,
STP
会把那些既不是根端口,也不是指定端口的其他所有端口置于阻塞状态
桥协议数据单元BPDU
- 配置BPDU:在初始形成
STP树
的过程中,各STP交换机
都会周期性地(默认为2
秒)主动产生并发送Configuration BPDU
(配置BPDU
)。在STP树
形成后的稳定期,只有根网桥才会周期性地产生并发送Configuration BPDU
;相应地,非根交换机会从自己的根端口周期性地接收到Configuration BPDU
,并立即被触发而产生自己的Configuration BPDU
,且从自己的指定端口发送出去。 - 拓扑变化通知BPDU:是非根交换机通过根端口向根网桥方向发送的。当非根交换机检测到拓扑变化后就会发送出去。
根网桥如何选举?
选举范围是每台交换机
交换机之间相互对比的参数是"桥ID
"桥ID
是由16比特优先级加上48比特的MAC地址构成的,其中桥ID
最小的当选MAC
地址是自带的,优先级可由管理员设置,16
比特即0~65535
,默认优先级为32768
- 在交换机刚连接到网络中时,每台交换机都会以自己为根网桥,从所有启动的端口向外发送BPDU
- 接着收到BPDU的交换机则会用对方BPDU中的根网桥ID与自己的根网桥ID进行对比,如果对端BPDU中的根网桥ID数值小,交换机就会按照对方的根网桥ID修改自己BPDU中的根网桥ID,这也就表示这台交换机承认了选出来的根网桥。
根端口(Root Port或RP)如何选举?
选举范围是每台非根交换机,从自己所有启动的端口中选举一个根端口
- 选择路径开销(Root Path Cost,RPC)最低(路径权值最低)的端口【到根网桥最近】
- 若多个端口RPC相等,选择对端桥ID最低的端口(对端交换机BID最小的端口)
- 若有多个端口对端桥ID相等,选择对端端口ID(PID,优先级【0~240,华为默认128,16的倍数】和端口号【g0/0/1,小的当选】)最低的端口
指定端口(Designated Port)如何选举?
参选者是同处于这个网段中的所有端口【不包括已经被选举为根端口的端口】
- 选择路径开销(Root Path Cost,RPC)最低(路径权值最低)的端口
- 若多个端口RPC相等,选择桥ID最低的端口(直连交换机BID最小的端口)
- 若有多个端口对端桥ID相等,选择端口ID(PID,优先级【0~240,华为默认128,16的倍数】和端口号【g0/0/1,小的当选】)最低的端口
阻塞剩余端口
在物理环路网络
STP
域中,当一个端口既不是根端口也不是指定端口时称为预备端口
预备端口会处于逻辑的阻塞状态,这类端口不会接收或发送任何数据,但它会监听BPDU
。在网络因为一些端口出现故障时,STP
会让==预备端口(Alternate Port)==开始转发数据,以恢复网络正常通信
端口状态
- 阻塞状态(Discarding):这是一种稳定状态,阻塞状态表示如果这个端口进入转发状态的话,
STP
域中就会出现交换环路。这时端口接收并处理BPDU
,不发送BPDU
,不学习MAC
地址表,不转发数据 - 侦听状态(Listening):这是一种过渡状态,这时端口接收并处理
BPDU
,参与STP
计算,不学习MAC
地址表,不转发数据 - 学习状态(Learning):这是一种过渡状态,这时端口接收并处理
BPDU
,参与STP
计算,学习MAC
地址表,不转发数据 - 转发状态(Forwarding):这是一种稳定状态,也是根端口和指定端口的最终状态。这时接收并处理
BPDU
,参与STP
计算,学习MAC
地址表,转发数据 - 未启用(Disabled):端口未启用,什么也干不了
配置
//以下在系统视图下执行
stp enable //在交换机上启动stp服务(实际上默认就是启动的)
stp mode stp //华为交换机默认STP模式是MSTP,因此需要进行模式修改
stp priority 4096 //设置STP优先级,范围0~61440,且为4096倍数
display stp //查看STP状态,如果根网桥BID与本地交换机BID相同说明本地交换机就是根网桥
display stp brief //查看交换机上的STP端口角色
stp timer forward-delay 200 //转发延迟设置,单位为厘秒(0.01s)
stp timer hello 1000 //修改hello计时器时间(发送配置BPDU时间),默认为2秒
stp timer max-age 2000 //修改保存BPDU时间,默认为20秒。当STP环境中发生故障时,若处于阻塞状态的端口(预备端口)无法从对端的指定端口收到BPDU,那么在MaxAge计时器超时候,交换机会重新计算STP
//三个计时器值的设置需要满足以下条件
2*( 转发延迟-1)>=MaxAge>=2*(Hello时间+1)
//在系统视图下执行
stp bridge-diameter 直径 //指定STP网络直径,让STP根据直径自动计算出适合这个网络的计时器数值
5. 快速生成树协议RSTP
一个处于阻塞状态的端口所在的交换机由于网络故障,没有再接收到任何
BPDU
而触发交换机重新计算STP
,到STP
重新计算后,相应端口进入转发状态,需要花费50
秒时间,随着网络规模增大,全网新执行STP
收敛的时间会变得更长,这是不能接受的。STP
过慢是RSTP
着意希望解决的问题
对于传统STP
中的非根非指定端口,RSTP
将其分为了两种情况:预备端口(AP)和备份端口(BP)
- 如果这个端口接收到的更优
BPDU
是由其他网桥转发过来的,代表其为预备端口,这类端口可以在根端口及其链路出现故障时,接任根端口的角色,为交换机和根网桥之间提供另一条转发通道 - 如果这个端口接收到的更优BPDU是由本网桥转发过来的,代表其为备份端口,这类端口可以在根端口及其链路出现故障时,接任指定端口的角色,为根网桥与那个物理网段之间提供另一条转发通道
如果一台交换机根端口进入丢弃状态,且这台交换机上有预备端口,那么这个根端口的所有预备端口中,优先级最高的会立刻接任根端口的角色。若对端设备处于转发状态的话,则预备端口会立刻进入转发状态,不需要等待任何计时器和过渡;备份端口转变为指定端口同理,不过可能有过渡状态
为什么可以不需要计时器?
RSTP
将端口定义为两种类型:点到点类型和共享类型。边缘端口属于点到点端口中的一种特殊类型
对于非边缘的点到点类型,RSTP
针对点到点链路的指定端口引入了一种P/A(Proposal/Agreement)
机制用来提高收敛效率(无需计时器)当故障链路恢复后,传统的
STP
需要30
秒才能重新收敛更新状态,而P/A
机制通过发送Proposal
消息告诉对方字要立刻进入转发状态,对方收到Proposal
消息后,先确认消息来源是不是根端口,确认完毕后为避免环路而阻塞自己所有非边缘指定端口,这个过程叫P/A
同步。完成同步后,返回Agreement
消息同意消息来源切换到转发状态。当消息来源收到Agreement
后就可以进入转发状态如果一台交换机通过自己的指定端口发送了
Proposal
,但没有接收到对方【比如终端设备】相应的Agreement
,或者这台交换机的指定端口类型是共享型,那么这个端口就会回归传统STP
状态转换的方式,也就是30
秒后进入转发状态
特殊类型的端口-----边缘端口
如果交换机的端口连接的是终端设备而不是其他交换机的端口,那么这类端口进入转发状态不可能造成环路。因此,让连接终端设备的端口直接过渡到转发状态只会提高网络的效率,并不会引入任何风险
当然交换机并不知道自己的哪些端口连接的是终端设备。所以,如果希望这些边缘端口实现快速收敛,需要管理员通过手动配置来为交换机指定边缘端口。在将端口配置为边缘端口之后,RSTP
会认为这些端口不会再下游产生环路,因此在计算拓扑时就不会考虑这些端口
若需要具体例子可看👉RSTP协议的原理与应用【eNSP实现】
配置
//以下在系统模式下执行
stp mode rstp //设置华为交换机STP模式为RSTP
stp root primary //设置当前交换机为根网桥,优先级被固定为0
stp root secondary //将当前交换机设置为次根网桥,优先级被固定为4096
stp edged-port default //(系统视图)将交换机所有端口默认设置为边缘端口
//以下在接口模式下执行
stp edged-port enable //将交换机上指定端口设置为边缘端口
stp bpdu-protection //让边缘端口在接收到BPDU消息时被交换机直接禁用,而不会参与STP计算
6. 多生成树协议MSTP
STP
与RSTP
无法解决划分了VLAN
环境中的路由环路问题,因此有了MSTP
以VLAN
为单位进行计算,管理员可以根据自己需求将一个或者多个VLAN划分到一个多生成树实例(MST Instance,MSTI)
中。此后交换机可以以MSTI为单位进行收敛,为每个MSTI
收敛出一个独立的生成树。
如:Instance1:VLAN1、VLAN2
Instance2:VLAN3
注意:一个Instance中可以包含多个VLAN,但一个VLAN只能属于某一个Instance一个交换机可以拥有多个
VLAN
,因此交换机也就会多个实例(Instance)--VLAN
映射关系。MSTP
将相同实例—VLAN
映射关系的交换机划分到同一个MST域
中
- 在域内,域内各台交换机的
MSTP
会以每个实例为单位,计算出实例在域内的生成树- 在全网,所有交换机的
MSTP
都会以交换机为单位,计算出一个全网的总生成树,这个生成树被称为公共和内部生成树CIST,CIST
的根网桥为整个网络中优先级最高的交换机,称为总根- 在域间,所有交换机上的
MSTP
会以每个域为单位,计算出一个域生成树。这个生成树被称为公共生成树CST,CST
的根就是总根所在的域
MSTP
根据不同的数据对不同的端口进行阻塞,并没有哪条链路会被完全阻塞,每一条链路都是有条件的阻塞,链路利用率会得到提高且交换机的转发工作负载也得到了分担
若需要具体例子可看👉MSTP原理与应用【eNSP实现】
配置
//在系统视图下执行
stp region-configuration //进入MST域视图
//在MST域视图下执行
check region-configuration //在MST视图下的操作,查看当前域配置
region-name 名字 //指定这个MST域使用的名称
instance 10 vlan 10 //建立实例10和VLAN10的映射关系
active region-configuration //激活MST域中配置的参数
//一下在系统视图下执行
stp instance 10 root primary //为实例10指定根网桥
stp instance 10 root secondary //为实例10指定次根网桥
display stp brief //查看stp各接口在不同实例中的信息
7. 二层交换机链路聚合
所谓链路聚合就是多条线路拥有共同的功能,实现更大带宽。而在交换机中提供了类似机制。聚合链路必须在两端交换机上同时都做,且物理链路必须在同一组中才能发挥作用
若需要具体例子可看👉Eth-Trunk链路聚合理解与应用【eNSP实现】
//在系统视图下进行
interface Eth-Trunk 1 //创建并进入聚合链路组1,一台设备可创建多个聚合组,聚合组编号本地有效
display interface Eth-Trunk //查看交换机链路聚合情况
//在链路组视图下进行
mode manual load-balance //设置本聚合组模式为手工负载分担模式,创建的聚合组默认为此模式
//在接口视图下执行"Eth-Trunk 编号"也可以把端口划入Eth-Trunk组
//在链路组视图下执行
trunkport GigabitEthernet 0/0/1 0/0/2 //将物理接口GigabitEthernet 0/0/1 0/0/2划入此聚合组
least active-linknumber 1 //设置此聚合组链路最少活动成员的数量位1,低于此数量此聚合链路将自动关闭(默认阈值为1,最大阈值数为8,两端可以不一样,不一样时以下限阈值最大的为标准)
//此处是更加具体的负载均衡配置,新手不好理解
[SW-1-Eth-Trunk1]load-balance ?
dst-ip //本Eth-Trunk接口的对数据的负载分担方式为基于目的IP地址的负载
dst-mac //基于目的mac的负载
src-dst-ip //基于源目的ip的负载
src-dst-mac //基于源目的MAC的负载
src-ip //基于源ip的负载
src-mac //基于源mac的负载
关于各种负载均衡的区别可看👉Eth-Trunk链路详情
8. 三层交换技术
二层交换机内部无法对不同的
VLAN
之间进行通信,但是这项功能又是特别必要的,因此出现了三层交换机,它可以实现将终端设备隔离在不同VLAN中,同时为这些终端提供VLAN间路由功能(跨VLAN
通信)
在三层交换机上,通过VLANIF
虚拟接口实现VLAN
间路由
若需要具体例子可看👉三层交换机【Vlanif详解】开启OSPF与路由器互通【eNSP实现】
interface vlanif 10 //为VLAN10创建一个VLANIF接口并进入
//VLANIF编号必须与VLAN ID一一对应,逻辑接口与物理接口的"桥"就是VLAN标签
//交换机接口类型依然需要配置,三层交换机实际上是交换机承担了路由器部分功能
//如果数据从g0/0/1接口进去时携带VLAN 10标签,那么g0/0/1此时就等同于Vlanif 10逻辑接口
//在Vlanif接口视图下执行,为此逻辑接口分配IP地址与掩码
ip address IP地址 掩码
//在系统视图下执行
display ip routing-table //三层交换机可查看路由表
二、路由器
MAC
地址好比人的相貌,与生俱来;而IP
地址可以看作是家庭住址
假设有人在教室里掉了身份证被你捡到,则你归还的方法就是比对相貌寻找并归还;而如果是在路上掉了身份证被捡,比对相貌显然是不合理的,一个好的方法是根据身份证上的地址邮政过去,收件人再进行相貌比对。
上述例子即MAC
地址与IP
地址对应关系,MAC
地址适用于小范围,IP
地址适用于大范围。交换机是二层设备无法使用IP
地址【三层交换机可以实现,但是功能远少于路由器】,而路由器时网络层设备可以使用IP
地址,这就是路由器的作用。
//在系统视图下执行
display ip routing-table //查看路由表信息
ip address IP地址 掩码 //在接口上配置IP地址,一般与终端设备相连的接口是网关
display ip interface brief //查看路由器接口的IP地址和状态
1. 直连路由
同一个路由器连接的路由会叫直连路由,其条目不需要学习,会自动出现在路由表中,路由表中对应的关键字为
Direct
2. 静态路由
静态路由是管理员通过命令手动添加到路由表里的路由,告诉路由器数据该往哪里走
注意:配置静态路由时要双向配置,因为数据发送出去后还要接收响应才算完成
//在系统视图下执行
//下一跳地址表示下一次到哪里,是对端的位置,填写接口号或IP地址都行
ip route-static 最终目的IP 掩码 下一跳位置 //配置静态路由
//路由匹配是根据最大掩码依次向下匹配,因此当掩码为0时优先级最低
//掩码为0表示任何网络号都可以接受,即默认路由表示任何地址
ip route-static 0.0.0.0 0 下一跳位置 //配置默认路由,当不知道目的地址时候就转发到指定下一跳
若需要具体例子可看👉静态路由与默认路由原理与应用【eNSP实现】
有类编制方案
0.0.0.0~127.255.255.255
之间的地址为A
类地址。前8
位为网络号,后24
位为主机号128.0.0.0~191.255.255.255
之间的地址为B
类地址。前16
位为网络号,后16
位为主机号192.0.0.0~223.255.255.255
之间的地址为C
类地址。前24
位为网络号,后8
位为主机号
静态路由汇总
无类编制方案
这种技术称为无类域间路由
CIDR
,CIDR
支持使用任意长度的前缀地址来分配地址,以及对数据包进行路由
假设当前有3个网段,
①
10.8.80.0/24
②10.8.81.0/24
③10.8.82.0/24
我们通过二进制转换从左向右匹配,将其中的相同的部分提取出来,其二进制为为掩码长度,不同的部分用0填充,即10.8.80.0/22
。这就是三个网段汇总后的网段。具体应用如下图,本质是提取同类项ip route-static 10.8.80.0 22 192.168.25.2 //如果想去汇总的三个网段,走192.168.25.2
如果汇总之后的网络,包含了被汇总网络之外的网络,这样的汇总网络有一定风险
浮动静态路由
静态路由的一大缺陷是缺乏适应性。如果管理员为路由器配置的静态路由已经无法用来转发去往那个网络的数据包【即静态路由失效】,那么即使这台路由器还有其他路径可以去往那个网络,路由器还是无法自动利用新的路径对这些数据包进行转发【静态路由优先级高】,因此有了浮动静态路由。
当一台路由器上有两条以不同路径去往同一个网络的等优先级静态路由时,路由器就会同时利用这两条链路来转发流量
配置
//没有特殊语句,仅仅通过控制优先级实现浮动路由,静态路由优先级默认为60
ip route-static 10.8.84.0 24 192.168.25.2 preference 优先级
display ip routing-table protocol static //查看路由器静态路由条目
当优先级不同时,若路径发送故障,则路径选择会按照优先级进行顺延
3. 动态路由
网络规模很大,使用静态部署路由就显得不现实,因此需要动态部署
路由器通过其他路由器分享的路由信息来获取远端网络路由条目的方式称为动态学习,为实现路由器相互分享路由信息而定义的标准称为动态路由协议
路由学习
路由表由三部分组成:子网,度量(权),下一跳地址
直连路由拥有最高优先级,度量值为0
。用以下例子说明具体学习过程
- 初始状态每个路由器都拥有自己的直连路由,度量值为
0
R1
向R2
学习得到了30.1.1.0/24
网段,将其记录在路由表内。由于R1
是从R2
学习到的,因此在R2
相关条目的度量值上+1
,也就是1
R2
同时也向R1
和R3
的路由表学习得到新网段10.1.1.0/24
和40.1.1.0/24
,度量值分别为1
R1
向R2
学习到40.1.1.0/24
网段,这一条目的度量值+1=2
更新到R1
路由表中- 同理
R3,R1
向R2
学习到10.1.1.0/24
网段,这一条目的度量值+1=2
更新到R3
路由表中
环路隐患
如上图,若是10.1.1.0/24网段出现故障会出现什么情况?
由于此网段是直连路由,
R1
路由器当下会在路由表中对故障路由进行删除。因此通过动态学习,R1
又从R2
那儿学来了这条网段路由,度量值为2
,下一跳为R2
。假设R3
收到发往这个网段的数据包时,R3
查询路由表将其发送给R2
,R2
发给R1
,R1
又发给R2
,如此循环……
RIP原理
RIP
是一种距离矢量路由协议
路由器以RIP
更新计时器设置的参数作为周期,每周期向外通过一次路由更新信息每当一台路由器针对某些路由的更新计时器到期时。它就会封装一个
RIP
响应消息对外发送。如果收到消息的路由器针对这条路由的老化计时器还没有过期,那么老化计时器就会重置;如果已经进入了垃圾收集计时器,那么这条路由会被重新激活并关闭通过老化计时器将一段时间没有启用的路由标记为不可达(度量值
16
),默认180
秒
通过垃圾收集计时器记录的是老化后,需要多久彻底删除的时间,默认120
秒如果启动了垃圾计时器,那么路由器就会在网络中发送关于这条路由不可达的更新消息,让其他路由器也更新关于这条路由已经不可达的信息,计时器超时后会将这条路由从
RIP
数据库中彻底删除度量值
X
表示到达目的地址还需要经过X
个路由器
水平分割
禁止路由器将从一个接口学习到的路由,再从同一个接口通告出去(RIP2自带水平分割)
即我从你这里学到的已经是最好的,既然是最好的,你就不可能再从我这学到同一条更好的路由,因此我禁止告诉你错误消息,避免环路
毒性反转
当路由器从一个接口学习到一条去往某个网络时,它就会通过这个接口通告一条该网络不可达的路由(路由毒化)
即你已经告诉过我一次,可以不用再告诉我了,避免环路
若需要具体例子可看👉RIP原理、毒性反转原理与应用【eNSP实现】
配置
//在系统视图下执行
rip //在交换机上启动RIP协议
//在RIP视图下执行
version 2 //切换成RIPv2版本
network 10.0.0.0 //当前路由器接口地址属于10.0.0.0子网的都开启RIP服务,A类地址(1~126)取8位掩码,B类(128~191)16位掩码,C类(192~223)24位掩码
timers rip 更新计时器时间 老化计时器时间 垃圾收集计时器时间 //在RIP视图下设置计时器时间
preference 优先级 //在RIP视图下设置RIP学习到的路由优先级(1~255)
silent-interface //在RIP视图下使用,令所有接口或指定接口不向外发送广播或组播RIP更新
//在系统视图下执行
display rip //查看RIP情况
display rip 1 route //查看RIP路由,1位进程号,默认为1
display rip 1 interface g0/0/0 verbose //查看路由器g0/0/0接口的RIP详情
display current-configuration configuration rip //查看路由器上的RIP配置
display ip routing-table protocol rip //查看通过RIP学到的路由
display rip 1 neighbor //查看邻居情况
//由于RIP需要发送和接收响应,因此只有设置了RIP的路由器才会相互学习
//在接口视图上执行
undo rip split-horizon //接口上禁用水平分割,默认是开启的
rip poison-reverse //毒性反转,是在接口上的操作,优先级高于水平分割
default-route originate //此语句使用于添加了默认路由后,进入RIP状态下动态发布默认路由
//RIPv2默认禁用水平分割后才会启动自动汇总
rip summary-address 10.0.0.0 255.255.128.0 //将当前路由器下属于10.0.0.0/17子网的网络都汇总为10.0.0.0/17向外发送响应,其中掩码必须使用点分十进制位表示
//RIPV2支持明文认证和MD5认证
//其认证需要配置在接口上,以链路为单位,只要直连设备之间使用相同密码,就可以使他们通过认证并建立邻居关系,有相同密码的相邻路由器才互相学习
rip authentication-mode simple zyl //将接口明文密码设置为zyl
display this //在系统视图下查看端口配置信息,明文密码会被查到,因此明文配置不安全
undo rip output //接口上使用,令此接口不向外发送RIP更新
undo rip input //接口上使用,令此接口不再接收RIP更新
//采用md5加密,数据包可选择nonstandard(IETF)或usual(华为格式)加密,cipher可以把设置的密码在本地进行加密,最后的数字1是MD5认证的密钥ID
rip authentication-mode md5 nonstandard/usual cipher 密码 1
OSPF
OSPF
是一个链路状态型路由协议,具有收敛快,路由无环,扩展性好等优点,被快速广泛接受
OSPF
支持区域划分,区域是从逻辑上讲路由器划分为不同的组,每个组用区域号【Area ID
】来标识。一个网段只能属于一个区域,或者说每个运行OSPF
的接口必须指明属于哪一个区域。区域0
位于骨干区域,骨干区域负责在非骨干区域之间发布区域间的路由信息。在一个OSPF
区域中有且只有一个骨干区域。
//在系统视图下执行
ospf //在路由器上启用OSPF协议并进入OSPF视图
//在OSPF视图下执行
area 区域号 //将此路由器划分进指定区域,区域0位骨干区域,OSPF报文必须经由区域0
//在区域视图下执行
network 192.168.1.0 0.0.0.255//将192.168.1.0/24网段通告给同区域的其他路由器,掩码用反码形式
authentication-mode md5 1 cipher 密码 //拥有相同密码与验证模式的OSPF设备才会相互交流
若需要具体例子可看👉OSPF单区域配置【eNSP实现】
若需要具体例子可看👉OSPF多区域配置【eNSP实现】
若需要具体例子可看👉配置OSPF认证【eNSP实现】
若需要具体例子可看👉OSPF被动接口配置【eNSP实现】
4. 路由优先级
路由类型 | 路由表中标识 | 优先级(越小越先) |
---|---|---|
直连路由 | Direct | 0 |
OSPF路由 | OSPF | 10 |
静态路由 | Static | 60 |
RIP路由 | RIP | 100 |
5. 单臂路由
将一个路由器接口逻辑化成多个接口的技术,使用上的原理与三层交换机的
Vlanif
类似
若需要具体例子可看👉单臂路由原理与应用【eNSP实现】
配置
interface g0/0/0.10 //进入g0/0/0的10端口
//配置后,在接收数据时,路由器会剥除数据中对应的VLAN标签并三层转发,之后是否带VLAN标签由出站接口决定
//接口视图配置
dot1q termination vid 10//配置802.1Q封装(与对端交换机保持一致),指定端口接收PVID(VLAN值)
ip address xxx xx //正常为接口配置ip地址和掩码
arp broadcast enable //使接口能够处理广播帧(单臂路由独有语句)
6. DHCP
一种利用路由器自动分配
IP
地址的技术
//在系统视图下执行,在DHCP服务器上配置
dhcp enable //打开DHCP服务
ip pool for-net10 //创建地址池for-net10并进入视图
network 10.10.10.0 mask 24 //for-net10地址池分配范围为10.10.10.0/24
gateway-list 10.10.10.254 //该地址池对应的网关为10.10.10.254
dns-list 8.8.8.8 //指定DNS服务器IP地址为8.8.8.8
excluded-ip-address 10.10.10.253 //地址池中10.10.10.253不要划分出去
lease day 1 //这些地址租期为1天
//在要放出地址的DHCP服务器接口视图下执行
dhcp select global //开启此接口的DHCP全局地址池分配功能
//在能接收到DHCP报文并有三层转发功能的设备接口上配置
dhcp select relay
dhcp relay server-ip DHCP服务器IP地址 //分配地址池的端口都要配置DHCP中继服务