一、定义

① 路由【Routing】技术

主要研究【路由器[Router]】如何基于【路由表[Route Table]】或【路由协议[Route Protocol]】选择最佳路径,对数据包进行转发的技术

② 分类:

根据路由条目形成的方式差异,可以分为【静态路由技术】与【动态路由技术】

二、静态路由技术

①直连路由[Connected Route]

与设备接口连接的IP地址自动生成的路由。

路由器接口开启并配置IP地址,则会自动生成直连路由

②静态路由[Static Route]

管理员手工配置

第一代路由技术,工程师[手工]静态编写,告知路由器将数据包转发到哪个接口/下一跳(邻居),适合小型网络

#思科为例:
ip route 目标网段+目标掩码+出接口/下一跳IP
#华为:
ip route-static 目标网段+目标掩码+出接口/下一跳IP
  • 1.
  • 2.
  • 3.
  • 4.
#在思科当中相关查看配置的命令:
show ip int brief	#查看接口IP地址
show run int f0/0	#查看接口配置
show ip route	#查看路由表
show ip route static	#查看静态路由
show run | include ip route #查看静态路由配置
ping ip-a	#ping的连通性测试
ping ip-a source ip-b #带源地址ping测试
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

③默认路由[Default Route]

管理员手工配置

应用于网络(企业网、校园网、园区网等)出口,用于指向互联网,实现内网设备和外网的通信

默认路由放置在路由表的最底部,只有当常规/精确的路由条目没有匹配时,才会查看/调用默认路由——“最后一根稻草”

route print	#在windows终端当中查看路由表
  • 1.
ip route 0.0.0.0 0.0.0.0 +出接口/下一跳IP
show ip int brief
show run int f0/0
show ip route
  • 1.
  • 2.
  • 3.
  • 4.

④浮动路由[Floating Route]

管理员手工配置

用于实现多出口环境下的路径选择,通过浮动路由技术,可以将所有数据流指往主路径,当主路径出现故障后,流量能够自动切换到备用路径。

ip route 0.0.0.0 0.0.0.0 f0/0 + 管理距离/优先级
管理距离/优先级:0-255,越小越优先,默认为0/1
  • 1.
  • 2.
ip route 0.0.0.0 0.0.0.0 f0/0 	#主链路
ip route 0.0.0.0 0.0.0.0 f1/0 100	#备用链路
  • 1.
  • 2.
show ip int brief	#查看接口IP地址
show run int f0/0	#查看接口配置
show ip route	#查看路由表
show ip route static	#查看静态路由
show run | include ip route	#查看静态路由配置
debug ip icmp	#开启ICMP调试
undebug ip icmp4	#关闭ICMP调试
un all	#关闭所有调试
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

三、动态路由技术

[1]管理层面:

【静态路由】较容易部署/修改(在小网络当中),【动态路由协议】一般路由的体积比较大,管理相对比较复杂(大网络)

[2]技术层面:

【动态路由】能够适应各种网络结构的拓扑,只能检测网络状态;静态路由技术无法实现,需要人工干预

①RIP

②EIGRP

③OSPF--【大型企业网、政务网等的使用】

④ISIS

⑤BGP--【运营商】

[3]协议分类:

①按照算法特征分类:

距离矢量:【RIP】【BGP】

链路状态:【OSPF】【ISIS】

混合算法:【EIGRP】

②按照运行范围分类:

IGP[Internal Gateway Protocol,内部网关协议]:【RIP】【EIGRP】【OSPF】【ISIS】

EGP[External Gateway Protocol,外部网关协议]:【BGP】

③有类无类:【A类】【B类】【C类】

有类classful:IP子网只能识别/8/16/24:【RIPv1】【IGRP】即不支持VLSM可边长子网划分,几近淘汰

无类classless:IP子网能识别任意掩码:【RIPv2】【EIGRP】【OSPF】【ISIS】

[4]通用路由选择算法

①最长匹配原则

路由器访问目的IP地址有多路径时,将目的IP与本地路由条目进行比对,从左到右匹配的比特位越多,则越精准,优先级越高。

如下图,R1需要去往IP地址为8.8.8.8,有F1,F2,F3三条路,根据【最长匹配原则】,F3更精准,则往F2前往目的服务器

路由技术【Routing】万字讲解_IP

②管理距离

【Administrator Distance】优先级,越小越优先。用于衡量不同路由协议之间的路径优劣。

在【最长匹配原则】一致后,不同路由协议之间的管理距离

路由技术【Routing】万字讲解_IP_02

③度量值

Metric,用于衡量同一路由协议的路径优劣。度量是路由协议用于计算路径的方式/参数,如:带宽、距离、MTU、延迟等等

①一致后,匹配②,②一致后匹配其是③度量值。

路由技术【Routing】万字讲解_IP_03

总结:

最长匹配原则->管理距离->度量值->负载均衡

动态路由协议详解【RIP】【OSPF】【BGP】

思科当中清理路由表信息命令:
clear ip route *
  • 1.
  • 2.

【一】RIP

1、概述

【RIP[Routing Information Protocol],路由信息协议】,第一代动态路由协议,最早应用于互联网前身[阿帕网]

基于Bellman-Ford[贝尔曼最短路径]算法

基于跳数进行路径计算,最多支持15跳,主要运行于中小型网络

RIP有多个版本:【RIPv1】【RIPv2】【RIPng--用于IPv6】

2、基本特征

①OSI层次:

应用层,基于UDP,端口号:520

②IGP/EGP:

IGP内部网关协议

③算法特征:

距离矢量[距离向量],有大小有方向

④有类无类:

RIPv1--有类;RIPv2--无类

⑤最佳路径:

管理距离(Distance)----120

度量值(Metric)

hop count;

范围:0~15;16为无穷大,不可达

3、路由算法

贝尔曼-福特算法,Bellman-Ford algorithm,单源最短路径算法

计算从起始节点到图中所有其他节点的距离,筛选出最短路径。

——理查德·贝尔曼(Richard Bellman)和莱斯特·福特(Lester Ford)创立,发表时间:1958年、1956年

4、路由分组

Request:RIP请求分组——初始化时想路由器邻居请求路由条目

Response:RIP回复分组——更新/发送本地路由信息

特征:【周期更新30s】【广播更新,采用255.255.255.255】【不可靠更新,基于UDP协议】

5、RIPv1 vs RIPv2

RIPv1

RIPv2

有无类路由协议

有类路由协议

无类路由协议

VLSM支持能力

