目录
1.可控性---AS之间传递大量的路由信息,这些信息所谓可控,只可以方便干涉选路,做路由策略
2.可靠性---BGP协议为了保证传输的可靠性,直接使用TCP协议进行传输---端口号为179
9.路由反射器----Router-Reflector--RR
Originator_ID:起源者ID,某条路由信息的始发者ID
3.始发的大于对等体出学来的,始发中:手工>自动聚合>network>import
4.优先选择AS_PATH属性最短的路由条目--经过的AS越少越好
9.优选Cluster_List最短的路由---经过反射簇最少的一条
前言---了解AS
AS:自治系统----由单一的组织或者机构管理的一系列IP及其网络设备所构成的集合。(可以理解为由单一的组织或者机构管理的一片网络)
AS号---十六位二进制构成---0-65535,用来标定一片网络;其中0和65535不能使用,真实的取值范围为1-65534.其中64512-65534称为私有AS号。所以目前已有拓展版AS号---32位二进制构成。
根据AS可以将动态路由协议划分为IGP和EGP协议
IGP:内部网关协议用于AS内部---RIP,OSPF
EGP: 外部网关协议用于AS之间---BGP,EGP
BGP---边界网关协议
基本认识:
主要使用BGPV4版本---IPV4
现在也推出BGPV4+---MP-BGP---支持多种地址族,可以应用在IPV6环境下。
AS之间通过重发布完成路由交换存在的问题:选路不佳;ASBR的运营商归属问题
BGP协议获取信息的方式----传递路由信息,而不是拓扑信息
BGP----称为五类别路径矢量协议
1.无类别---传递路由条目信息时携带子网掩码
2.距离矢量---1.距离矢量是以一个路由器为一跳来传递信息
2.距离矢量时算法的概念,IGP协议主要是计算AS内部的路由信息
路径矢量---1.路径矢量是以一个AS为一跳来传递信息
2.路径矢量不是算法,因为BGP只是将IGP计算好的路由信息传递给其他AS
EGP协议的重点
1.可控性---AS之间传递大量的路由信息,这些信息所谓可控,只可以方便干涉选路,做路由策略
BGP为了保证可控性,舍弃了开销值。取而代之的是BGP给每一条路由信息赋予了很多属性, 可以通过属性进行干涉选路。
BGP协议具有触发更新,但是没有周期更新
2.可靠性---BGP协议为了保证传输的可靠性,直接使用TCP协议进行传输---端口号为179
---因为TCP运用于1对1会话,所以BGP使用TCP协议,IGP不使用TCP协议
在BGP中,因为使用TCP进行传输,所以可以实现非直连建邻,而非直连建邻需要建立在IGP可达得基础上。
EBGP对等体---位于不同AS中的建立对等体设备
IBGP对等体---位于同一AS中的建立对等体设备
为了保证EBGP对等体关系直连建邻,EBGP对等体之间的数据包中的TTL值被设置为1。
如果要建邻非直连建邻,则需要将TTL值改大。
IBGP对等体之间一般都是非直连建邻,所以IBGP对等体的数据包的TTL值为255。
3.AS-BY-AS---BGP是将AS看作一个整体
----BGP不支持负载均衡,只会选择一条最优。
1.BGP的数据包
open报文
---比对参数,建立对等体关系;BGP只能手工指定邻居关系,发现邻居这件事交给网络管理员来完成。
数据包含有的参数:
1.AS号---两个AS号,发出者所在的AS号,对端的AS号
2.RID--作为设备的身份标识---可以手工配置也可以自动获取(和OSPF规则一样);报文中的RID是发出者的,对端收到RID对比之后若RID不同则可以建立对等体关系。
3.认证---认证参数携带在TCP选项字段中
4.保活时间---默认180S
eep-live报文
---保活对等体关系;周期性的保活邻居关系;在发送open报文进行建邻临时充当确认报文来使用
--在OPEN报文参数都核对成功后,发送Keep-live报文进行最后的确认,代表统一建邻。
注意:周期时间根据保活时间来决定。周期发送时间为保活时间的1/3,即60A为周期发送keep-live报文。
Update报文
真正携带路由信息的数据包---会携带路由信息的网段信息,以及掩码信息,以及路由条目所附加的属性。---BGPUpdate报文中存在一个撤销路由信息字段,如果有路由信息失效,则通过该报文通知对端。
notification报文
BGP协议的预警机制保障BGP的全过程;发送建邻建立失败的原因。
Route-refresh报文
----用于改变路由策略后请求对等体重新发送路由信息
2.BGP的状态机
注意:BGP的状态机,仅仅描述的是邻居状态建立过程中的不同阶段,因为BGP可以做到建邻和发布路由分开完成
Idle---空闲状态---BGP建邻之前的初始状态
在设备启动配置BGP之后,将进入到一个检查阶段。将基于我们配置的邻居地址,检查本地路由表,看目标IP是否可达,可达则进入到下一个状态---Connect状态,则将停留在IDLE状态。
connect状态---尝试进行TCP绘画的建立。如果建立成功,则将进入到Opensent状态,开始发送OPEN报文。如果建立失败,则将进入到Active状态,将反复尝试建立连接。
opensent状态---在接收到对方发送的open报文,如果参数正确,则将回复keep-live报文进行确认,并进入到下一个状态---openconfirm状态
openconfirm状态----如果收到对方发送的keep-live报文,则进入到下一个状态。
established---建立完成---标志着EGP建立完成。
3.BGP的工作过程
1.基于IGP实现IP可达
2.手工指定邻居关系,邻居之间通过单播进行通信。通过三次握手建立TCP会话通道
3.通过open报文和keep-live报文进行邻居关系的建立。建立邻居关系之后,将会把邻居关系收集记录在本地的一张表中即邻居表
4.使用ipdate更新报文携带路由信息传递给邻居。数据包中包含目标网络号,掩码以及路径属性。之后GBP会将发送的以及收集到的路由信息都记录在本地的一张表中---BGP表
到达同一目标网段存在多条路由信息,都将记录在BGP表中,但仅选择其中最优的加载到路由表中。因为BGP不支持负载均衡。
5.选择在到达目标网段最优路径加载到本地的路由表
6.收敛完成后,将使用keep-live'包进行周期保活---1/3hold time --默认60S
7.如果全过程中出现错误,则将使用notification报文进行告警。
8.如果发生结构突变,则将发送update报文进行更新。
4.BGP的路由黑洞
当R2向1.0.0.0发包,在R7向R4发包阶段,由于R4没有启用BGP协议,不知道通向1.0.0.0网段
的路由,故把该包丢弃,信息无法通过形成路由黑洞。
解决方法
1.让所有设备运行BGP协议
2.在同时运行BGP和IGP协议的设备上进行重发布,让没有运行BGP协议的设备通过IGP协议获取到路由信息。
3.MPLS技术
为了解决路由黑洞,BGP提出了一个同步原则---即当一台路由器从自己的IBGP对等体处学习到一
条BGP路由时,他将不能将他传输给自己的EBGP对等体,除非他又从IGP协议处获取到这条路由
---BGP与IBGP同步
5.BGP的防环
水平分割---
EBGP的水平分割:用于解决EBGP对等体关系中可能出现的环路问题
BGP协议将路由条目所经过的AS编号记录在一个属性中---AS_PATH,如果存在本地的AS号,则拒绝接收,避免环路的出现。
IBGP的水平分割 :用于解决IBGP对等体关系中可能出现的环路问题
当IBGP路由器在对等体学来一条BGP路由时,则不能再传递给其他IBGP对等体。
注意:因为IBGP的水平分割定义导致在IBGP对等体关系内部只能传递一跳,则可能造成通信障碍---R5不能收到IBGP对等体的BGP路由
解决方案:
1.建立全连的IBGP对等体----导致资源占用变大,网络拓展性变差
2.路由反射器----后面深入学习
3.联邦---后面深入学习
6.BGP的基础配置
BGP的目的是将建邻和发布路由分开
步骤:
1.分配网段
2.IBGP启用OSPF协议宣告网段
[r2]ospf 1 router-id 2.2.2.2
[r2-ospf-1]ar 0
[r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
这里R2既做为EBGP,也做为IBGP,但OSPF只宣告内部网段,即G 0/0/0口的对外网段不进行宣告;R4也是如此;
3.建立直连的EBGP对等体
①启动BGP进程
[R1]BGP 1 ----这里的1不是进程号是AS号
[R1-bgp]
②配置RID
[R1-bgp]router-id 1.1.1.1
③建立邻居
[R1-bgp]peer 12.0.0.2 as-number 2 ---选择直连的AS号
对端的R2操作:
[r2]bgp 2
[r2-bgp]router-id 2.2.2.2
[r2-bgp]peer 12.0.0.1 as-number 1
④查看操作
[r2]display bgp peer
BGP local router ID : 2.2.2.2
Local AS number : 2
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre
fRcv
12.0.0.1 4 1 3 3 0 00:01:52 Established
0
peer代表邻接的IP
V代表BGP版本
AS代表直连的邻居AS号
MsgRcvd :接受邻居的数据包
MsgSent:发送的数据报包
OutQ:出站的队列
State PrefRcv:从邻居收到的路由条目数量
4.使用环回建立IBGP对等体
①启用gbp进程
[r2]bgp 2 ----启动BGP进程
[r2-bgp]peer 3.3.3.3 as-number 2---选择直连IBGP的环回
注意此时还不能建立IBGP的关系
因为进行BGP配置时指定的对等体IP地址必须和对端发送的数据包中的源IP相同
所以R2发送数据包的端口需要改变为接口2.2.2.2
②改变发送端口
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[R3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
R3 的发送端口改为环回接口3.3.3.3
注意:IBGP对等体建立邻居关系时建议使用环回接口建邻,因为AS内部一般拥有大量的备份路由,如果仅使用物理接口建邻将将浪费备用链路。
5.EBGO对等体非直连建邻---利用环回接口
①配置静态路由,保证能够互通
[r5]ip route-static 4.4.4.0 24 45.0.0.1
[r4]ip route-static 5.5.5.0 24 45.0.0.2
②启用BGP进程建立连接
[r5]bgp 3
[r5-bgp]peer 4.4.4.4 as-number 2
③更改发送数据包端口
[r5-bgp]peer 4.4.4.4 connect-interface l 0
[r5]display bgp peer
BGP local router ID : 45.0.0.2
Local AS number : 3
Total number of peers : 1 Peers in established state : 0
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre
fRcv
4.4.4.4 4 2 0 0 0 00:00:26 Idle
0
此时也不能建立邻居关系,因为EBGP对等体之间的数据包默认TTL值为1,需要建立非直连建邻需要将TTTL值改大
④更改TTL值
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 20---可自行设置,不写默认为255
[r5-bgp]peer 4.4.4.4 ebgp-max-hop 20
7.BGP的路由发布
①通过network命令进行宣告
[R1-bgp]network 1.1.1.0 24
查看BGP路由表
[R1]display bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
*>----状态码;
*---路由信息可用,BGP设备收到一条BGP路由,首先检查下一跳的可达性,如果下一跳可达则可用;只有可用的路由信息才会参与BGP路由信息的选举
>---如果到达统一目标网段,则将通过属性选择其中最优的赋予优选标记.
network----目标网段和掩码信息
nexthop---下一跳---谁发送的,下一跳就是谁,这里的0.0.0.0是因为自己始发的
[R3]display bgp routing-table
BGP Local router ID is 23.0.0.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
i 1.1.1.0/24 12.0.0.1 0 100 0 1i
[R3]
i--状态码;表示该路由信息是从IBGP对等体处学来的.
此时无*不可用;因为下一跳不可达.
解决方法:
[r2-bgp]peer 3.3.3.3 next-hop-local---要在R2上做操作,将下一跳更改为本地
[R3]display bgp routing-table
BGP Local router ID is 23.0.0.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 1.1.1.0/24 2.2.2.2 0 100 0 1i
[R3]
配置完成,R2向R3传递完BGOP路由后,因为IBGP协议的水平分割导致R3不能向R4传递BGP路由信息,所以要进行IBGP全连操作
R2
[r2]BGP 2
[r2-bgp]peer 4.4.4.4 as-number 2---建立直连
[r2-bgp]peer 4.4.4.4 connect-interface l 0----更改发送接口
[r2-bgp]peer 4.4.4.4 next-hop-local----下一跳也要在R2上进行更改
R4
[r4]bgp 2
[r4-bgp]peer 2.2.2.2 as-number 2---建立直连
[r4-bgp]peer 2.2.2.2 connect-interface l 0---更改发送数据包接口
[r4]dis bgp routing-table
BGP Local router ID is 34.0.0.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 1.1.1.0/24 2.2.2.2 0 100 0 1i
这里的下一跳为2.2.2.2是因为与R2进行了直连配置
反过来,进行相同的配置
R5:
①network发布路由;
②配置静态路由
③与R4环回建立EBGP非直连,更改发送数据包的端口为环回口;更改TTL值
R4
①配置静态路由
②与R4环回建立EBGP非直连,更改发送数据包的端口为环回口;更改TTL值
③告诉R2;R3更改下一跳为本地
②通过重发布进行批量发布
[r2-bgp]import-route ospf 1---重发布包括OSPF协议里的网段,静态与直连网段
[r2-bgp]display bgp routing-table
BGP Local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 8
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 12.0.0.1 0 0 1i
*> 2.2.2.0/24 0.0.0.0 0 0 ?
*> 3.3.3.3/32 0.0.0.0 1 0 ?
*> 4.4.4.4/32 0.0.0.0 2 0 ?
*>i 10.0.0.0/24 4.4.4.4 0 100 0 3i
*> 23.0.0.0/24 0.0.0.0 0 0 ?
*> 34.0.0.0/24 0.0.0.0 2 0 ?
*> 45.0.0.0/24 0.0.0.0 3 0 ?
[r2-bgp]
Ogn---起源码
I---通过network发布的路由条目其起源码为I,代表该路由起源于IGP(包括静态和直连协议.
E---通过EGP协议发布的.
?---除了以上两种情况,其他情况发布的都使用?
8.BGP的路由聚合(路由汇总)
自动聚合
1.BGP的自动聚合仅针对重发布的路由信息生效
2.仅能按照主类进行汇总(A-E类)
自动聚合
[R1-bgp]summary automatic
重发布指定网段
①创建前缀列表
[R1]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24 less-equal 24
②做路由策略
[R1]route-policy aa permit node 10
[R1-route-policy]if-match ip-prefix aa
③调用
[R1-bgp]import-route direct route-policy aa
[R1]display bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 11
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
*> 2.2.2.0/24 12.0.0.2 0 0 2?
*> 3.3.3.3/32 12.0.0.2 1 0 2?
*> 4.4.4.4/32 12.0.0.2 2 0 2?
*> 10.0.0.0/24 12.0.0.2 0 2 3i
*> 23.0.0.0/24 12.0.0.2 0 0 2?
*> 34.0.0.0/24 12.0.0.2 2 0 2?
*> 45.0.0.0/24 12.0.0.2 3 0 2?
*> 172.16.0.0 127.0.0.1 0 ?
s> 172.16.1.0/24 0.0.0.0 0 0 ?
s> 172.16.2.0/24 0.0.0.0 0 0 ?
[R1]
S---状态码---代表抑制,因为自动聚合了,这里的明细是被抑制发送的
*> 172.16.0.0 127.0.0.1 0 ?
-----自动聚合会发布一条路由信息下一跳为127.0.0.1;并且自动聚合会生成一条指向汇总的空接口路由进行防环.
.
手工聚合
手工聚合
[R1-bgp]aggregate 172.16.0.0 22
手工聚合也将自动生成一条指向汇总的空接口
1.直接通过该命令进行聚合,明细没有被抑制,无法减少路由条目数量,反而增加了一条聚合路由.
2.如果在其他AS进行聚合,聚合路由将不携带明细路由的部分属性,主要包括AS-PATH
属性,将导致路由可能被传回到源S中,导致回环
抑制策略(列表)
---suppress-policy---抑制某一条路由
1.抓取流量--抓谁抑制谁
[r4]ip ip-prefix aa permit 172.16.2.0 24
2.创建路由策略
[r4]route-policy aa permit node 10---路由策略里都是permit
Info: New Sequence of this List.
[r4-route-policy]if-match ip-prefix aa---匹配aa抓取的流量
3.在聚合中调用
[r4-bgp]aggregate 172.16.0.0 22 suppress-policy aa
BGP为了保证聚合路由可以携带明细路由的AS-PATH属性,专门设计了一个关键字---AS-SET
如果明细路由来自多个不同的AS中,之后在同一个AS中进行汇总。激活AS-SET之后,将同时携带所有明细的AS号在AS-PATH中,进行防环时,将都不能回传。但是,会使用大括号将其括起来,在进行选路评判时,仅作为一个AS来判断
因为聚合路由可能存在路由属性丢失的问题,所以,专门设计了两个属性
ATOMIC-AGGREGATE----这是一个纯粹的预警属性,聚合路由专门携带,聚合路由将携带表示该路由可能存在属性丢失(当这个路由抑制了所有的明细就会携带
AGGREGATOR.----包含了做汇总设备的RID及其AS号
[r4]display bgp rou
[r4]display bgp routing-table 172.16.0.0 22-----查看BGP细节路由信息
BGP local router ID : 34.0.0.2
Local AS number : 2
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 172.16.0.0/22:
Aggregated route.
Route Duration: 00h08m02s
Direct Out-interface: NULL0
Original nexthop: 127.0.0.1
Qos information : 0x0
AS-path Nil, origin igp, pref-val 0, valid, local, best, select, active, pre 25
5
Aggregator: AS 2, Aggregator ID 34.0.0.2
Advertised to such 3 peers:
5.5.5.5
3.3.3.3
2.2.2.2
全部明细路由抑制
[r4-bgp]aggregate 172.16.0.0 22 detail-suppressed as-set
利用空接口发布汇总
[R1]ip route-static 172.16.0.0 22 NULL 0
[R1]bgp 1
[R1-bgp]network 172.16.0.0 22
先写一条指向汇总的空接口,然后在BGP中发布汇总。
9.路由反射器----Router-Reflector--RR
成为RR的条件:
有一台或者多台其对等体作为反射器的客户,其余不是客户的对等体均属于非客户。客户和RR之间将形成一个反射簇。会使用RR的RID作为反射簇的簇ID。
反射规则:
1.所有客户发来的路由信息将反射给反射器的客户和非客户。
2.非客户发来的路由信息将反射给所有客户。
记作:非非不传
3.只有可用且优的路由才会被反射
配置
[R3-bgp]peer 2.2.2.2 reflect-client
将R2作为客户
防环属性:
Originator_ID:起源者ID,某条路由信息的始发者ID
R1作为起源者给R3发路由信息,R3作为RR反射给R2,R2作为RR反射给R1,因为此条路由信息中的OID是R1自身的,R1不会再次学习此条路由信息,所以不会造成回环。
Cluster_list:簇列表
只有OID属性,此图情况中R1会有回环。
当反射路由离开一个反射簇时,将把反射簇的簇ID记录在簇列表中。类似于AS-PATH,记录走过的路径。
如果收到路由信息的簇列表中包含本地的簇ID,则将不学习该路由信息。
注意这两个属性仅在IBGP对等体间生效,在EBGP之间不携带
10.联邦---大AS里分小AS
小的AS里面将形成联邦的EBGP对等体关系,使原本的IBGP对等体能够有EBGP对等体的传输特性,还是遵循AS-BY-AS规则,此时的防环制度使用EDGP的水平分割
配置:
R2:
[r2]bgp 64511---先选择小号
[r2-bgp]router-id 2.2.2.2
[r2-bgp]confederation id 2----申明大号
[r2-bgp]peer 12.0.0.1 as 1---与R1建立EBGP
[r2-bgp]peer 3.3.3.3 as 64511---与R3建立IBGP时使用的AS号是64511
[r2-bgp]peer 3.3.3.3 connect-interface l 0
[r2-bgp]peer 3.3.3.3 next-hop-local--下一跳更改为本地
R3:
[R3]bgp 64511
[R3-bgp]confederation id 2
[R3-bgp]peer 2.2.2.2 as-number 64511
[R3-bgp]peer 2.2.2.2 connect-interface l0
[R3-bgp]confederation peer-as 64512----R3特殊是建立联邦EBGP对等体的设备,需要申明其对端联邦的AS号
[R3-bgp]peer 4.4.4.4 as 64513
[R3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[R3-bgp]peer 4.4.4.4 ebgp-max-hop ----因为是EBGP关系,所以要更改TTL值
R4:
[r4]bgp 64513
[r4-bgp]peer 3.3.3.3 as 64511
[r4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[r4-bgp]peer 3.3.3.3 ebgp-max-hop----与R3建立EBGP,更改TTL值
[r4-bgp]peer 5.5.5.5 as-number 64513
[r4-bgp]peer 5.5.5.5 connect-interface l 0
联邦和路由反射联合使用一个小AS里面最多可以容纳三个路由
11.BGP选路原则
选路的前提条件:需要先排除所有不可用的路由条目
以下讲解都基于此拓扑环境
1.优选PV值最大的路由信息
可以将PV视为权重,是本地(本设备)进行路由选路时优先级最高的属性
修改属性操作
[r4-bgp]peer 3.3.3.3 preferred-value 100
更改R3-R4这条路的PV值
更改结果:
[r4]dis bgp routing-table 1.1.1.1
BGP local router ID : 4.4.4.4
Local AS number : 2
Paths: 2 available, 1 best, 1 select
BGP routing table entry information of 1.1.1.0/24:
From: 3.3.3.3 (3.3.3.3)
Route Duration: 00h05m28s
Relay IP Nexthop: 34.0.0.1
Relay IP Out-Interface: GigabitEthernet0/0/0
Original nexthop: 3.3.3.3
Qos information : 0x0
AS-path 1, origin igp, MED 0, localpref 100, pref-val 100, valid, internal, bes
t, select, active, pre 255, IGP cost 1
Advertised to such 1 peers:
45.0.0.2
BGP routing table entry information of 1.1.1.0/24:
From: 2.2.2.2 (2.2.2.2)
Route Duration: 00h35m03s
Relay IP Nexthop: 23.0.0.1
Relay IP Out-Interface: GigabitEthernet0/0/2
Original nexthop: 2.2.2.2
Qos information : 0x0
AS-path 1, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre 2
55, IGP cost 1, not preferred for PreVal-----------没有被优选
Not advertised to any peer yet
[r4]
负载分担:
通过路由策略实现控制效果:
[r4]ip ip-prefix pv permit 10.0.0.0 24----通过前缀列表抓取流量
//创建路由策略
[r4]route-policy PV permit node 10
Info: New Sequence of this List.
[r4-route-policy]if-match ip-prefix PV
[r4-route-policy]apply preferred-value 100
//
2.优选LP值最大的路由
本地优先级属性---因为这个属性只能在IBGP对等体之间传递,所以时AS内部选路最佳的
R3会向IBGP对等体发送LP发送该优先级
修改属性操作
[r3-bgp]default local-preference 200
负载分担:
通过路由策略实现控制效果:
现要求10.0.0.0网段走R3-R4、1.0.0.0网段哦组R2-R4
方法1:将R3的LP值改大
[r3]ip ip-prefix LP permit 10.0.0.0 24 ----抓取流量
[r3]route-policy LP permit node 10
Info: New Sequence of this List.
[r3-route-policy]if-match ip-prefix LP----匹配LP策略
[r3-route-policy]apply local-preference 200---改变LP值
[r3]route-policy LP permit node 20-----放空所有
[r3-bgp]peer 4.4.4.4 route-policy LP export -----在R3上调用
结果
3.始发的大于对等体出学来的,始发中:手工>自动聚合>network>import
R2添加一个新环回,网段为11.0.0.0,通过BGP和OSPF发布路由,通过OSPF此时R4学到11.00000的路由,再通过自己BGP发布出去,此时查看R2的BGP路由表,如下图优先选择自己发布出来的那条
4.优先选择AS_PATH属性最短的路由条目--经过的AS越少越好
注意:
1.在手工聚合时,如果激活了AS_SET属性,如果明细来自不同的AS,则AS——PATH属性会携带所有AS的AS号,并用大括号括起,在进行防环时,大括号内的所有AS都不能回传,但在进行选路时,大括号内所有AS当作一个新AS来看待。
2.如果存在联邦,需要使用AS_PATH进行联邦的防环,但是这个小AS号会用小括号括起来,在进行选路比较的时候,不会看小括号中的内容。
修改属性操作
[r1]ip ip-prefix AS permit 10.0.0.0 24----抓取流量
[r1]route-policy AS permit node 10
Info: New Sequence of this List.
[r1-route-policy]if-match ip-prefix AS----匹配AS策略
[r1-route-policy]apply as-path 12 23 34 ?
INTEGER<1-4294967295> AS number in asplain format (number<1-4294967295>)
STRING<3-11> AS number in asdot format
(number<1-65535>.number<0-65535>)
additive Append to original As Number-----增加AS号
overwrite Overwrite original As Number----覆盖原先的AS号
[r1-route-policy]apply as-path 12 23 34 additive---增加12 23 34 三个AS号
[r1]route-policy AS permit node 20----允许所有
[r1-bgp]peer 12.0.0.2 route-policy AS export ----在R1上的出口调用
结果展示
在R2上看
在R4上看
R4选择了R3传递的路由
在R5上看
由于加了AS号之后,R4学到的不是优选路由,所以不会传递给R5
5.优选Origin属性最优的路由
优先级关系为I>E>?
修改属性操作:
[r1]ip ip-prefix OGN permit 10.0.0.0 24
[r1]route-policy OGN permit node 10
Info: New Sequence of this List.
[r1-route-policy]if-match ip-prefix OGN
[r1-route-policy]apply origin ?
egp Remote EGP ---改为E
igp Local IGP ----改为I
incomplete Unknown heritage -----改为问号
[r1-route-policy]apply origin incomplete
[r1-route-policy]q
[r1]route-policy OGN permit node 20
[r1-bgp]peer 12.0.0.2 route-policy OGN export
6.优选MED属性值最小的路由
一般情况下MED都为0---继承了IBGP协议中的开销值
多出口鉴别属性---MED属性默认继承IBGP协议的开销值,这个值是可以在BGP邻居之间进行传递的,便于EBGP选路。若IBGP已学到到某BGP对等体的MED值,再通过IBGP对等体了解到去该BGP的MED值时,不再学习该新MED值。
修改MED值的操作
[r2]ip ip-prefix MED permit 4.4.4.0 24
[r2]route-policy MED permit node 10
Info: New Sequence of this List.
[r2-route-policy]if-match ip-prefix MED
[r2-route-policy]apply cost 10
[r2]route-policy MED permit nod 20
Info: New Sequence of this List.
[r2-route-policy]bgp 2
[r2-bgp]peer 12.0.0.1 route-policy MED export
7.EBGP的路由优于IBGP的路由
8.优先NEXT_HOP的IGP度量值最小的
9.优选Cluster_List最短的路由---经过反射簇最少的一条
10.优选RID最小的涉笔通告路由
11.优选具有最小IP地址的对等体通告路由
12.BGP的路由过滤
1.通过路由策略来进行过滤
[r1]ip ip-prefix aa permit 1.1.1.0 24----抓取流量
//做策略
[r1]route-policy aa deny node 10
Info: You are overwriting this sequence.
[r1-route-policy]if-match ip-prefix aa
[r1-route-policy]q
[r1]route-policy aa permit node 20
Info: New Sequence of this List.
[r1-route-policy]q
//调用
[r1]bgp 1
[r1-bgp]peer 12.0.0.2 route-policy aa export
2.通过fiter—Policy来过滤
1.抓取流量
[r2]ip ip-prefix aa deny 10.0.0.0 24---因为是过滤所以这里需要使用拒绝
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32----允许所有流量通过
[r2-bgp]peer 12.0.0.1 filter-policy ?
INTEGER<2000-2999> Apply basic ACL
acl-name Specify the ACL name for filtering IPv4 routes
后面调用会发现此时过滤只能调用ACL
[r2]acl 2000
[r2-acl-basic-2000]rule deny source 10.0.0.0 0 ---拒绝流量
[r2-acl-basic-2000]rule permit source any ---允许所有流量通过
2.调用过滤列表
[r2-bgp]peer 12.0.0.1 filter-policy 2000 import
调用允许进入
3.直接通过前缀列表进行过滤
[r3]ip ip-prefix aa deny 10.0.0.0 24----抓取流量
[r3]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32---允许所有流量通过
[r3]bgp 2
[r3-bgp]peer 65.0.0.1 ip-prefix aa import ----直接调用
13.BGP的社团属性
可以理解为标签
社团属性---32位二进制构成---AS:NN---例如在AS600中有多个网段可以打上600:10 600:12 600:30
1.公有社团属性
1.0X00000000(0)----Internet---所有的路由条目默认加入到这个社团中,如果根据这个社团属性抓取路由,将抓取所有的路由信息
2.0XFFFFFF02---"no-advertise"---如果被打上该属性,将不会通告给任何一个BGP对等体
3.0XFFFFFF01---"no-export"---会通告给IBGP但不会通告给EBGP对等体。(这里不限制联邦的EBGP对等体)
4.0XFFFFFF03---"no-export-subconfed"---会通告给IBGP但不会通告给EBGP对等体。(这里会限制联邦的EBGP对等体)
[r2-route-policy]apply community ?
INTEGER<0-4294967295> Specify community number
STRING<3-11> Specify aa<0-65535>:nn<0-65535>
internet Internet(well-known community attributes)
no-advertise Do not advertise to any peer (well-known community
attributes)
no-export Do not export to external peers(well-known community
attributes)
no-export-subconfed Do not send outside a sub-confederation(well-known
community attributes)
none No community attribute
//no advertise情况
[R1-route-policy]apply community no-advertise----在策略中打上社团属性
[R1-bgp]peer 12.0.0.2 route-policy aa export ---在peer中调用
//打上特殊标签
[R1-route-policy]apply community 1:11----写标签内容
[R1-route-policy]q
[R1-bgp]network 172.16.1.0 route-policy com1----调用com1;给该网段打上该标签
//抓取社团属性
[R1]ip community-filter 1 permit 1:11
//做策略
[R1]route-policy bb deny node 10
Info: New Sequence of this List.
[R1-route-policy]if-match community-filter 1
[R1-route-policy]apply community no-advertise additive---在添加多个社团属性时,需要增加这个参数
//放通所有
[R1]route-policy bb permit node 30
//调用
[R1-bgp]peer 12.0.0.2 route-policy bb export