文章目录
动态路由概述
动态路由:基于某种路由协议实现
常见的动态路由协议
RIP
路由信息协议(RIP) 是内部网关协议IGP中最先得到广泛使用的协议。RIP是一种分布式的基于距离向量的路由选择协议,是因特网的标准协议,其最大优点就是实现简单,开销较小。 [2]
OSPF
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。
IS-IS
IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)路由协议最初是ISO(the International Organization for Standardization,国际标准化组织)为CLNP(Connection Less Network Protocol,无连接网络协议)设计的一种动态路由协议。
BGP
边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。
动态路由特点
减少了管理任务,占用了网络带宽
动态路由协议概述
路由器之间用来交换信息的语言
度量值:跳数、带宽、负载、时延、可靠性、成本
路由器会通过度量值来确定最优路由路径
收敛:使所有路由表都达到一致状态的过程
动态路由的分类
距离矢量路由协议:依据从源网络到目标网络所经过的路由器的个数选择路由
RIP、IGRP(思科私有协议)
链路状态路由协议:综合考虑从源网络到目标网络的各条路径
OSPF、IS-IS
RIP路由协议
RIP的基本概念
RIP使距离矢量路由协议
1.定期更新(30s)
2.邻居
3.广播更新RIPV1:255.255.255.255 (V2版本组播更新224.0.0.9)
4.全路由表更新
RIP的度量值与更新时间
RIP度量值为跳数,最大跳数为15跳,16跳为不可达
RIP更新时间,每隔30s发送路由更新消息,UDP520端口
RIP路由更新消息:发送整个路由表信息
RIP协议防环机制
路由毒化
当路由器发现路由链路进行变更或者down掉后,会将这个路由毒化,标志为16跳,不可达
水平分割
水平分割可以阻止路由环路的发生
从一个接口学习到路由信息,不再从这个接口发送回去,同时也能减少路由更新信息占用的链路带宽资源
RIPV1和RIPV2的区别
RIP的配置
【R1】rip 1 启动RIP
【R1 - rip - 1】network x.x.x.x
【R1 - rip - 1】network x.x.x.x
【R1 - rip - 1】version 2 启动版本2
【R1 - rip - 1】undo summary 关闭路由自动聚
OSPF路由协议单区
OSPF路由协议概述
内部网关协议和外部网关协议
1.自治系统(AS)
AS是指由同一个技术管理机构管理,使用统一选路策略的一些路由器集合。
2.内部网关协议(IGP)
内部网关协议:工作在AS内部的路由协议,主要解决AS内部的选路问题,发现、计算路由
例:RIP、OSPF、ISIS、EIGRP
3.外部网关协议(EGP)
外部网关协议:运行在AS与AS之间的路由协议,他解决AS之间选路由的问题。
例:BGP
OSPF是链路状态路由协议
路由器对全网拓扑完全了解。是传信的路由,a将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起给c,这样,信息没有任何改变和丢失,最后所有路由器都收到相同的一堆信,这一堆信就是SLDB。然后,每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree(即到达目的地的各个方案),选出最佳路径,放入路由表中。
OSPF的工作过程
1.邻居列表
2.链路状态数据库
3.路由表
OSPF 区域
1.为了适应大型的网络,OSPF在AS内划分多个区域。
2.每个OSPF路由器只维护所在区域的完整链路状态信息。
骨干区域:负责区域间路由传输
区域ID
区域ID可以表示成一个十进制数字
也可以表示成一个IP
Router ID
OSPF区域内唯一标识路由器的IP地址
router id选举规则
1.自动——选取路由器loopback接口上数值最高的IP地址。
2.自动——如果没有loopback接口,在物理端口中选取IP地址最高的。
3.手工——也可以使用router-id命令指定router id,是优先级最高的。
一般使用回环网口:loopback
loopback回环网口:相当于路由器身体内的自带的接口,除非路由器自身损坏,不然回环网口不会出现问题。
DR和BDR
1.指定管理员(DR)
这个DR就相当路由器小队中的队长,每个组员只需要把自己的邻接信息发送给DR,DR再去传输给其他成员就可以了。
(1)DR作用:
1.解决链路邻接关系过多的情况
2.与其他路由器形成一对一关系,DR来进行管理
2.备用管理员(BDR)
相当于副队长,作用相同,当DR出现问题,BDR来接替
3.其他路由器(DRothers)
只和DR和BDR形成邻接关系,DRothers之间是不形成邻接关系的
DR和BDR选举方法
自动选举——同时开机的情况,或者DR、BDR坏掉,重新选举
1.网段上route id最大的路由器被选举成DR,第二大的被选举成BDR
手工选举
1.优先级。范围0~255,数值越大,优先级越高,默认为1
2.如果优先级相同,需要比较router id
3.如果路由器优先级被设置为0,将不参加选举
DR、BDR选举过程——先开机,先得到
路由器优先级可以影响一个选举过程,但是它不能强制更换已经存在的DR或者BDR
OSPF的组播地址
224.0.0.5——刚开机,互相发送hello包,状态信息交互,选举DR和BDR
224.0.0.6——其他路由器通过224.0.0.6发送自己的信息给DR和BDR
DR和BDR再通过224.0.0.5将收到的信息转发给其他的路由器
OSPF数据包(一协议)
1.承载在IP数据包内,使用协议号89.
OSPF的包类型
1.hello包——————————用于发现和维持邻居关系,选举DR和BDR
2.数据库描述包(DBD)————用于向邻居发送摘要信息以同步链路状态数据库
3.链路状态请求包(LSR)————在路由器收到包含新的DBD后发送,请求更详细的信息
4.链路状态更新包(LSU)————收到LSR后发送链路状态通告(LSA),LSA的集合体LSU
5.链路状态确认包(LSACK)———确认已经收到DBD/LSU,每个LSA需要被分别确认
OSPF邻接关系的建立
1.Down状态–——初始状态
2.Init状态————收到第一个hello包,只有对方的route id,进行回复,将自己的route id发送给对方
3.2-way状态–——建立邻接关系,开始选举DR,BDR
4.ExStart状态——确认主从关系
5.Exchange状态–双方发送DBD数据库描述,并互相确认收到
6.Loading状态——LSR互相请求新链路状态的详细信息,LSU互相发送关于新链路的链路状态包,LSACK互相收到确认
7.Full状态————双方达成一致,进入收敛状态
OSPF网络类型
OSPF将网络分为四种类型
点到点网络
——自动发现邻居,不需DR/BDR,组播224.0.0.255
广播多路访问网络
——自动发现邻居、选DR/BDR、组播224.0.0.5、224.0.0.6
非广播多路访问网络
——手工指定邻居、选DR/BDR、单播
点到多点网络
——自动发现邻居,不需DR/BDR、组播224.0.0.5
OSPF路由协议多区
生成OSPF多区域的原因
1.改善网络的可扩展性
2.快速收敛:加快路由表收敛
OSPF的三种通信量
域内通信量(Intra-Area Traffic)
——单个区域内的路由器之间交换数据包构成的通信量
域间通信量(Inter-Area Traffic)
——不同区域的路由器之间交换数据包构成的通信量
外部通信量(External Traffic)
——OSPF域内的路由器与OSPF区域外或另一个自治系统
内的路由器之间交换数据包构成的通信量
OSPF 的路由器类型
1.区域边界路由器(ABR)——将负责汇总一个区域的路由信息,传输给另一个区域
2.自治系统边界路由器(ASBR)——学习外部的路由,还能学习其他区域路由,负责将外部路由注入到OSPF的网络中
3.指定管理员(DR)
4.备用管理员(BDR)
5.其他路由器(DRothers)
OSPF的区域类型
1.骨干区域Area 0——负责区域间路由传输
2.非骨干区域—根据能够学习的路由种类来区分
-标准区域
-末梢区域(stub)
-完全末梢(Totally stubby)区域
-非纯末梢区域(NSSA)
OSPF链路状态数据库的组成
链路数据状态库的组成
——每个路由器都创建了由每个接口、对应的相邻节点和接口速度组成的数据库
——链路状态数据库中每个条目称为LSA(链路状态通告),常见的有六种LSA类型
OSPF链路状态通告类型
Type 1——路由器LSA ———由区域内的路由器发出的,描述路由器的链路状态和花费,传递到整个区域内
Type 2——网络LSA————由区域内的DR发出的,描述了区域内变更信息,传递到整个区域内
Type 3——网络汇总LSA——ABR发出的,其他区域的汇总链路通告,描述了其他区域内某一网段的路由,区域间传递
Type 4——ASBR汇总LSA——ABR发出的,用于通告ASBR信息,确定ASBR的位置,不会出现在ASBR所属区域之内
Type 5——AS外部LSA———ASBR发出的,用于通告外部路由,告诉相同AS的路由器通往外部AS的路径,在整个AS中进行泛洪
Tpye 7——NSSA外部LSA——NSSA区域内的ASBR发出的,用于通告本区域连接的外部路由,与Type 5类似,仅在非纯末梢区域内进行泛洪,传递时会被ABR转换位LSA5
路由器对路由条目的选择
路由器只把最优的路由条目添加到路由表
选择路由条目的依据
1.管理距离
2.度量值
末梢区域和完全末梢区域
它们都满足以下条件
1.只有一个默认路由作为其区域的出口
2.区域不能作为虚链路的穿越区域
3.Stub区域里无自治系统边界路由器ASBR
4.不是骨干区域Area 0
末梢区域
没有LSA4、5、7通告
完全末梢区域
除一条LSA3的默认路由通告外,没有LSA3、4、5、7通告
末梢区域和完全末梢区域的作用
其主要目的是减少区域内的LSA条目以及路由条目,减少对设备CPU和内存的占用;末梢区域和完全末梢区域中ABR会自动生成一条默认路由发布到末梢区域或完全末梢区域中。
末梢区域配置命令
ABR配置
【R4】ospf 1
【R4-ospf-1】area 2
【R4-ospf-a-area-0.0.0.2】network x.x.x.x x.x.x.x 先宣告直连网段,再配
【R4-ospf-a-area-0.0.0.2】stub
区域内部路由配置
【R5】ospf 1
【R5-ospf-1】area 2
【R5-ospf-a-area-0.0.0.2】network x.x.x.x x.x.x.x 先宣告直连网段,再配
【R5-ospf-a-area-0.0.0.2】stub
完全末梢区域配置命令
ABR配置
【R4】ospf 1
【R4-ospf-1】area 2
【R4-ospf-a-area-0.0.0.2】network x.x.x.x x.x.x.x 先宣告直连网段,再配
【R4-ospf-a-area-0.0.0.2】stub no-summary
区域内路由配置
【R5】ospf 1
【R5-ospf-1】area 2
【R5-ospf-a-area-0.0.0.2】network x.x.x.x x.x.x.x 先宣告直连网段,再配
【R5-ospf-a-area-0.0.0.2】stub no-summary
路由重分发
一个单一IP路由协议是管理网络中IP路由的首选方案
能执行多个路由协议,每一个路由协议和该路由协议所服务的网络属于同一个自治系统
使用路由重分发特性以交换由不同协议创建的路由信息
路由重分发的考虑
度量值
管理距离 (优先级)
直连路由优先级为0
静态路由优先级为60
ospf优先级为10
bgp优先级为255
重分发到OSPF的路径类型
区域内路径、区域外路径、类型1的外部路径和类型2的外部路径
类型一(E1):内外综合考量
类型二(E2):只注重外部路径开销
——主要用于当有2个或以上的ASBR通向同一外部网络时进行选路
OSPF的路径类型的优先级
区域内路径:优先级1
区域间路径:优先级2
E1外部路径:优先级3
E2外部路径:优先级4
1表示最高的优先级,4表示最低的优先级
路由表添加路由条目时,如果目的网段相同,则会选择优先级高的路由条目添加到路由表中
NSSA区域
NSSA区域是OSPF RFC的补遗
1.定义了特殊的LSA类型7
2.提供类似stub area和totally stubby area的特点
3.可以包含ASBR
OSPF链路状态通告
LSA7(NSSA External LSA,NSSA外部LSA)
NSSA区域重分发路由类型
N1、N2
经过NSSA区域ABR后转换为E1、E2
地址汇总的作用
地址汇总通过减少泛洪的LSA数量节省资源
可以通过屏蔽一些网络不稳定的细节来节省资源
减少路由表中的路由条目
例:
192.168.1.0 /24——192.168.00000 001.0 /24
192.168.2.0 /24——192.168.00000 010.0 /24
192.168.3.0 /24——192.168.00000 011.0 /24
192.168.4.0 /24——192.168.00000 100.0 /24
16+5=21
192.168.00000000.0 /21
OSPF虚链路
虚链路
指一条通过一个非骨干区域连接到骨干区域的链路
虚链路的目的
通过一个非骨干区域连接一个区域到骨干区域
通过一个非骨干区域连接一个分段的骨干区域两边的部分区域
非骨干区域必须和骨干区域直接相连,若不与骨干区域直接相连,则需要在穿越一个非骨干区域的两台ABR之间配置虚链路
虚链路的建立,是需要依靠底层的真实链路所在的区域来传输OSPF报文。所以如果底层的穿越传输区域不稳定的话,则导致上层的虚链路不稳定,影响整个网络的骨干区域的稳定性。所以,一般不建议用这种方式。如果不得不使用,那么也仅仅是临时的解决方案。
在被穿越的非骨干区域的两端ABR配置虚链路
[R2]ospf 1
[R2-ospf-1]area 1
[R2-ospf-area-0.0.0.1]vlink-peer 1.1.1.1 ——互相指定被穿越区域两端ABR的路由ID
[R2]ospf 1
[R2-ospf-1]area 1
[R2-ospf-area-0.0.0.1]vlink-peer 2.2.2.2
[R1]display ospf vlink ——查看本地上通过虚链路建立的OSPF邻居关系
配置虚链路的规则及特点
1.虚链路必须配置在两台ABR路由器之间
2.传送区域不能是一个末梢区域
3.虚链路的稳定性取决于其经过的区域的稳定性
4.虚链路有助于提供逻辑冗余
OSPF路由重分发配置命令
R1]rip 1
[R1-rip-1]version 2
[R1-rip-1]undo summary
[R1-rip-1]network 11.0.0.0
[R1-rip-1]import-route ospf 1 cost 3
##把ospf协议注入到rip进行路由重分发,路径类型缺省为路径类型2(外部开销),成本开销为3(对于rip的度量值是跳数),rip中重分发把ospf要指定cost的值
[R1-ospf-1]ospf 1
[R1-ospf-1]import-route rip 1 type 1 cost 1
##把外部rip协议注入到ospf进行路由重分发,使用路径类型1(内部开销+外部开销),成本开销为1(cost=100M/BW)
[R1-ospf-1]defaule-route-advertise always ——# ospf重分发默认路由
[R2-ospf-1]import-route direct ——# ospf重分发直连路由
[R2-ospf-1]import-route static ——# ospf重分发静态路由
BGP边界网关协议
BGP概述
是一种实现自治系统AS之间的路由可达,并选择最佳路由的距离矢量路由协议。
自治系统AS
AS,指的是在同一个组织管理下,使用相同选路策略的设备的集合。
不同AS通过AS号区分,AS号取值范围1~65535,其中64512-65535是私有AS号。IANA负责AS号的分发。
中国电信163AS号:4134
中国电信CN2AS号:4809
中国网通AS号:9929
BGP特点
1.BGP使用TCP作为其传输层协议(监听端口号为179),提高了协议的可靠性。
2.BGP是外部路由协议,用来在AS之间传递数据,对稳定性要求非常高。因此用TCP协议的高可靠性来保证BGP协议的稳定性。
3.BGP的对等体之间必须逻辑上连通,并进行TCP连接。目的端口号为179,本地端口号任意。
4.BGP对等体和IGP对等体不同,BGP对等体(Peer)是指使用TCP建立连接的两端,而非与IGP同概念的直连邻居,只要TCP能够建立连接并不一定需要直连。
5.BGP本身只负责控制路由,数据转发依然靠静态或IGP路由。
6.BGP支持无类别域间路由CIDR。
7.路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
8.BGP是一种增强的距离矢量路由协议,从设计上避免了环路的发生。
9.AS之间:BGP通过携带AS_Path信息标记途经的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。
10.AS内部:BGP在AS内学到的路由不会再通告给AS内的BGP邻居,避免了AS内产生环路。
11.BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
12.BGP提供了防止路由振荡的机制(路由衰减),有效提高了Internet网络的稳定性。
13.BGP易于扩展,能够适应网络新的发展(ipv4单/组播、 vpv4单/组播)。主要是通过TLV进行扩展。
BGP分类
BGP按照运行方式分为EBGP和IBGP
EBGP:运行于不同AS之间的BGP称为EBGP。为了防止AS内产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。
IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了反射器和BGP联盟。
IBGP水平分割规则
C从E学习到的IBGP路由,由于水平分割规则的限制,不能够传递给B路由器,这将导致B无法学习到F通告的BGP路由。但是为了解决这个问题,E可以通过BGP连接,与B直接形成逻辑连接,达到全网连通的目的。
BGP的路由器号(route-id)
BGP的Router-ID是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话建立时发送的Open报文中携带。对等体之间建立BGP会话时,每个BGP设备都必须有唯一的RouterID,否则对等体之间不能建立BGP连接。
BGP的Router- ID在BGP网络中必须是唯一的,可以采用手工配置,也可以让设备自动选取。缺省情况下,BGP选择设备上的Loopback接口的IPv4地址作为BGP的Router -ID。如果设备上没有配置Loopback接口,系统会选择接口中最大的IPv4地址作为BGP的Router- ID。
一旦选出Router-ID,除非发生接口地址删除等事件,否则即使配置了更大的地址,也保持原来的Router-ID。
BGP工作原理
BGP对等体的建立、更新和删除等交互过程主要有5报文、6状态机和9原则。
BGP的五报文
BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送: .
Open报文:用于协商BGP对等体的各项参数,主要包括BGP版本(V4) 、AS号等信息,建立BGP对等体连接。Open是TCP连接建立后发送的第一个报文
Update报文:用于在对等体之间交换路由信息。
连接建立后,有路由需要发送或者路由变化时,发送Update通告对端可达或者撤销路由信息及路径属性。
Notification报文:用于中断BGP连接。
当BGP在运行中发现错误时,发送Notification报文通告BGP对端,随后与之相关的邻居关系将被关闭。
Keepalive报文:用于保持BGP连接。( 保活)
定时发送Keepalive报文以保持BGP对等体关系的有效性。响应收到的正确的Open报文
Route-refresh报文:用于在改变路由策略后软复位BGP路由表请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。
BGP六状态
BGP对等体的交互过程中存在6种状态机:空闲(Idle) 、连接(Connect) 、活跃(Active) 、Open报文已发送(OpenSent) 、Open报文已确认(OpenConfirm) 和连接已建立(Established) 。
在BGP对等体建立的过程中,通常可见的3个状态是: Idle、 Active 和Established。
1.Idle状态是BGP初始状态。在idle状态下,BGP拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态。
2.在Connect状态下,BGP启动连接重传定时器(Connect Retry) ,等待TCP完成连接。
如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。
如果TCP连接失败,那么BGP转至Active状态,反复尝试连接。
如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
3.在Active状态下,BGP总是在试图建立TCP连接。
如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至openSent状态。
如果TCP连接失败,那么BGP停留在Active状态。
如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。
4.在OpenSent状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。
如果发现收到的0pen报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。
5.在OpenConfirm状态下,BGP等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态, 如果收到Notification报文,则转至Idle状态。
6.在Established状态下,BGP可以和对等体交换Update、 Keepalive、 Route-refresh报文和Notification报文。
如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。
如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。
如果收到Notification报文,那么BGP转至Idle状态。
如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。
Route-refresh报文不会改变BGP状态。
BGP对等体之间交互九原则
BGP设备将最优路由加入BGP路由表,形成BGP路由。BGP设备与对等体建立邻剧关系后,采取以下交互原则:
1.从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体
2.从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体
3.当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体
4.路由更新时,BGP设备只发送更新的BGP路由
⑤所有EBGP对等体发送的路由,BGP设备都会接收
⑥所有EBGP对等体在传递过程中下一跳改变
⑦所有IBGP对等体在传递过程中下一跳不变
⑧默认EBGP传递时TTL值为1
⑨默认IBGP传递时TTL值为255
建立对等体注意点
直连建立对等体需要注意的点
建立IBGP对等体时要让下一跳可达,处于边界的IBGP对等体需要将下一跳指向自己,这样才能建立IBGP对等体。
用环回网口建立邻居需要注意的点
需要修改更新源,默认更新源是物理接口,需要修改成环回网口,建立IBGP对等体时要保障下一跳可达,处于边界的IBGP对等体需要将下一跳指向自己,这样才能建立IBGP对等体
建立EBGP对等体时因为EBGP只能传一跳,在建立EBGP对等体时,要修改EBGP多跳的跳数为2以上(自己环回到对端环回时两跳,默认一跳)
关于为什么要用环回网口建邻居
原因时环回网口稳定,只要路由器启动着,环回网口就不会down,而物理链路可能会受线路或者接口等因素的影响导致对等体关系有问题,因而一般BGP建立对等体都是环回网口来建
配置命令
在OSPF的AS中配置
1、配置各路由器的IP地址
2、配置OSPF
[R7]ospf 1
[R7-ospf-1]area 0
[R7-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
[R7-ospf-1-area-0.0.0.0]network 7.7.7.7 0.0.0.0
配置BGP
R1 (ibgp)与R2、R3, R4,R5, R6建立邻居关系(R2、R4、R5配置与其相似略)
[R1]bgp 100 ——#创建bgp编号为100 (也就是AS100)
[R1-bgp]router-id 1.1.1.1 ——#配置BGP的Router ID
[R1-bgpl peer 2.2.2.2 as-number 100 ——#指定对等体的回环网口IP地址及其所属的AS编号
[R1-bgp]peer 2.2.2.2 connect-interface LoopBack0 ——#更新发送bgp报文的接口为Loopback0接口
[R1-bgp] peer 3.3.3.3 as-number 100
[R1-bgp]peer 3.3.3.3 connect-interface LoopBack0
[R1-bgp]peer 4.4.4.4 as-number 100
[R1-bgp]peer 4.4.4.4 connect-interface LoopBack0
[R1-bgp]peer 5.5.5.5 as-number 100
[R1-bgp]peer 5.5.5.5 connect-interface LoopBack0
[R1-bgp]peer 6.6.6.6 as-number 100
[R1-bgp]peer 6.6.6.6 connect-interface LoopBack0
[R3-bgp]peer 2.2.2.2 next-hop-local——#ASBR从ebgp邻居学习到的路由传递给ibgp邻居时,修改该命令
[R3-bgp]peer 1.1.1.1 next-hop-local
[R3-bgp]peer 6.6.6.6 next-hop-local
[R3-bgp]peer 7.7.7.7 as-number 200 ——#此为ebgp邻居的AS编号
[R3-bgp]peer 7.7.7.7 connect-interface LoopBack0
[R3-bgp]peer 7.7.7.7 ebgp-max-hop 2——#两个AS之间用回环网口建的邻居要将它们的邻居的最大跳数改为2,默认的是1 (因为不是直连而是用Loopbacko接口,需要经过2个路由,而默认EBGP传递时TTL值为1)
[R3-bgp]network 1.1.1.1 255.255.255.255 ——#宣告指定的IGP、静态、默认路由进BGP进程
[R3-bgp]network 2.2.2.2 255.255.255.255
[R3]ip route-static 7.7.7.7 255.255.255.255 12.1.1.2——#两个AS之间的ebgp对等体需要建立tcp连接,这里用静态做底层的寻址,也可以使用IGP路由搭建底层寻址(比如RIP)
[R3-bgp]network 7.7.7.7 255.255.255.255——#ebgp用于配置静态路由或IGP路由的网段或IP需要在两端ebgp都宣告
R7与R8,R3 (R3与R7互为EBGP)建立邻居关系(R8配置与其相似略)
[R7]bgp 200——#创建AS200
[R7-bgp] router-id 7.7.7.7
[R7-bgp]peer 3.3.3.3 as-number 100 ——#此为ebgp邻居的AS编号
[R7-bgp]peer 3.3.3.3 connect-interface LoopBack0
[R7-bgp] peer 3.3.3.3 ebgp-max-hop 2 ——#ebgp报文允许的最大跳数修改为2 (因为不是直连而是用Loopback0接口)
[R7-bgp]peer 8.8.8.8 as-number 200
[R7-bgp]peer 8.8.8.8 connect-interface LoopBack0
[R7-bgp] peer 8.8.8.8 next-hop-local ——#ASBR从ebgp邻居学习到的路由传递给ibgp邻居时,路由的下一跳修改为自己
[R7-bgp] network 8.8.8.8 255.255.255.255 ——#宣告指定的从本区域ibgp邻居学到的路由给ebgp邻居
[R7] ip route-static 3.3.3.3 255.255.255.255 12.1.1.1——#两个AS之间运行静态路由
[R7-bgp] network 7.7.7.7 255.255.255.255 ——#ebgp用于配置静态路由或IGP路由的回环网口IP需要在两端ebgp都宣告
查看命令
1、display bgp peer ###查看bgp的对等信息Established为成功建立
2、display bgp routing-table ##查看bgp的路由表信息
BGP路径属性
路径属性分类
●公认属性
●公认必遵属性
●公认*决定属性
●可选属性
●可选传递的
●可选非传递的
分类
●公认强制属性:所有的BGP的update消息都要包含该属性
AS路径(AS-path)
下一跳(next-hop)
起源(Origin)
●公认*属性:该属性是可选可不选的,但是所有的BGP进程都能识别
本地优先级(local preferent)
●可选传递属性:即使BGP进程不能识别该属性,也会继续传递下去
团体属性(community)
●可选非传递属性:如果BGP进程不能识别该属性,可以忽略这条update,并且不传递下去
MED
BGP选路原则
1.如果此路由的下一跳不可达,忽略此路由
2.Preferred-Value值数值越高越优先,华为私有属性,仅本地有意义
3.Local-Preference值最高的路由优先
4.聚合路由优先于非聚合路由
5.本地手动聚合路由的优先级高于本地自动聚合的路由
6.本地通过Network命令引入的路由的优先级高于本地通过Import-route命令引入的路由
7.As-path的长度最短的路径优先
8.比较Origin属性,IGP优于EGP,EGP优于Incomplete
9.选择MED较小的路由
10.EBGP路由优于IBGP路由
11.BGP优先选择到BGP下一跳的IGP度量值最低的路径
当以上全部相同,则为等价路由,可以负载分担(注意:AS_Path必须一致,当负载分担时,以下3条原则无效)
12.比较Cluster_list长度,短者优先
13.比较Originator_ID(如果没有Originator_ID,则用Router_ID比较),选择数值较小的路径。
14.比较对等体的IP地址,选择IP地址数值最小的路径。
BGP属性选路配置
根据local-prefernce控制选路(越大越优)
●为公认自决属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径
●Local_Preference属性只能在IBGP对等体间传递(除非做了策略否则Local_Preference值在IBGP对等体间传递过程中不会丢失),而不能在EBGP对等体间传递,如果在EBGP对等体间收到的路由的路径属性中携带了Local_Preference,则会触发Notifacation报文,造成会话中断;
●但是可以在AS边界路由器上使用Import方向的策略来修改Local_Preference属性值。也就是在收到路由之后,在本地为路由赋予Local_Preference。
[R3]route-policy lop permit node 10
创建名为lop的路由策略
[R3-route-policy]apply local-prefernce 222
设置本地优先级为222
[R3-route-policy]quit
[R3]bgp 200
[R3-bgp]peer 4.4.4.4 route-policy lop export
在R3上对R1执行出站export方向的路由策略,使得其在收到对方通告的路由后,在路由的local-prefernce的属性值改为222,使得R4优选R3通告的路由;如果此路由策略在R4配置则方向为入站import
<R3>reset bgp all
重启BGP
<R3>refresh bgp all export
使用AS-PATH属性控制选路(越少越优)
●为公认必遵属性,是前往目标网络的路由经过的AS号列表
●作用:确保路由在EBGP对等体之间传递无环;另外也作为路由优选的衡量标准之一;
●路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号;路由被通告给IBGP对等体时,AS-path不会发生改变
●使用route-policy修改BGP路由的AS_Path:
apply as-path xxx additive 在已有AS_Path基础上追加xxx
apply as-path xxx overwrite 将已有AS_Path值替换(覆盖)成xxx
apply as-path none overwrite 清空路由的AS_Path属性
●使用route-policy修改BGP路由的AS_Path时,可以在EBGP对等体之间改变EBGP路由的AS_Path属性,从而影响BGP路由的优选。在华为路由器上,在IBGP对等体之间,也可以使用route-policy修改BGP路由的AS_Path。无论何种场景,改变BGP路由的AS_Path都必须十分谨慎,建议跟上一个经过的AS号保持一直。
●Bestroute as-path-ignore命令 用来配置BGP在选择最优路由时忽略AS路径属性。配置该命令后,BGP将不比较AS路径的长度。缺省情况下,长度更小者优。
[R2]route-policy as permit node 10
[R2-route-policy]apply as-path 123 123 123 additive
在已有AS_Path基础上追加
[R2-route-policy]quit
[R2]bgp 200
[R2-bgp]peer 1.1.1.1 route-policy as export
<R2>reset bgp all
<R2>refresh bgp all export
通过MED属性控制选路(越小越优)
●为可选非传递属性,是一种度量值
●一般情况下,BGP设备只比较来自同一AS(不同对等体)的路由的MED属性值。可以通过配置命令来允许BGP比较来自不同AS的路由的MED属性值。执行compare-different-as-med命令后,系统将比较来自不同AS中的对等体的路由的MED值。
[R2]route-policy med permit node 10
[R2-route-policy]apply cost + 500
[R2-route-policy]quit
[R2]bgp 200
[R2-bgp]peer 1.1.1.1 route-policy med export
<R2>reset bgp all
<R2>refresh bgp all export
display bgp routing-table
查BGP的路由表
display bgp routing-table 目标网段
查看详细信息