不支持VLSM

支持VLSM

自动汇总功能关闭

手工汇总功能实现

RIP-1在主网络边界

不能关闭自动汇总(无手工)

RIP-2可关闭自动汇总前提下进行手工汇总

更新消息的发送方式

广播更新

组播更新

路由标记功能

无标记路由功能

对路由打标记,用于过滤和做策略

路由条目数量限制

RIP-1发送update包内无next-hop属性,最多可以携带25条路由条目

有认证情况下RIP-2最多只能携带24条路由

#思科命令行
router rip 
version 2	#定义版本为2
no auto-summary	#关闭自动汇总
network + 网段/路由
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
#华为命令行
rip 1
version 2
undo summary
network + 网段/路由
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

6、防环机制:

因网络配置不合理、网络故障等问题,使路由条目互相指认,数据包被持续转发,导致网络通信故障——路由环路

解决环路机制——路由防环机制(Routing-loop Avoidance Rule)

环路对网络的影响:【占用链路带宽】【消耗处理资源】【瘫痪网络服务】

[1]【水平分割】(Split Horizon)

从本接口收到的路由条目,不能再从本接口发送出去

[2]【最大跳数】(Maximum Hop Count)

路由条目跳数达到16跳,路由则失效,最大有效15跳

[3]【路由中毒】(Route Poisoning)

路由条目故障,会将此路由标记16跳,并发送邻居,告知路由问题,尽快删除

[4]【毒性逆转】(Poison Reverse)

将中毒路由(16hops)返回给原发送者和其他邻居,确认和泛洪,加速不可用路由信息的传播

[5]【抑制计时器(180s)】(Holddown Timer)

RIP设备收到邻居路由更新,度量值为16时,为此路有启动抑制计时器,默认180s

为防止路由震荡(环路),抑制定时器超时之前,即使再收到邻居关于此路由度量值小于16的更新,也不接受

抑制超时后,再重新接受邻居发送的关于此路由的更新报文

路由技术【Routing】万字讲解_路由协议_04

7、计时器

[1]update timer【更新计时器】

30s

用于实现对路由信息的周期交互

[2]invalid timer【无效计时器】

180s

——老化定时器

路由条目180s内没有收到更新,标识此路由不可达

[3]flushed timer【刷新计时器】

——垃圾收集定时器

240s

垃圾收集时间内仍然没有收到原不可达路由的更新,路由从RIP路由表彻底删除

#思科
router rip
timers basic 10 60 60 80
#在修改的时对应配置RIP协议的所有路由器都需要调整
#更新计时器与老化计时器之间的间隔最好呈6倍关系
#更改会消耗更多带宽,所以需要保证带宽的冗余
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
#华为修改计时器时间
[Router-rip-1]timers rip [Update time] [Age time] [Garbage-collect time]#对于计时器时间的调整
#查看rip计时器命令
dis rip
  • 1.
  • 2.
  • 3.
  • 4.

8、触发更新

路由器定期激活RIP接口发送响应报文,缺省情况,RIP隔30s发一次报文

触发更新——当路由器感知拓扑变化/RIP路由度量变化时,立即发送Response消息,无需等待下一个更新周期。

抓包时会有反复高频的发送Response RIP报文

9、路由汇总——路由聚合/超网

【最大限度减少路由表数量】、【降低网络带宽消耗】、【提高路由转发效率】

减轻路由震荡,提高网络运行稳定性

流程等价于IP掩码机制的执行==>[所需汇总路由IP转为二进制]-->[相同比特位进行汇总]-->[编制掩码]-->[不同比特位全归零]

#思科
int s0/0
rip summary-add x.x.x.x [mask]
  • 1.
  • 2.
  • 3.
在华为设备当中,
路由汇总功能RIPv1版本自动开启且无法关闭;
RIPv2版本路由汇总开启,但是由于在接口存在水平分割,
故需要在接口下进行【水平分割的禁止/毒性逆转的禁止】/【rip开启summary always】

[1]rip 1
version 2
summary always

[2]rip 1
version int g0/0/1
undo rip split-horizon
rip summary-address x.x.x.x [mask]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

10、认证原理

【Attacker】向路由器发送伪造路由信息,【中间人Attack】【更改/破坏目标路由器的路由表】

原理:防止未经身份验证/伪造数据包交换,路由器确保与信任邻居建立信任路由协议关系。

认证方式:【明文】【MD5】-->认证成功,则互相学习路由;认证失败,拒绝路由更新包

明文-->容易造成数据包泄露,目前不建议使用

MD5-->使用MD5算法生成密钥的[消息摘要]/[散列]进行交互(不发送密钥本身)提高安全性,避免密钥被监听

#思科
[1]编写密钥串,定义密钥
key chain xxx				#定义密钥串
key 1								#定义*密钥序号*
key-string cisco		#定义密钥

[2]接口下调用密钥串,开启认证
interface Fa0/0
ip rip authentication mode md5/text		#定义认证类型
ip rip authentication key-chain xxx		#调用密钥串
【Ps】密钥串名字可以不一样,但是密钥序号和密钥需要一致

#查看认证配置
show run | s key chain	#查看认证配置
show key chain					#查看密钥串信息
show ip route						#查看路由表
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
#华为
[1]编写密钥串,定义密钥
keychain xxx mode [absolute/periodic]	#定义密钥串名字以及生效类型[永久生效/周期生效]
key-id 1								#定义*密钥序号*
  algorithm md5/text		#定义密钥串加密类型
  key-string cipher [password]	#定义密钥
[2]接口下调用密钥串,开启认证
int g0/0/0
 rip authentication-mode md5 nonstandard keychain pl	#认证类型+密钥串
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

11、被动接口[Passive Interface]

原理:将不需要发送路由的接口进行软关闭,节省带宽消耗,提高安全性

使用区域:【互联网边界】【路由交换边界】【特殊安全策略】

在交换区域没有发送的必要,故在交换区域可以进行关闭

#思科
#黑名单策略:
route rip
passive-interface s0/0

#白名单策略
router rip
passive-interface default
no passive-interface f0/0
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
#华为
rip视图下
silent-interface [all/接口/]
  • 1.
  • 2.
  • 3.

12、单播更新

修改协议默认组播/广播更新机制,采用单播方式与邻居交互路由。特定网络情况下,可以较好地节省网络带宽,实现流量优化

#思科
#路由进程
router rip

#宣告路由信息
network 10.0.0.0

#单播指定邻居
neighbor 12.1.1.2

