BGP
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BGP相关的知识,希望对你有一定的参考价值。
1:路径矢量协议
2:AS:单独技术管理域控制下的网络汇聚端;范围可大可小,相对而言;
AS no. 1-65535, 私有64512-65535
IGP协议运行在一个相同AS内部,保证该AS的内部连通性,并负责收集该AS内有哪些可达的路由信息;
BGP运行在不同AS之间;
3:BGP选路是基于策略设置,而不是最优路径;BGP策略可基于AS-AS来设置,也可以基于hop-hop来设置;
4:协议基本属性:
基于TCP:179端口运行;
只进行增量触发更新;
通过周期性的发送keepalive消息,来确保两个邻居之间TCP链路的有效性;
丰富的路径属性;
5:BGP的表:
邻居表:放置着BGP的邻居;所有的BGP邻居关系都是“单播、双向手工邻居”
BGP表:包含通过每个邻居学习来的每条BGP网段信息;
到达这些目标网段的所有路径;
每条路径的路径属性;
IP路由表:经过BGP策略选择之后的最优路径;
6:消息类型:所有的BGP消息包都是单播包;
*OPEN:发现并建立邻居关系;包含hold-time和BGP的RID;
*keepalive:周期性的发送,维护邻居关系;
*Update:到达所以目标网段的所有路径,以及每条路径的BGP属性;
*Notification:当设备运行BGP检测到错误产生时向所有邻居发送,发送之后
便将本地的BGP会话关闭;
8:BGP邻居关系:所有的BGP邻居关系建立都是双向手工配置,而且所有BGP邻居之间的消息包都是单播包。
(1)EBGP:在两个位于不同AS内的路由器之间建立的邻居关系叫 EBGP
缺省:EBGP邻居要使用直连接口地址来建立邻居关系;原因是缺省EBGP邻居之间消息包的TTL=1;
(2)IBGP:在两个位于相同AS内的路由器之间建立的邻居关系叫 IBGP;
一个BGP路由器不会把从某个IBGP邻居学习来的路由再转发给其他IBGP邻居;目的是为了防环;
9:BGP邻居状态:
Idle:查找本地路由表中是否存在着到达邻居目标地址的路由条目;
Connect:已经在本地路由表中查找到相应路由条目,并开始与邻居建立TCP连接,完成3次TCP握手;
Open send:向该邻居发送Open消息,并开始等待来自邻居的回复确认;
Open confirm:已经收到对方回复的确认消息,向下进入established状态;
Active:未收到对方的确认消息将停留在active状态,并有可能在idle和active之间不断循环;
BGP基本配置:
(1)router bgp AS-no. :自治系统号范围 1-65535,65536-4294967295;
该AS号码直接指定了当前路由器所在的AS;
也决定了该路由器与其他BGP路由器的邻居关系是EBGP还是IBGP;
缺省在一个单独时刻,只能在一个设备上边开启一个BGP进程;
(2)bgp双向手工邻居的配置:
-router)#neighbor ip-address remote-as as-no
*ip-address:是邻居路由器上某个可达的IP地址;
该ip-address直接指定了本地路由器发往这个bgp邻居,所有BGP消息包的目标IP;
而发往该邻居所有BGP消息包的源ip取决于带有该目标ip-address的消息包从本地哪个接口发出去;
*而建邻居双方需要满足这样的地址要求:确保本地指向邻居消息包的目标IP,作为邻居向本地回包
的源地址;
*as-no. :邻居路由器所在AS号码;
-router)#neighbor 2.2.2.2 remote-as 65123
-router)#neighbor 2.2.2.2 update-source loopbace 0 -->指定本地某个接口(loopback0)的地址作为发往邻居2.2.2.2所有BGP消息包的源地址;
-config)#router bgp 65300
-router)#no synchronization
-router)#bgp log-neighbor-changes
-router)#neighbor 2.2.2.2 remote-as 65123
-router)#neighbor 2.2.2.2 ebgp-multihop 5 --->将发往EBGP邻居2.2.2.2的BGP消息包的TTL改成5
-router)#neighbor 2.2.2.2 update-source Loopback0
-router)#no auto-summary
(4)BGP邻居验证:
neighbor 2.2.2.2 password 123455 只支持MD5验证
(5)关闭与某个BGP邻居的会话,但并不移除本地有关该邻居的配置信息:
router)#neighbor 2.2.2.2 shutdown
router)#no neighbor 2.2.2.2 shutdown
(3)向BGP内宣告路由:
-rotuer)#network 10.1.1.0 mask 255.255.255.0
*只要该路由存在于设备路由表中,就可以将其network进BGP,而无需考虑该条目之前是如何进入本地路由表中;
*必须保证向BGP内宣告的网段和当前路由表相应条目保持一致;
缺省,EBGP路由条目在向IBGP邻居宣告时,next-hop-ip保持不变;
-router)#neighbor 1.1.1.1 next-hop-self --->向IBGP邻居1.1.1.1宣告本地学习到的EBGP路由时,将next-hop-ip指向本地路由器自己;
(6)常见show命令
*show ip bgp summary -->查看当前简要的BGP邻居信息
*show ip bgp neighbor -->查看当前详细的BGP邻居信息
*show ip bgp -->查看本地BGP表
*show ip route bgp -->查看BGP路由表
*show ip bgp rib-filure -->查看当前BGP表中没有最终进入路由表的路由条目有哪些,以及没有进入路由表的原因
(7)清理BGP会话:使得本地针对邻居修改的BGP策略立即生效
*硬清:#clear ip bgp * ----->重置与本地所有BGP邻居的会话
clear ip bgp 2.2.2.2 ---->只重置本地与邻居2.2.2.2的BGP会话
*软清:#clear ip bgp * soft ---->让当前本地针对所有邻居调整的BGP策略立即生效,并不会重置邻居关系;
clear ip bgp 2.2.2.2 soft ---->让当前本地针对邻居2.2.2.2调整的BGP策略立即生效,并不会重置邻居关系;
(8):同步规则:当开启bgp同步规则的时候,如果将一条路由信息仅宣告进BGP,而同时没有被宣告进相应的IGP协议,
在设备本地发生BGP数据库和IGP数据库不同步的情况,那么BGP协议不会使用所学习到的不同步的路由条目,
也不会把它转发给其他的BGP邻居;
(9):BGP对等体组(peer-group)
减少多个邻居相同的BGP策略设置;先创建逻辑的对等体组,然后将之前赋予每个邻居的BGP策略赋予到peer-group,
再将具体邻居加入到peer-group;而对等体组内的成员可单独再设置与其他组成员不同的BGP策略;
neighbor kaka peer-group
neighbor kaka remote-as 65123
neighbor kaka update-source Loopback0
neighbor kaka next-hop-self
neighbor 1.1.1.1 peer-group kaka
neighbor 2.2.2.2 peer-group kaka
(10):BGP选路
*最高Weight值 (Cisco Only)
*最高本地优先级
*本地发起路由(next-hop 0.0.0.0)(network通告的路由优先、从IGP重分布的路由次优、手工汇总路由)
*最短AS_PATH (跳过这一步:bgp bestpath as-path ignore)
*比较源头码:IGP优于BGP
EBGP优于IBGP
不完整
*最小MED(默认只比较第一个邻接AS相同的路由;比较不同邻接AS的MED用命令bgp always-compare-med)
*EBGP优于IBGP(IBGP优于联盟EBGP,联盟EBGP优于联盟IBGP)
负载均衡输入:maximum-paths 6
注:负载均衡条件:
1:邻接关系都是EBGP,且到下一跳IGP度量相等
2:邻接关系都是IBGP,且到下一跳IGP度量相等(可通过unequal-cost ibgp multipath忽略这步)
*(1)如果都是EBGP,选取最早学习到的路由;
(2)如果都是IBGP,选取到下一跳具有最低IGP度量的路由
*最小Router-ID的下一跳路由(RR环境)
*最小IP地址的下一跳(建邻居时所指向的IP地址)
(11):bgp策略 neighbor 1.1.1.1 route-map kaka in/out -->将名字为kaka的route-map应用到从邻居1.1.1.1学习到(in)的bgp路由或发向(out)邻居1.1.1.1的bgp路由
*修改weight影响选路结果:
!
access-list 53 permit 50.1.3.0 0.0.0.255
!
route-map wei permit 10
match ip address 53
set weight 100
!
route-map wei permit 20
!
*修改local-Prf影响选路结果:
!
access-list 53 permit 50.1.3.0 0.0.0.255
!
route-map lpf permit 10
match ip address 53
set local-preference 200
!
route-map lpf permit 20
!
*修改AS-Pathx影响选路结果:针对EBGP邻居来修改
!
access-list 53 permit 50.1.3.0 0.0.0.255
!
route-map pth permit 10
match ip address 53
set as-path prepend 100 200 300
!
route-map pth permit 20
!
*修改MED影响选路结果:针对EBGP邻居来修改
!
access-list 53 permit 50.1.3.0 0.0.0.255
!
route-map med permit 10
match ip address 53
set metric 20000
!
route-map med permit 20
!
本文出自 “A man and A computer” 博客,请务必保留此出处http://juispan.blog.51cto.com/943137/1950663
以上是关于BGP的主要内容,如果未能解决你的问题,请参考以下文章