BGP

BGP知识点

概况:
BGP(Border Gateway Protocol) 边界网关协议,路径矢量协议
协议优先级:255      metric:属性
Hold time:180s    Keepalive time:60s
如果BGP 对等体两端的时间不同,以时间小的为准

timer keepalive 20 hold 60    进程下修改

邻居发现:一端端口使用随机端口号向另一端的179端口发起TCP连接
版本是BGP-4
AS(Autonomous System,自治系统)
AS是指由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合。
AS内部使用IGP来计算和发现路由 AS之间使用BGP来传递和控制路由。

BGP 基础配置:

bgp 100
router-id 10.0.1.1
peer 10.0.2.2 as-number 100     建立邻居
peer 10.0.2.2 connect-interface loop 0     以环回口建立邻居
peer 10.0.2.2 ebgp-max-hop 2   环回口建立ebgp邻居时,修改ebgp多跳
network 10.0.1.1 32       宣告路由

peer 10.0.2.2 next-hop-local     将AS内下一跳地址改为本地;从 EBGP 邻居收到的路由,发送给IBGP 邻居的时候,改变下一跳


display bgp peer 
display bgp routing-table 
dis default-parameter bgp    查看协议默认值

两种邻居关系:IBGP EBGP(环回口物理接口)
AS号相同则为IBGP邻居关系;AS号不同,则为EBGP邻居关系。
IBGP可非直连建立邻居,EBGP必须直连建立邻居。
IBGP采用环回接口建立,EBGP采用直连接口建立。
BGP 5种报文
• Open报文:用于建立BGP对等体连接。
• Update报文:用于在对等体之间交换路由信息。
• Notification报文:用于中断BGP连接。
• Keepalive报文:用于保持BGP连接。
• Route-refresh报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。
6种邻居状态:Idle,Connect,Active,OpenSent,OpenConfirm,Established

image.png

BGP认证:简单,keychain

bgp 100
peer 10.0.12.2 password simple huawei    简单认证

keychain key mode periodic daily    定义模式
key-id 1
key-string huawei               密码为huawei
algorithm md5                  加密算法md5
send daily 09:00 to 17:00       发送时间  
receive-time daily 09:00 to 17:00    接收时间

bgp 100
peer 10.0.23.3 keychain key    调用keychain

BGP对等体之间的交互原则:
BGP 设备将最优路由加入 BGP 路由表,形成 BGP 路由。BGP 设备与对等体建立邻居关系后,采取以下交互原则:
1、从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。
2、从 EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体。
3、当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给
对等体。
4、路由更新时,BGP设备只发送更新的BGP路由。
5、所有对等体发送的路由,BGP设备都会接收
6、只向对等体发送自身可用最优路由信息
fake-as:使用 fake-as 可以将本地真实的 AS 编号隐藏,其他AS 内的对等体在指定本端对等体所在的AS 编号时,应该设置成这个伪AS 编号

bgp 2000 
peer 10.0.12.1 fake-as 200 

BGP 路由自动聚合:
自动路由聚合是在自然边界路由器上自动执行的,在默认情况下,BGP 的自动路由聚合功能是关闭的,并且BGP不会自动聚合BGP邻居发送的路由以及使用network 命令通告的路由。
自动路由聚合只适用于通过路由引入方式引入的路由;且聚合后为主类(A,B,C)路由。

bgp 100 
summary automatic 
import-route direct

BGP手动路由聚合(detail-suppressed,suppress-policy,attribute-policy,origin-policy)
相对于自动路由聚合来讲,手动路由聚合具有更高的灵活性和可控性。
手动路由聚合时,可以手动控制聚合路由的掩码长度,修改聚合路由属性等。
有两种方法:
1.配置一条静态路由,然后network 命令进行通告

ip route-static 192.168.0.0 21 NULL 0 
bgp 400       
network 192.168.0.0 255.255.248.0 

ip ip-prefix noad permit 172.16.1.0 24
ip ip-prefix noad permit 192.168.1.0 24

route-policy noad permit node 10
if-match ip-prefix noad
apply community no-advertise
route-policy noad permit node 20

bgp 400
peer 192.168.35.3 route-policy noad export
peer 192.168.35.3 advertise-community      可选过渡属性,向邻居声明可识别

2.使用aggregate命令进行聚合。

bgp 400 
aggregate 172.16.0.0 255.255.248.0 

detail-suppressed 抑制全部明细