#开启被动接口
passive-interface default
[注]被动接口不影响单播更新
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
#华为
rip 1
verison 2
peer x.x.x.x #配置对端邻居IP地址
  • 1.
  • 2.
  • 3.
  • 4.

13、动态默认路由

互联网边界路由器,将默认路由注入到动态协议中,使内部路由器能基于动态默认路由,访问外部网络

#思科
#默认路由注入
default-information originate
  • 1.
  • 2.
  • 3.
#华为
#rip当中默认路由注入
default-route originate
  • 1.
  • 2.
  • 3.

在其他路由器当中可以看到通过rip的默认路由

路由技术【Routing】万字讲解_IP_05

【二】OSPF

[Open Shortest Path First,开放最短路径优先]——目前最广泛的路由协议之一,大量使用在各种网络当中

1、协议概述

算法:Dijkstra算法[迪杰斯特拉算法]

版本:OSPFv2【IPv4版】和OSPFv3【IPv6版】

简单概念:

引入区域划分,层次化网络结构,支持大中型网络

使用[Link Status DataBase,LSDB,链路状态数据库]存储全网网络拓扑结构、

掌握网络链路状态,计算最短路径树,筛选最短路径

2、基本特征

①OSI层次:

传输层(网络层),基于IP协议,端口号:89

[说明]:①数据包结构来看,传输层;②其直接承载自IP协议,也可归为网络层

②IGP/EGP:

IGP内部网关协议

③算法特征:

链路状态(link-state)协议

④有类无类:

无类路由协议

支持VLSM/CIDR

⑤最佳路径:

管理距离(Distance)——110

度量值(Metric)——cost[开销]【cost=10^8/带宽】

3、路由算法【迪杰斯特拉算法

算法原理:

[原始版本]--找到两个顶点之间的最短路径;

[后续版本]--固定一个顶点作为源点找到所有其他节点的最短路径——最短路径树【SPT[Shortest Path Tree]】

算法核心:

从最短路径数组中

每次选择一个最近的点,作为下一个点,

重新计算从起始点经过该点到其他所有点的距离,

更新最短距离数据。

已经选取过的点=确定了最短路径的点,不再参与下次计算

图解:对于算法核心的解读

①起始点找邻居,计算开销:

【R1-->R2】;【R1-->R4】

路由技术【Routing】万字讲解_链路_06

②从起点【R1】,定位单个邻居【R2】,算【R1->R2->邻居】开销

【R1-R2-R3】;【R1-R4】[R4在①当中已出现,故不进入该次计算]

路由技术【Routing】万字讲解_IP_07

③从起点【R1】,定位单个邻居【R4】,【算R1->R4->邻居】开销

【R1-R4-R3】;【R1-R4】[R2在②当中已出现,故不进入该次计算]

路由技术【Routing】万字讲解_IP_08

③从起点【R1】,定位单个邻居【R4】,【算R1->R4->邻居】开销

[从R3到剩下路径,若前方已出现,则比对开销,取最小]

路由技术【Routing】万字讲解_IP_09

④收敛成最短路径树[SPT,Shortest Path Tree]

路由技术【Routing】万字讲解_链路_10

4、相关术语和配置详情

【术语】
进程号:

标识不同ospf进程[1~65535],邻居间采用不同进程,可正常通信

路由标识符:

[RID]选取流程——①手工指定[一般为环回]②环回IP最大③物理口IP最大

#由于有可能配置router-id错误,故需要重启ospf进程
#思科
clear ip ospf process

#华为
<huawei>reset ospf 1 process
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
通配符掩码:

标识需要通告的网段范围——反掩码[标识需要通告的网段范围]

【0】精确匹配,【1】标识随意

子网掩码vs反掩码

子网掩码[mask]——标识网络和主机边界

【0】主机位,【1】网络位

区域与区域号:

[区域]——标识路由器/路由信息所在区域

[区域划分]——骨干区域【0】、常规区域、特殊区域

骨干区域——实现常规区域的流量中转,防止环路。常规区域无法直接通信,必须经过骨干区域

【区域划分的作用】:

①降低网络运维管理难度;

②使网络拓扑更具层次和立体化;

③最大程度减少网络动荡和网络路径计算消耗

④区域间防环,常规区域无法直接通信,将数据丢给骨干区域,骨干统一转发(星型放射拓扑)

路由类型:

【内部路由器[Internal Router]】一台路由器启动OSPF的接口都在同一区域

【骨干路由器[Backbone Router]】至少有一个启用OSPF的接口和骨干区域相连

【区域边界路由器[Area Border Router,ABR]】连接一个/多个区域的路由器

【自治系统边界路由器[Autonomous System Boundary Router,ASBR]】不同路由域之间的路由器[rip]---[ospf]

图解

路由技术【Routing】万字讲解_IP_11

【配置详情】
#思科
router ospf 100
router-id 1.1.1.1
network 1.1.1.1 0.0.0.0 area 0
network 12.1.1.0 0.0.0.255 area 0

#查看配置命令
show run | s r 0
show ip ospf neighbor		#查看邻居状态
show ip ospf database		#查看链路数据库
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
#华为
ospf 100 router-id 1.1.1.1
area 0
network 1.1.1.1 0.0.0.0
network x.x.x.x y.y.y.y
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

6、路由分组

①Hello分组——建立和维持邻居关系【OSPF packet——1】

每10s互发Hello报文,如果40s内未发送,则邻居关系删除

②DBD分组[DataBase Description]——数据库描述包【OSPF packet——2】

邻接关系初始化后,开始交换数据包,链路状态数据库的摘要信息,只包含LSA头部

③LSR分组[Link State Request]——链路状态请求包【OSPF packet——3】

交换描述分组后,清楚自身链路状态数据库缺少的LSA和过期LSA状况

发送该LSR请求包来补全

④LSU分组[Link State Update];链路状态通告[Link State Advertisements]——链路状态更新包【OSPF packet——4】

各链路状态更新包内含多条LSA信息,对网络链路描述的完整性,与②DBD的区别在于②只包含头部信息,④更全面

LSA的泛洪,由此包实现

⑤LSACK分组[Link State Acknowledgement]——链路状态确认包【OSPF packet——5】

确保LSA泛洪可靠,LSA信息必须被显示确认

图解

路由技术【Routing】万字讲解_IP_12

7、邻居建立

邻居状态机

功能:

失效状态[Down]

邻居会话初始状态——>最近没有从邻居收到信息

初始状态[Init]

