一、定义
① 路由【Routing】技术
主要研究【路由器[Router]】如何基于【路由表[Route Table]】或【路由协议[Route Protocol]】选择最佳路径,对数据包进行转发的技术
② 分类:
根据路由条目形成的方式差异,可以分为【静态路由技术】与【动态路由技术】
二、静态路由技术
①直连路由[Connected Route]
与设备接口连接的IP地址自动生成的路由。
路由器接口开启并配置IP地址,则会自动生成直连路由
②静态路由[Static Route]
管理员手工配置
第一代路由技术,工程师[手工]静态编写,告知路由器将数据包转发到哪个接口/下一跳(邻居),适合小型网络
③默认路由[Default Route]
管理员手工配置
应用于网络(企业网、校园网、园区网等)出口,用于指向互联网,实现内网设备和外网的通信
默认路由放置在路由表的最底部,只有当常规/精确的路由条目没有匹配时,才会查看/调用默认路由——“最后一根稻草”
④浮动路由[Floating Route]
管理员手工配置
用于实现多出口环境下的路径选择,通过浮动路由技术,可以将所有数据流指往主路径,当主路径出现故障后,流量能够自动切换到备用路径。
三、动态路由技术
[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前往目的服务器
②管理距离
【Administrator Distance】优先级,越小越优先。用于衡量不同路由协议之间的路径优劣。
在【最长匹配原则】一致后,不同路由协议之间的管理距离
③度量值
Metric,用于衡量同一路由协议的路径优劣。度量是路由协议用于计算路径的方式/参数,如:带宽、距离、MTU、延迟等等
①一致后,匹配②,②一致后匹配其是③度量值。
总结:
最长匹配原则->管理距离->度量值->负载均衡
动态路由协议详解【RIP】【OSPF】【BGP】
【一】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条路由 |
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的更新,也不接受
抑制超时后,再重新接受邻居发送的关于此路由的更新报文
7、计时器
[1]update timer【更新计时器】
30s
用于实现对路由信息的周期交互
[2]invalid timer【无效计时器】
180s
——老化定时器
路由条目180s内没有收到更新,标识此路由不可达
[3]flushed timer【刷新计时器】
——垃圾收集定时器
240s
垃圾收集时间内仍然没有收到原不可达路由的更新,路由从RIP路由表彻底删除
8、触发更新
路由器定期激活RIP接口发送响应报文,缺省情况,RIP隔30s发一次报文
触发更新——当路由器感知拓扑变化/RIP路由度量变化时,立即发送Response消息,无需等待下一个更新周期。
抓包时会有反复高频的发送Response RIP报文
9、路由汇总——路由聚合/超网
【最大限度减少路由表数量】、【降低网络带宽消耗】、【提高路由转发效率】
减轻路由震荡,提高网络运行稳定性
流程等价于IP掩码机制的执行==>[所需汇总路由IP转为二进制]-->[相同比特位进行汇总]-->[编制掩码]-->[不同比特位全归零]
10、认证原理
【Attacker】向路由器发送伪造路由信息,【中间人Attack】【更改/破坏目标路由器的路由表】
原理:防止未经身份验证/伪造数据包交换,路由器确保与信任邻居建立信任路由协议关系。
认证方式:【明文】【MD5】-->认证成功,则互相学习路由;认证失败,拒绝路由更新包
明文-->容易造成数据包泄露,目前不建议使用
MD5-->使用MD5算法生成密钥的[消息摘要]/[散列]进行交互(不发送密钥本身)提高安全性,避免密钥被监听
11、被动接口[Passive Interface]
原理:将不需要发送路由的接口进行软关闭,节省带宽消耗,提高安全性
使用区域:【互联网边界】【路由交换边界】【特殊安全策略】
在交换区域没有发送的必要,故在交换区域可以进行关闭
12、单播更新
修改协议默认组播/广播更新机制,采用单播方式与邻居交互路由。特定网络情况下,可以较好地节省网络带宽,实现流量优化
13、动态默认路由
互联网边界路由器,将默认路由注入到动态协议中,使内部路由器能基于动态默认路由,访问外部网络
在其他路由器当中可以看到通过rip的默认路由
【二】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】
②从起点【R1】,定位单个邻居【R2】,算【R1->R2->邻居】开销
【R1-R2-R3】;【R1-R4】[R4在①当中已出现,故不进入该次计算]
③从起点【R1】,定位单个邻居【R4】,【算R1->R4->邻居】开销
【R1-R4-R3】;【R1-R4】[R2在②当中已出现,故不进入该次计算]
③从起点【R1】,定位单个邻居【R4】,【算R1->R4->邻居】开销
[从R3到剩下路径,若前方已出现,则比对开销,取最小]
④收敛成最短路径树[SPT,Shortest Path Tree]
4、相关术语和配置详情
【术语】
进程号:
标识不同ospf进程[1~65535],邻居间采用不同进程,可正常通信
路由标识符:
[RID]选取流程——①手工指定[一般为环回]②环回IP最大③物理口IP最大
通配符掩码:
标识需要通告的网段范围——反掩码[标识需要通告的网段范围]
【0】精确匹配,【1】标识随意
子网掩码vs反掩码
子网掩码[mask]——标识网络和主机边界
【0】主机位,【1】网络位
区域与区域号:
[区域]——标识路由器/路由信息所在区域
[区域划分]——骨干区域【0】、常规区域、特殊区域
骨干区域——实现常规区域的流量中转,防止环路。常规区域无法直接通信,必须经过骨干区域
【区域划分的作用】:
①降低网络运维管理难度;
②使网络拓扑更具层次和立体化;
③最大程度减少网络动荡和网络路径计算消耗
④区域间防环,常规区域无法直接通信,将数据丢给骨干区域,骨干统一转发(星型放射拓扑)
路由类型:
【内部路由器[Internal Router]】一台路由器启动OSPF的接口都在同一区域
【骨干路由器[Backbone Router]】至少有一个启用OSPF的接口和骨干区域相连
【区域边界路由器[Area Border Router,ABR]】连接一个/多个区域的路由器
【自治系统边界路由器[Autonomous System Boundary Router,ASBR]】不同路由域之间的路由器[rip]---[ospf]
图解
【配置详情】
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信息必须被显示确认
图解
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
Master/Slave主从选举
功能——用于实现DBD数据库描述包的可靠传输,通过序列号机制实现
——主路由器初始化DBD Exchange过程
——在每个DBD内置序列号并持续递增;路由器收到后,内主主序列号表示确认。
【图解】
字段 | 作用 | 置位含义 |
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
【2】AS间路由汇总[跨路由协议汇总]asbr-summary
9、路由认证
[Attacker]向路由器发送伪造的路由信息,[中间人Attacker]——更改/破坏目标路由器的路由表情况
认证作用——防止未经身份验证/伪造的数据包交换,确保路由器与信任邻居建立正确的路由协议关系
认证方式:【明文】/【MD5】——认证成功则相互学习;失败则拒绝更新包
MD5方式——生成密钥的[消息摘要/散列]
10、动态默认路由
将默认路由引入动态协议当中,使内部路由器可基于动态默认路由访问外部网络。
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、区域类型
【图解】
[1]【骨干区域】——正常流量中转站
[2]【常规区域】——正常区域,接收各类LSA信息
[3]【末节区域】Stub Area
区域内仅通告对外的一条默认路由【O |A*】
【注】①末节区域不能是骨干区域;②不能有虚链路
存在条目:区域间路由条目+本地区域路由+对外访问的默认路由
[4]【完全末节区域】Totally Stub Area
末节基础上,不接受LSA3类信息[区域间路由条目]
存在条目:本地区域路由+对外访问的默认路由
路由条目数大幅度减少,并且可以ping通外部
[5]【非纯末节区域】Not-So-Stubby-Area
存在条目:[type-1][type-2][type-3][type-7]
[6]【非纯完全末节区域】Totally Not-So-Stubby-Area
在非纯末节区域基础上,不接收LSA-3类信息
[7]【脱节区域】
网络发生迁移时,常规区域没有直接“挂接”到骨干区域,导致无法学习到其他区域的链路信息,引入【虚链路技术】
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建立——手工指定 |
【三】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协议建立连接,连接建立的效率较低,侧重点在于可靠性
【注】此时可以看到BGP数据库相关信息,但是AS内部路由器无法查看到对端外部AS相关路由表情况
——原因:以R1为例,R1上无法查看到对端AS,因其数据库当中下一跳地址为外部EBGP的23.1.1.2/24而非R2上的下一跳,从而导致数据丢弃->需要在出口路由器上添加内部邻居命令指向内部路由器命令
拓展--IBGP的环回口邻居建立以及EBGP多跳
IBGP环回口建立邻居——由于BGP采用TCP方式,且环回口永久开启,用环回口建立邻居更能保障可靠性链路
EBGP多跳——由于IBGP内部抓包TTL为255,而EBGP抓包TTL为1,则需要使用多跳技术才能使得TTL改变而进行通信
【建议】①IBGP建立邻居尽可能使用环回口;②EBGP建立邻居尽可能使用直连而非环回口
由于EBGP之间没有协议,故需要静态路由来进行建立路由通信
3、路由分类
【过程】
主要报文:【先建立TCP通信(过程省略)】
①Open——参数协商,建立邻居关系【TCP三次握手后发送】
②Keepalive——邻居关系的维持,可靠性确认,周期:60s
③Update——更新路由条目,路径属性
相关报文:
*④Notification——BGP报错
*⑤Route-Refresh——路由策略刷新
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路由器能获取到所有路由表,但是无法转发,形成路由黑洞
抓取路由表可以观察到【R7上缺少R9侧的路由表】;【R9上缺少R7侧的路由表】;【R8侧路由表完整】
-->R8成为水平分割路由器
R7
R8
R9
后续在两两建立邻居关系,并且在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抓取路由
- 【2】通过route-map设置策略
- 【3】针对某个邻居应用策略
【原先】
【在R3配置前缀列表策略后】
②next-hop(下一跳)
——公认强制==>必须携带且都能识别
- 标识路由条目“下一跳”
- 到达此路由条目的更新源
——规则:IGP-->一个路由器为1跳;EGP-->一个AS为一跳
【AS边界路由器对内部其他路由器指明"下一跳"为自己,告知内部路由器,可以将访问外部的AS流量交给ASBR】
——控制:
③origin(起源)
——公认强制==>必须携带且都能识别
- 标识路由条目的从哪里来
- i-->network command【通告network通告命令】
- e-->Redistributed from EGP【通过EGP协议】
- ?-->Redistributed from IGP or static【通过重分发】
- 【i>?>e】
——控制:
- i==>常规配置即为[i]
- e==>
- ?==>
【如图,现将R6看到R5和R7的BGP路由表进行调整,原先左侧的[i]-->[e];右侧的[i]-->[?]】
【原先表项】
【调整后表项】
④local preference(本地优先级)
——公认自由==>不一定携带+都能识别
- 控制AS内部路由器访问外部AS的选路
- 只在内部AS传递
——规则:越高越优先,默认为100
——控制:【这里将R6访问R8优先往左侧走,R6访问R9优先往右侧走】
【原先表项】
【调整后表项】
⑤MED(多出口鉴别器)【Metric度量值】
——可选非传递==>不一定识别+不会传递
- 控制EBGP邻居如何到达本AS
——规则:越小越优先,默认为0
——控制:【这里将原先R8访问R6往左侧走的路由调整为往右侧经过R3走,在R2上配置度量值】
【原先表项】
【调整后表项】
⑥weight(权重)【思科私有属性】
——思科私有属性
- 控制本地路由器的选路
——规则:越大越优先,默认32768
——控制:【只能在本地in方向执行】
——实验【上图当中的R6访问R9,原先从右侧上行访问,现改变weight使其从左侧上行】
【原先表项】
【调整后表项】
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头部中
8、BGP动态默认路由
互联网边界路由器,需要将默认路由注入动态协议中,使其内部路由器能基于该默认路由进行访问外部网络
配置
法一:
法二:
9、路由汇总
最大限度减少路由表数量,降低网络带宽消耗,提高路由器转发效率,
减少路由震荡,提高网络运行稳定性
流程:【功能与RIP/OSPF相似】
计算相同掩码比特位进行调整汇聚
配置:
法一:常规方式
法二:专业做法
10、对等体组
peer-group,简化BGP配置,类似组策略
配置
11、路由反射[Route-Reflect]
解决全互联拓扑中邻居数量过多的问题。通过RR技术结合部分互联拓扑,有效降低邻居数量
角色
[1]Route-Reflector Server——反射服务器
[2]Route-Reflector Client——反射客户端
[3]Route-Reflector Cluster——反射簇
规则
①反射客户端和服务端组成一个【反射簇】,反射簇内路由信息共享,逻辑上=一个大路由器
减少邻居建立数量
②“大路由器”只有Server知道,Client不知道
③反射簇成员数量不受限
④服务器Server会将路由条目反射给客户端,也会反射给下一跳非簇邻居。
[注]如果有AS内有多台路由器需要进行建立邻居,可以进行指向下一台路由器作为Route-reflect-client
12、路由联盟/联邦【Route-Confederation】
解决全互联拓扑中邻居数量过多的问题
通过路由联盟,切割AS,有效降低邻居数量
——可以将【联盟】理解为【一个大AS域BGP】当中的【多个子AS域】;【两个子AS域间为EBGP关系】
【特点】[大AS域外部的路由器--A]无法识别该[大AS域路由器--B内部其他联盟路由器的路由表],路由表只会在该AS域当中传播
配置方式:
【华为当中BGP联盟】