bgp 400 
aggregate 172.16.0.0 21 detail-suppressed 

suppress-policy 抑制部分明细

bgp 400 
aggregate 172.16.0.0 21 suppress-policy sup     设置route-policy(sup)匹配将被抑制的路由

attribute-policy 可以修改聚合后的路由属性

route-policy att permit node 10 
apply origin incomplete 
bgp 400 
aggregate 172.16.0.0 21 attribute-policy att 

origin-policy:通过符合route-policy的具体路由来产生聚合路由,不符合时不会聚合,以某条路由为触发条件

acl 2000
rule permit source 192.168.7.0 0.0.0.255
route-policy or permit node 10
if-match acl 2000
bgp 400
aggregate 192.168.0.0 21 origin-policy or

as-set:在聚合的路由中添加AS_Path,防止环路
4大类细分10种属性:
公认必遵:BGP的Update消息中必须包含的属性。
Origin
AS_Path
Next_hop
公认任意:不必存在于BGP的Update消息中,可以根据需求自由选择的属性。
Local_Pref
Atomic_aggregate
可选过渡:BGP 不能识别该属性,但可以接收该属性并将其发布给它的邻居的属性。
Aggregator
Community
可选非过渡:BGP可以忽略包含该属性的消息并且不向它的邻居发布。
MED
cluster-list
originator_id
BGP 选路:
当到达同一目的地存在多条路由且下一跳可达
1.优选协议首选值(Preference_Value)最高的路由。
2.优选本地优先级(Local_Preference)最高的路由。
3.优选本地生成的路由(手动聚合>自动聚合>network>import>对等体传来的)
4.优选AS_Path短的路由
5.比较Origin属性,起源类型IGP>EGP>Incomplete
6.优选MED(Multi Exit Discriminator)值最低的路由。
7.优选从EBGP学来的路由(EBGP>IBGP)。
8.优选AS内部IGP的Metric最小的路由。
9.优选 Cluster_List 最短的路由。
10.优选 Router_ID 最小的路由器发布的路由。
11.优选具有较小 IP 地址的邻居学来的路由。

前8 条选路规则一样,可以实现BGP 的负载分担

bgp 100 
maximum load-balancing 2       负载分担

几个重要属性对比:
首选值,默认值为0 ,越大越优,仅在本地有效

优选本地优先级,默认为 100,越大越优,在 IBGP 中传递,选择流量离开 AS时的最佳路由,也就是控制流量从哪个出口离开AS

MED 值,默认值为 0,越小越优,在 EBGP 中传递,控制来自邻居 AS 的流量从哪个入口进入到本AS中

首选值(PrefVal):仅华为设备可识别,不会发送给任何BGP邻居,仅作为本地路由器用来选路使用
BG 路由属性的比较过程中,首先要比较的就是路由信息首选值 Preference Value,也简称为 PreVal. 值越大,优先级越高,默认为 0。
修改邻居所有传来的路由的首选值,在本地修改

bgp 200 
peer 10.0.2.2 preferred-value 100 

修改邻居传来的一条路由的首选值 ,在本地修改

ip ip-prefix 1  permit 10.0.55.0 24 
route-policy 10 permit node 1 
if-match ip-prefix 1 
apply preferred-value 100           修改首选值
route-policy 10 permit node 2       放行其他路由条目

bgp 100 
peer 10.0.2.2 route-policy 10 import    针对该邻居发来的路由修改此属性

本地优先级(LocPrf):公认任意,仅在IBGP邻居传递(出AS的路由器配置)
BGP 首先比较路由信息的首选值,如果 PrefVal 相同,就会比较本地优先级(Local Preference)属性。 越大,越优先,默认为100 ;用于判断流量离开AS时的最佳路径。
修改默认本地优先级 ,在下一跳路由的邻居上修改(连接AS外路由器的设备)

bgp 200 
default local-preference 200     

修改一条路由的本地优先级 ,在下一跳路由的邻居上修改(连接AS外路由器的设备)

ip ip-prefix 1 permit 10.0.1.0 24 
route-policy 10 permit node 1 
if-match ip-prefix 1 
apply local-preference 500 
route-policy 10 permit node 2 

bgp 200 
peer 10.0.12.1 route-policy 10 import    针对EBGP邻居发来的路由修改属性