收到邻居Hello包,但未建立双向通信

邻居状态[2-way]

建立双向通信,进行DR和BDR选举,处于2-way状态才能进行选举

信息交互初始状态[ExStart]

确定信息交互路由器的主从关系和DBD数据包序列号。[Master/Slave主从选举],最高路由器ID的路由器成为主路由器

信息交换状态[ExChange]

互相发送DBD包,对各自LSDB进行摘要描述。各DBD包都有序列号,需要被显示确认,以实现可靠更新

信息加载状态[Loading]

互相发送LSR和LSU包,请求双方更新LSA信息,补充本地LSDB

完全邻接状态[Full Adjceny]

LSDB同步完成

【建立条件】以下相关参数需要保持一致

[Hello时间间隔]、[Dead时间间隔]、[区域号]、[子网号-同网段]、[子网掩码]、[末梢区域设置--stub]

[认证密钥]、[链路MTU大小]

DR/BDR选举

——通过选举机制,路由器仅需与DR/BDR建立邻接关系,其他路由器仅保持2-way状态,该状态下路由器间不共享链路状态信息

选举方式:优先次序:①接口优先级,数字1为最大,作为DR;②接口优先级一样时,选择路由标识符RID更大的

接口优先级=0-->退出选举。选举完后再修改优先级,不支持抢占。不同接口,角色可以不同。

采用224.0.0.5【BR/BDR交互】和224.0.0.6【DRother交互】交互。DR失效时,BDR成为DR,并重新选举BDR

#华为
int g0/0/0
ospf dr-priority [0~255]
  • 1.
  • 2.
  • 3.
Master/Slave主从选举

功能——用于实现DBD数据库描述包的可靠传输,通过序列号机制实现

——主路由器初始化DBD Exchange过程

——在每个DBD内置序列号并持续递增;路由器收到后,内主主序列号表示确认。

图解

路由技术【Routing】万字讲解_IP_13

字段

作用

置位含义

I

Inital Bit

初始位,标识进入DBD交互阶段

1——进行交互

0——交互完毕

M

More Bit

更多位,标识是否还有未传输的DBD

1——还有DBD信息

0——传输完毕

MS

Master/Slave Bit

主从位,标识主从关系

刚开始都为1,根据RID大值取Master

1——主[Master]

0——从[Slave]

S

字段值

后续依从主来进行序列递增

8、路由汇总

概念同前文当中的RIP当中路由汇总一致,目的:减少路由条目数量,从而加速收敛,提高带宽效率

配置:

【1】区域间路由汇总[OSPF跨区域汇总]abr-summary
#思科
#思科关于环回口的定义,环回口默认为终端,故需要调整配置使其为网段形式
int lo 0
ip ospf network point-to-point #使模拟器识别为网段,查看路由表后为正常掩码情况

#以下为路由汇总
router ospf 100
router-id 1.1.1.1
network 12.0.0.0 0.0.0.3 area 0
network 13.0.0.0 0.0.0.3 area 0

#路由汇总
area 0 range 12.0.0.0 252.0.0.0
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
#华为
ospf 1 router-id 1.1.1.1 
 area 0.0.0.0 
  abr-summary 12.0.0.0 254.0.0.0
  • 1.
  • 2.
  • 3.
  • 4.
【2】AS间路由汇总[跨路由协议汇总]asbr-summary
#思科
[1]路由重分布,将其余外部路由协议引入ospf
redistribute rip xxx

[2]执行路由汇总
summary-address 172.16.0.0 255.255.252.0
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
#华为
ospf 1 router-id 2.2.2.2 
 asbr-summary 27.1.1.0 255.255.255.0
  • 1.
  • 2.
  • 3.

9、路由认证

[Attacker]向路由器发送伪造的路由信息,[中间人Attacker]——更改/破坏目标路由器的路由表情况

认证作用——防止未经身份验证/伪造的数据包交换,确保路由器与信任邻居建立正确的路由协议关系

认证方式:【明文】/【MD5】——认证成功则相互学习;失败则拒绝更新包

MD5方式——生成密钥的[消息摘要/散列]

#思科
#链路认证
int s1/0
ip add 12.1.1.1 255.255.255.0
ip ospf authentication message-digest		#开启MD5认证
ip ospf message-digest-key 1 md5 pinginglab	#定义MD5密钥

---------------------------------------------------------
#区域认证
router ospf 100
area 0 authentication message-digest		#在区域0的所有接口开启MD5认证
int f0/0
ip ospf message-digest-key 1 md5 pinginglab
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
#华为
authentication-mode md5
authentication-mode keychain
  • 1.
  • 2.
  • 3.

10、动态默认路由

将默认路由引入动态协议当中,使内部路由器可基于动态默认路由访问外部网络。

#思科
router ospf 100
default-information originate always

#定义外部路由类型和初始度量值
外部路由类型:【E1】——累加cost值;【E2】——不累加cost值[E1>E2]
default-information originate always metric 200 metric-type 1
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
#华为
ospf 100
default-route-advertise
  • 1.
  • 2.
  • 3.

11、OSPF链路状态通告[11种LSA]

链路状态通告[LSA,Link State Advertisements]

LSA类型

名称

作用

Type-1

Router LSA

通告【本区域内链路信息】

本区域所有路由器都宣告

Type-2

Network LSA

通告【以太网链路信息】

本区域DR发送

Type-3

Summary LSA

通告【区域间路由信息】

ABR发送,整个OSPF区域

Type-4

ASBR Summary LSA

通告【外部ASBR路由信息】

仅ABR发送,整个OSPF区域

Type-5

Autonomous system external LSA

通告【自治系统间路由信息】

ASBR发送,整个OSPF区域

Type-6

Group-Membership-LSA

组chengyuanLAS[OSPF的扩展]

支持组播路由功能

Type-7

NSSA-External-LSA

通告【自治系统间路由信息】

ASBR发送,NSSA区域

Type-8

Link-Local LSA

用于OSPFv3——IPv6

网络链路信息

Type-9/10/11

Opaque LSA

不透明LSA

携带用于OSPF的信息/直接携带应用信息

路由类型

类型

作用

O

区域内路由,LSA1/2类链路信息计算生成

O | A

区域间路由,LSA 3类链路信息计算生成

O E1

AS间路由,LSA 4/5生成

后续外部路由累加沿途cost

默认cost为20

O E2

AS间路由,LSA 4/5类链路信息计算生成

后续外部路由不累加沿途cost

默认cost为20

O N1

区域内路由,LSA 7类链路

O N2

区域内路由,LSA 7类链路

优先级:O>O |A>O E1>O E2

13、区域类型

【图解】

路由技术【Routing】万字讲解_IP_14

[1]【骨干区域】——正常流量中转站

[2]【常规区域】——正常区域,接收各类LSA信息

[3]【末节区域】Stub Area

区域内仅通告对外的一条默认路由【O |A*】

【注】①末节区域不能是骨干区域;②不能有虚链路

存在条目:区域间路由条目+本地区域路由+对外访问的默认路由

#思科
router ospf 100
area 1 stub
  • 1.
  • 2.
  • 3.
#华为
ospf 1 router 2.2.2.2
area 1
network 10.0.0.0 0.0.0.255
stub
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

[4]【完全末节区域】Totally Stub Area

末节基础上,不接受LSA3类信息[区域间路由条目]

存在条目:本地区域路由+对外访问的默认路由

路由条目数大幅度减少,并且可以ping通外部

#思科
router ospf 100
area 1 stub no-summary
  • 1.
  • 2.
  • 3.
#华为
ospf 100 
area 1
stub no-summary
  • 1.
  • 2.
  • 3.
  • 4.

[5]【非纯末节区域】Not-So-Stubby-Area

存在条目:[type-1][type-2][type-3][type-7]

#思科
router ospf 100
area 1 nssa
  • 1.
  • 2.
  • 3.
#华为
ospf 100
area 1
nssa
  • 1.
  • 2.
  • 3.
  • 4.

[6]【非纯完全末节区域】Totally Not-So-Stubby-Area

在非纯末节区域基础上,不接收LSA-3类信息

#思科
router ospf 100
area 1 nssa -summary
  • 1.
  • 2.
  • 3.
#华为
ospf 100
area 1 
nssa no-su 
#默认路由的引入:
nssa no-summary default-route-advertise
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

[7]【脱节区域】

网络发生迁移时,常规区域没有直接“挂接”到骨干区域,导致无法学习到其他区域的链路信息,引入【虚链路技术】

#思科-带认证
router ospf 100
area [对端区域] virtual-link [对端RID]

#认证
area 2 virtual-link 2.2.2.2 authentication message-digest
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
#华为
ospf 1 router 1.1.1.1
area 2
vlink-peer 2.2.2.2[对端router-]
  • 1.
  • 2.
  • 3.
  • 4.

14、网络类型

网络优化技术,通过不同环境接口类型,调整运行参数

网络类型

各项功能情况

使用情况

广播

[Broadcast]

Hello间隔——10s

DR/BDR选举——会

Neighbor建立——自动

适用区域内路由器数量较多时

点对点

[Point-to-Point]

网络专线-广域网

Hello间隔——10s

DR/BDR选举——不会

Neighbor建立——自动

适用区域内路由器数量单一

非广播

[NonBoradcast]

Hello间隔——30s

DR/BDR选举——会

Neighbor建立——手工指定

点对多点

[Point-to-multipoint]

Hello间隔——30s

DR/BDR选举——不会

Neighbor建立——自动

点对多点非广播

[Point-to-multipoint Broadcast]

Hello间隔——30s

DR/BDR选举——不会

Neighbor建立——手工指定

#思科
int f0/0
ip ospf network point-to-point
  • 1.
  • 2.
  • 3.
#华为
int g0/0/0
ospf network-type p2p
  • 1.
  • 2.
  • 3.

【三】BGP

【BGP,Border Gateway Protocol[边界网关协议]】自治系统间互联互通,当前互联网唯一主流使用的路由协议

1、概述

EGP外部网关协议,与IGP内部网关协议【OSPF、RIP】不同。

采用【路径属性】【网路策略】【规则集】等来决定路由走向,属于[路径(距离)矢量]协议

最大的特点是:人为可控流量走向

2、基本特征

①OSI层次

应用层,基于TCP协议,端口号:179

②IGP/EGP

EGP【外部网关协议】

③有类/无类

无类

——支持VLSM[携带掩码信息]

——支持CIDR[手工汇总]

④运行特征

[1]、路径矢量(Path Vector)——每个AS为一跳

[2]、距离矢量(Distance Vector)——每个路由器为一跳

⑤最佳路径

distance--管理距离【内部:200】【外部:20】

attributes--路径属性[通过多种路径属性来衡量路径好坏]

--BGP路由在路由表平常为[20/0]或者[200/0],度量值字段:0==>起源为【i】

--路由条目从IGP重分发进入,-->度量值=IGP的Metric==>起源为【?】

基本语法

【注】BGP协议基于TCP协议建立连接,连接建立的效率较低,侧重点在于可靠性

#思科
router bgp												//自治系统号
bgp router-id											//路由标识符
no synchronization								//关闭自动汇总,默认关闭
neighbor+邻居ip+remote-as+邻居as
network+路由+mask+通配符掩码 			//通告本地路由

neighbor 2.2.2.2 update-source loopback 1 //使用本地loopback 1与对端2.2.2.2建立邻居关系,更新源

#查看bgp配置情况
shwo run | section router bgp

#查看bgp邻居表
show ip bgp neighbors
#查看bgp基础邻居表,区域,状态,版本号等
show ip bgp summary
#查看bgp数据库
show ip bgp

其中路由表可以查询到的相关参数内,【>】表示最优路径;【i】表示AS系统内部路由;【*】表示直连可达
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

路由技术【Routing】万字讲解_IP_15

【注】此时可以看到BGP数据库相关信息,但是AS内部路由器无法查看到对端外部AS相关路由表情况

——原因:以R1为例,R1上无法查看到对端AS,因其数据库当中下一跳地址为外部EBGP的23.1.1.2/24而非R2上的下一跳,从而导致数据丢弃->需要在出口路由器上添加内部邻居命令指向内部路由器命令

#思科
neighbor 12.1.1.1 next-hop-self
  • 1.
  • 2.

路由技术【Routing】万字讲解_链路_16

拓展--IBGP的环回口邻居建立以及EBGP多跳

IBGP环回口建立邻居——由于BGP采用TCP方式,且环回口永久开启,用环回口建立邻居更能保障可靠性链路

EBGP多跳——由于IBGP内部抓包TTL为255,而EBGP抓包TTL为1,则需要使用多跳技术才能使得TTL改变而进行通信

【建议】①IBGP建立邻居尽可能使用环回口;②EBGP建立邻居尽可能使用直连而非环回口

由于EBGP之间没有协议,故需要静态路由来进行建立路由通信