AS_Path: 在本地修改
AS_Path 属性顺序记录了某条 BGP 路由所经过的 AS 信息,BGP 在比较AS_Path 属性后,会优选 AS_Path 长度较短的那条路由。另外,AS_Path 还可以用来防止路由之间的环路。当路由器从 EBGP 邻居收到 BGP 路由时,如果该路由的AS_Path中包含了自己的AS 编号,则该路由将会直接丢弃。

ip ip-prefix asp permit 2.2.2.0 24 
 
route-policy 10 permit node 1 
if-match ip-prefix asp 
apply as-path 500 500 additive     增加AS_Path
route-policy 10 permit node 2       允许其他所有路由
 
bgp 100 
peer 10.0.15.5 route-policy 10 import       针对该邻居发来的路由修改此属性
 
apply as-path 300 500 500 100 overwrite    覆盖AS_Path
Warning: The AS-Path lists of routes to which this route-policy is applied will be overwritten. Continue? [Y/N] y 

MED 多出口区分器:可选非过渡,不会传递给其他AS
MED(Multi-exit-disc)也称为多出口鉴别器,它是一个4字节的整数,默认MED值为0,MED值越小,表明相应的路由优先级越高。MED属性主要作用是用来控制来自邻居AS的流量从哪个入口进入到本AS中。只有去往同一个目标网络的多条路由来自同一个AS时,才比较MED,配置命令compare-different-as-med 后可比较来自不同AS的路由。

acl 2001
rule permit source 172.16.1.0 0.0.0.25
acl 2002
rule permit source 172.16.2.0 0.0.0.25

route-policy R2 permit node 10
if-match acl 2001
apply cost 20
route-policy R2 permit node 20
if-match acl 2002
apply cost 30
route-policy R2 permit node 30

route-policy R3 permit node 10
if-match acl 2001
apply cost 38
route-policy R3 permit node 20
if-match acl 2002
apply cost 20
route-policy R3 permt node 30
 
bgp 100 
peer 192.168.12.2 route-policy R2 export             针对发向该邻居的路由添加该属性
peer 192.168.13.3 route-policy R3 export 

bgp 400 
compare-different-as-med    配置该命令可比较来自不同AS的路由MED值

优选AS内部IGP的Metric最小的路由
BGP在比较Next Hop 属性时,会优选去往Next Hop 属性中IP 地址的IGP开销最小的路由。 通信双方的往返报文选用不同路径的现象称为不对称路由。对于某些特定的应用,以及部署了某些特别的安全设备和安全策略的情况下,不对称路由的存在可能会导致通过中断的现象。

int g0/0/0 
ospf cost 2000 

community属性:可选过渡,产生该路由的设备上配置
BGP路由反射器可以用来减少大型AS中IBGP邻居关系的数量和简化IBGP邻居关系的管理和维护,BGP联盟(Condeferation)也可以用来实现类似的目的。
一个 BGP 联盟是一个具有内部层次结构的 AS,一个BGP 联盟由若干个子 AS组成。对于一个 BGP 联盟,其成员 AS 内部的路由器之间需要建立全互联的IBGP邻居使用BGP路由反射器,而成员之间需要建立EBGP邻居关系。从联盟外的 EBGP对等体来看,整个联盟无异于一个普通的 AS,联盟内部的结构对于联盟外的EBGP对等体来说是完全透明的。
若公司网络规模需要扩大,则一般只需要在相应的成员AS中添加路由器并进行相关的配置即可,配置工作量远远小于不使用BGP联盟的情形。

bgp 2001
confederation id 200       创建团体AS200
confederation peer-as 2002         宣布团体AS内的其他邻居as2002
peer 10.0.23.3 as-number 2002
peer 10.0.23.3 next-hop-loacl      在一个团体内的不同AS间也要设置该属性

团体属性是BGP路由的一种可选属性,路由器在向BGP对等体传递路由时,如果希望所传递的路由携带团体的属性,则需要额外的配置 4个特殊的团体:

internet : 可以向任何BGP对等体发布路由
no-export: 不会发给 EBGP 对等体,但可以发布给联盟(Confederation)EBGP对等体
no-export-Subconfed:不会发给 EBGP 对等体,也不会发布给联盟(Confederation)EBGP对等体
no-advertise: 不会发给任何BGP对等体
aa:nn 自定义团体属性

ip ip-prefix 2 permit 10.0.100.2 32 
route-policy 10 permit node 2 
if-match ip-prefix 2
apply community internet / no-export / no-export-Subconfed / no-advertise
route-policy 10 permit node 10 