使用环回接口建立邻居,update-source
#R1
router bgp 12
 bgp router-id 1.1.1.1
 network 1.1.1.1 mask 255.255.255.255
 neighbor 2.2.2.2 remote-as 12
 neighbor 2.2.2.2 update-source Loopback1
 
 #R2
 router bgp 12
 bgp router-id 2.2.2.2
 network 2.2.2.2 mask 255.255.255.255
 neighbor 1.1.1.1 remote-as 12
 neighbor 1.1.1.1 update-source Loopback1	#IBGP环回口建立邻居
 neighbor 1.1.1.1 next-hop-self
 neighbor 23.1.1.2 remote-as 34
 neighbor 25.1.1.1 remote-as 56
 
 #EBGP多跳
 R2
 router bgp 12
 neighbor 55.5.5.5 remote-as 56		#对端AS系统区域
 neighbor 55.5.5.5 update-source loopback 2	#与本地环回口2建立邻居
 neighbor 55.5.5.5 evbgp-multihop		#使用EBGP多跳
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

路由技术【Routing】万字讲解_链路_17

#华为
===================
#查看命令
display bgp routing-table	#查看本地bgp路由表
display ip routing-table protocol bgp	#查看bgp路由表
===================
#AR1:
bgp 12
router-id 1.1.1.1
network 1.1.1.1 32
peer 12.1.1.2 as-number 12

#AR2:
bgp 12
router-id 2.2.2.2
network 2.2.2.2 32
peer 12.1.1.1 as-number 12
peer 23.1.1.2 as-number 34
peer 25.1.1.1 as-number 56
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
#华为
====================
#IBGP内部环回口建立连接
#AR1:
bgp 12
router-id 1.1.1.1
network 1.1.1.1 32
peer 2.2.2.2 as-number 12
peer 2.2.2.2 connect-interface loopback 0	#IBGP对等体

#AR2:
bgp 12
router-id 2.2.2.2
network 2.2.2.2 32
peer 1.1.1.1 as-number 12
peer 1.1.1.1 connect-interface loopback 0	#内部环回口IBGP邻居建立【对等体】
peer 1.1.1.1 next-hop-local	#边界BGP网关侧强制将邻居的下一跳改为自己,实现邻居可达对端外部
peer 23.1.1.2 as-number 34	#外部EBGP邻居建立
peer 25.1.1.1 as-number 56
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
#华为
=====================
#EBGP环回口多跳
#AR2:
bgp 12
router-id 2.2.2.2
network 2.2.2.2 32
peer 1.1.1.1 as-number 12
peer 1.1.1.1 connect-interface loopback 0	
peer 3.3.3.3 as-number 34
peer 33.3.3.3 connect-interface loopback 1
peer 33.3.3.3 ebgp-max-hop #外部EBGP多跳建立邻居对等体

ip route-statci 33.3.3.3 32 23.1.1.2	#需要EBGP互相通信,这里写静态使其可以互相通信
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

3、路由分类

【过程】

路由技术【Routing】万字讲解_路由协议_18

主要报文:【先建立TCP通信(过程省略)】

①Open——参数协商,建立邻居关系【TCP三次握手后发送】

路由技术【Routing】万字讲解_链路_19

②Keepalive——邻居关系的维持,可靠性确认,周期:60s

路由技术【Routing】万字讲解_路由协议_20

③Update——更新路由条目,路径属性

路由技术【Routing】万字讲解_链路_21

相关报文:

*④Notification——BGP报错

*⑤Route-Refresh——路由策略刷新

路由技术【Routing】万字讲解_链路_22

4、邻居建立

建立状态

[1]空闲状态【IDLE】

准备TCP连接并监听邻居

[2]连接状态【Connect】

进行TCP三次握手,成功-->OpenSent状态;失败-->Active状态

[3]激活状态【Active】

TCP会话未建立成功,反复尝试ing

[4]发送状态【OpenSent】

TCP会话建立成功,发送OPEN分组[携带参数]

[5]确认状态【OpenConfirm】

双方收到OPEN包,协商成功,准备发送Keepalive分组

[6]建立状态【Established】

双方发生Keepalive分组,交换路由信息,发送Update分组

建立条件

①网络可达

②HoldTime一致

③RID不能冲突

④认证密钥一致

⑤Neighbor地址与数据包源ID一致

【注意】在BGP当中,特别是IBGP当中,如果存在三个以上的路由器,两个边界IBGP路由器,中间有若干个IBGP路由器时,需要两个路由器两两建立邻居关系——原因,IBGP内部路由器存在水平分割的设计,即IBGP路由器能获取到所有路由表,但是无法转发,形成路由黑洞

路由技术【Routing】万字讲解_IP_23

抓取路由表可以观察到【R7上缺少R9侧的路由表】;【R9上缺少R7侧的路由表】;【R8侧路由表完整】

-->R8成为水平分割路由器

R7

路由技术【Routing】万字讲解_IP_24

R8

路由技术【Routing】万字讲解_链路_25

R9

路由技术【Routing】万字讲解_IP_26

后续在两两建立邻居关系,并且在R7和R9侧进行环回口的【next-hop-self】[思科]/【next-hop-local】[华为]命令后,能够互相访问,即R1可以访问到R

5、路径属性【Path Attributes】

用于衡量路径优劣的参数,功能类似于【IGP协议】中的度量值

附属在【BGP Update】更新分组当中,用于对路由信息进行描述

[1]类别
单一类别

类别

属性

功能

Well-Known

公认属性

一定能识别

Optional

可选属性

不一定识别

Mandatory

强制属性

必须要携带[as-path属性]

Discretionary

自由属性

不一定携带

Transitive

传递属性

必须要传递  [必须要让对端转发]

Nontransitive

非传递属性

不一定要传递

组合类别

组合类别

相关参数

公认强制

Well-konwn mandatory attributes

必须携带+都能识别

origin

AS_Path

Next-hop

公认自由

Well-konwn discretionary attributes

不一定携带+都能识别

Local_Preference

ATOMIC_Aggregate

可选传递

Optional transitive attributes

不一定识别+会传递

Community

Aggregator

可选非传递

Optional nontransitive attributes

不一定识别+不会传递

MED

Originator_ID

[2]属性
①as-path(AS路径)

——公认强制==>必须携带且都能识别

  • 标识路由条目传递时经过的AS;
  • 防止AS间环路=>从EBGP邻居学到的路由信息且携带本地AS时,此路有丢弃

——规则:越短越优先[经过越少,越优先]

——控制:

  • 【1】通过Prefix-list抓取路由
#思科
#R3
ip prefix-list [as-path] seq 5 permit 3.3.3.3/32
  • 1.
  • 2.
  • 3.
#华为
ip ip-prefix as-path permit 3.3.3.3 32
  • 1.
  • 2.
  • 【2】通过route-map设置策略
#思科
#R3
route-map [as-path] permit 10
match ip address prefix-list [as-path]
set as-path prepend 34 34 34 34	#抓取到的匹配路由按照该方式进行膨胀路径
route-map [as-path] permit 20		#剩余没有抓取到的按照原方式路由
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
#华为
route-policy as-path permit node 10
if-match ip-prefix [as-path]
apply as-path 34 34 34
  • 1.
  • 2.
  • 3.
  • 4.
  • 【3】针对某个邻居应用策略
#思科
router bgp 100
neighbor 2.2.2.2 route-map AS-PATH in

#“别人给我--使用in;我给别人--使用out”
#需要在bgp路由表侧进行清除

(config)do clear ip bgp * soft
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
#华为
bgp 100
peer 23.1.1.1 route-policy as-path import/export
  • 1.
  • 2.
  • 3.

【原先】

路由技术【Routing】万字讲解_链路_27

【在R3配置前缀列表策略后】

路由技术【Routing】万字讲解_链路_28

②next-hop(下一跳)

——公认强制==>必须携带且都能识别

  • 标识路由条目“下一跳”
  • 到达此路由条目的更新源

——规则:IGP-->一个路由器为1跳;EGP-->一个AS为一跳

【AS边界路由器对内部其他路由器指明"下一跳"为自己,告知内部路由器,可以将访问外部的AS流量交给ASBR】

——控制:

#思科
router bgp 12
neighbor 1.1.1.1 next-hop-self
  • 1.
  • 2.
  • 3.
③origin(起源)

——公认强制==>必须携带且都能识别

  • 标识路由条目的从哪里来
  • i-->network command【通告network通告命令】
  • e-->Redistributed from EGP【通过EGP协议】
  • ?-->Redistributed from IGP or static【通过重分发】
  • 【i>?>e】

——控制:

  • i==>常规配置即为[i]
  • e==>
#思科
ip prefix-list ORIGIN permit 5.5.5.5/32		#列表抓取路由
route-map ORIGIN permit 10		
match ip address prefix-list ORIGIN
set origin egp 100	#设置该路由属性
route-map origin permit 20	#设置未筛选的空语句

router bgp 65000
neighbor 192.168.1.1 route-map origin in	#应用,路由过滤
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • ?==>
#思科
ip prefix-list ORIGIN permit 7.7.7.7/32
route-map ORIGIN permit 10
match ip address prefix-list ORIGIN
set origin incomplete	#设置该路由属性
route-map origin permit 20	#设置未筛选的空语句

router bgp 65000
neighbor 192.168.1.1 route-map origin in	#应用,
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

【如图,现将R6看到R5和R7的BGP路由表进行调整,原先左侧的[i]-->[e];右侧的[i]-->[?]】

路由技术【Routing】万字讲解_路由协议_29

【原先表项】

路由技术【Routing】万字讲解_路由协议_30

#R5:
ip prefix-list origin-5 permit 5.5.5.5/32
route-map origin-5 permit 10
match ip address prefix-list origin-5
set origin-5 egp 100
route-map origin-5 permit 20

router bgp 567
neighbor 6.6.6.6 route-map origin-5 out	#指向R6
===============================================
#R7:
ip prefix-list origin-7 permit 7.7.7.7/32
route-map origin-7 permit 10
match ip address prefix-list origin-7
set origin-7 incomplete
route-map origin-7 permit 20

router bgp 567
neighbor 6.6.6.6 router-map origin-7 out	#指向R6
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

【调整后表项】

路由技术【Routing】万字讲解_链路_31

④local preference(本地优先级)

——公认自由==>不一定携带+都能识别

  • 控制AS内部路由器访问外部AS的选路
  • 只在内部AS传递

——规则:越高越优先,默认为100

——控制:【这里将R6访问R8优先往左侧走,R6访问R9优先往右侧走】

#思科
#R6
ip prefix-list local-8 permit 8.8.8.8/32
ip prefix-list local-9 permit 9.9.9.9/32

route-map local-8 permit 10
match ip address prefix-list local-8
set local-preference 200
route-map local-8 permit 20

route-mao local-9 permit 10
match ip address prefix-list local-9
set local-preference 200
route-map local-9 permit 20

router bgp 567
neighbor 5.5.5.5 route-map local-8 in
neighbor 7.7.7.7 route-map local-9 in
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

【原先表项】

路由技术【Routing】万字讲解_IP_32

【调整后表项】

路由技术【Routing】万字讲解_IP_33

⑤MED(多出口鉴别器)【Metric度量值】

——可选非传递==>不一定识别+不会传递

  • 控制EBGP邻居如何到达本AS

——规则:越小越优先,默认为0

——控制:【这里将原先R8访问R6往左侧走的路由调整为往右侧经过R3走,在R2上配置度量值】

#思科
#R2
ip prefix-list med permit 6.6.6.6/32
route-map med permit 10
match ip address prefix-list med
set metric 100 
route-map med permit 20

router bgp 12
neighbor 28.1.1.1 route-map med out

#路由表刷新
do clear ip bgp * soft
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

【原先表项】

路由技术【Routing】万字讲解_IP_34

【调整后表项】

路由技术【Routing】万字讲解_IP_35

⑥weight(权重)【思科私有属性】

——思科私有属性

  • 控制本地路由器的选路

——规则:越大越优先,默认32768

——控制:【只能在本地in方向执行】

#思科
ip prefix-list WEIGHT seq 5 permit 17.17.17.17/32
route-ap WEIGHT permit 10
match ip address prefix-list WEIGHT
set weight 10000
route-map WEIGHT permit 20
router bgp 2345
neigbor 4.4.4.4 route-map WEIGHT in
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

——实验【上图当中的R6访问R9,原先从右侧上行访问,现改变weight使其从左侧上行】

#思科
ip prefix-list WEIGHT seq 5 permit 9.9.9.9/32
route-ap WEIGHT permit 10
match ip address prefix-list WEIGHT
set weight 10000
route-map WEIGHT permit 20
router bgp 567
neigbor 5.5.5.5 route-map WEIGHT in
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

【原先表项】