bgp 100 
peer 192.168.12.2 advertise-community       让邻居可识别community属性,每台路由器都设置
peer 192.168.12.2 route-policy 10 export 
display bgp routing-table community   查看community信息

正常的团体属性难以满足这样的需求,所以添加自定义团体属性 
R1:产生该路由时添加community属性标记
ip ip-prefix 5 permit 10.0.100.5 32 

route-policy 10 permit node 5 
if-match ip-prefix 5 
apply community 100:5 
route-policy 10 permit node 10

R4:识别该属性,并拒绝
ip community-filter 1 permit 100:5       识别community 100:5的属性标记

route-policy 10 deny node 10
if-match community-filter 1 
route-policy 10 permit node 20

bgp 2001 
peer 192.168.24.2 route-policy 10 import 

路由反射器:(同一个AS内)
从一个非客户端那里接收到的路由,反射器会将它只传递给所有的客户端;
从一个客户端那里接收到的路由,反射器会将它传递给所有其它的客户端以及非客户端 ;
从 EBGP 对等体那里接收到的路由,反射器会将它传递给所有客户端和非客户端。
禁止客户机之间的路由反射

bgp 100 
undo  reflect between-clients      关闭邻居间路由反射功能
在反射器服务器上配置,反射器客户端只需要与服务器建立邻居,不用相互建立邻居
bgp 100 
router-id 1.1.1.1
group 1                     创建组
peer 2.2.2.2 group 1        宣布邻居2.2.2.2为group 1
peer 3.3.3.3 group 1
peer 1 reflect-client       宣告组内的客户端
peer 1 next-hop-local       
reflector cluster-id 1        设置cluster-id编号

BGP路由过滤:
路由属性的丰富性可以为实现路由过滤、路由引入等路由策略和控制提供非常有利的条件。
利用AS-Path进行路由过滤

ip as-path-filter 1 permit 100$     匹配路由始发与AS100
bgp 200 
peer 192.168.13.1 as-path-filter 1 import 

利用Community 属性进行路由过滤

route-policy 10 permit node 1 
apply community no-export 
bgp 300 
peer 192.168.14.1 route-policy 10 export 
peer 192.168.14.1 advertise-community 

利用Next Hop属性进行路由过滤

ip ip-prefix 1 permit 192.168.25.5 32 
route-policy 10 deny node 1 
if-match ip next-hop ip-prefix 1 
route-policy 10 permit node 2 
bgp 100 
peer 192.168.26.6 route-policy 10 export 

BGP路由引入:
在多协议混合的网络环境中,不同的路由协议使用的协议报文各不相同,就好比说着不同的语言。如果一种路由协议需要从别的路由协议那里获取路由信息,则可以使用路由引入技术。

ip ip-prefix 10 permit 5.5.5.5 32 
route-policy 10 permit node 1 
if-match ip-prefix 10 
bgp 100 
import-route ospf 1 route-policy 10 

BGP缺省路由:(下放默认路由)
在BGP网络中,一台路由器可以向它的一个BGP对等体发布一条下一跳为自己的缺省路由,也可以使用 network 向整个 AS 通告一条下一跳为自己的缺省路由,另外,还可以根据需要在BGP路由器上手工配置静态缺省路由。
第一种方法:

default-route-advertise 
bgp 100 
peer 192.168.14.1 default-route-advertise 

第二种方法:手工写一条缺省路由,在BGP中通告

network 0.0.0.0  
ip route-static 0.0.0.0 0.0.0.0 NULL 0 
bgp 100 
network 0.0.0.0 0.0.0.0 

第三种方法:手工添加一条静态缺省路由

ip route-static 0.0.0.0 0.0.0.0 192.168.12.2 

IBGP防环:
路由器从它的一个BGP对等体那里接收到的路由条目不会将该路由器再传递给其它IBGP对等体,这个原则被称为BGP水平分割。
EBGP防环:
当路由器从EBGP邻居收到BGP路由时,如果该路由的AS_Path中包含了自己的AS编号,则该路由将会直接丢弃。
RR防环:
Originator_id可选非过渡属性,由RR产生,封装在Update消息中,使用router-id值标识路由的始发者,用于防止集群内路由环路。
Cluster_list可选非过渡属性,记录路由经过的每个集群的Cluster_id ,用来在集群间避免环路。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352