路由技术【Routing】万字讲解_链路_36

【调整后表项】

路由技术【Routing】万字讲解_IP_37

6、选路原则

内部策略一般用【Local-pre】【Weight】

外部策略一般用【AS-PATH】【MED】

大致熟悉1-6的路径属性即可

选路顺序

数值

权重

高权重优先

优先级

高优先级优先

本地起源

本地起源

AS路径

最短AS路径

起源代码

最小起源代码

MED

最小MED

EBGP优于IBGP

EBGP优于IBGP

最近IGP

最近的IGP邻居

负载均衡

生存最长路由

生存最长路由优先

Router-id

最小Router-id

Cluster_list

最短Cluster_list

IP地址

最小IP地址

7、邻居认证

原理:非法用户向路由器发送伪造路由信息【中间人Attack】、【更改/破坏目标路由器的路由表】

防止未经身份验证/伪造的数据包交换,路由器需确保它们与受信任邻居建立信任的路由协议关系

认证方式:明文/MD5

  • 认证成功==>互相学习路由;认证失败==>拒绝路由更新包

BGP只支持MD5认证,认证信息放置在TCP头部中

router bgp 567
neighbor 5.5.5.5 password [password]
  • 1.
  • 2.

8、BGP动态默认路由

互联网边界路由器,需要将默认路由注入动态协议中,使其内部路由器能基于该默认路由进行访问外部网络

配置
法一:
#思科
router bgp 567
neighbor 6.6.6.6 default-orginate
  • 1.
  • 2.
  • 3.
法二:
ip route 0.0.0.0 0.0.0.0 null 0
router bgp 12
netwok 0.0.0.0
  • 1.
  • 2.
  • 3.

9、路由汇总

最大限度减少路由表数量,降低网络带宽消耗,提高路由器转发效率,

减少路由震荡,提高网络运行稳定性

流程:【功能与RIP/OSPF相似】

计算相同掩码比特位进行调整汇聚

配置:

法一:常规方式

#手工方式将精细路由汇总到null 0==>精细路由本地汇总,指向null口,防止环路
ip route 172.16.0.0 255.255.252.0 null 0

#bgp内通告
router bgp 100
network 172.16.0.0 mask 255.255.252.0
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

法二:专业做法

#通过network通告精细路由
router bgp 100
network 172.16.0.0 mask 255.255.255.0
netwrok 172.16.1.0 mask 255.255.255.0
network 172.16.2.0 mask 255.255.255.0
network 172.16.3.0 mask 255.255.255.0

#部署路由聚合/路由汇总
aggregate-address 172.16.0.0 255.255.252.0 summary-only 
#只通过汇总路由,不配置这条命令则会使得路由表原本的基础上多一条汇总路由
#后面还可以添加参数补全as-set属性
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

10、对等体组

peer-group,简化BGP配置,类似组策略

配置
[1]创建对等体组
router bgp 567
neighbor IBGP-GROUP peer-group

[2]针对对等体组做策略
neighbor IBGP-GROUP remote-as 567
neighbor IBGP-GROUP update-source loopback 0
neighbor IBGP-GROUP next-hop-self

[3]邻居放入对等体组
neighbor 6.6.6.6 peer-group IBGP-GROUP
neighbor 7.7.7.7 peer-group IBGP-GROUP
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

11、路由反射[Route-Reflect]

解决全互联拓扑中邻居数量过多的问题。通过RR技术结合部分互联拓扑,有效降低邻居数量

角色

[1]Route-Reflector Server——反射服务器

[2]Route-Reflector Client——反射客户端

[3]Route-Reflector Cluster——反射簇

规则

①反射客户端和服务端组成一个【反射簇】,反射簇内路由信息共享,逻辑上=一个大路由器

减少邻居建立数量

②“大路由器”只有Server知道,Client不知道

③反射簇成员数量不受限

④服务器Server会将路由条目反射给客户端,也会反射给下一跳非簇邻居。

[注]如果有AS内有多台路由器需要进行建立邻居,可以进行指向下一台路由器作为Route-reflect-client

router bgp 567
neighbor 5.5.5.5 route-reflector-client
  • 1.
  • 2.

12、路由联盟/联邦【Route-Confederation】

解决全互联拓扑中邻居数量过多的问题

通过路由联盟,切割AS,有效降低邻居数量

——可以将【联盟】理解为【一个大AS域BGP】当中的【多个子AS域】;【两个子AS域间为EBGP关系】

【特点】[大AS域外部的路由器--A]无法识别该[大AS域路由器--B内部其他联盟路由器的路由表],路由表只会在该AS域当中传播

路由技术【Routing】万字讲解_路由协议_38

配置方式:
[1]原BGP配置基础上进行AS域拆分,原先的BGP配置为子AS域配置
[2]配置联盟-->大AS域确认。在子AS域间使用环回口,并且边界EBGP多跳

#R7:
router bgp 78
bgp confederation identifier 789	#宣告所在的大AS域
network 7.7.7.7 mask 255.255.255.255
neighbor 27.1.1.1 remote-as 12
neighbor 8.8.8.8 remote-as 78
neighbor 8.8.8.8 next-hop-self
neighbor update-source loopback 1

bgp confederation peers 9

#R8
router bgp 78
bgp confederation identifier 789		#宣告所在的大AS域
network 8.8.8.8 mask 32
neighbor 7.7.7.7 remote-as 78
neighbor 7.7.7.7 update-source lo 1
neighbor 7.7.7.7 next-hop-self
neighbor 9.9.9.9 remote-as 9
neighbor 9.9.9.9 update-source lo 1
neighbor 9.9.9.9 next-hop-self
neighbor 9.9.9.9 ebgp-multihop

bgp confederation peers 9

#R9
router bgp 9
bgp confederation identifier 789
network 9.9.9.9 mask 255.255.255.255
neighbor 8.8.8.8 remote-as 78
neighbor 8.8.8.8 update-source lo 1
neighbor 8.8.8.8 next-hop-self
neighbor 8.8.8.8 ebgp-multihop
neighbor 39.1.1.1 remote-as 34

bgp confederation peers 78
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
在查看时,ip bgp表项当中带"()"内的数值即为联盟内部as域
  • 1.
#在华为当中为
bgp 78
confederation id 789		#宣告所在的大AS域
confederation peer as 9	#宣告对端联盟AS域

#查看BGP表情况命令
display bgp routing-table
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

【华为当中BGP联盟】

路由技术【Routing】万字讲解_路由协议_39