BGP邻居
EBGP邻居
1、用直连建立EBGP邻居
2、用环回口建立eBGP邻居
- EBGP多跳和指定更新源
EBGP可以采用直连建立,也可以采用环回口作为更新源建立EBGP邻居用以备份。但是需要修改TTL值
IBGP邻居
1、用直连建立IBGP邻居
2、用环回口建立IBGP邻居
基于TCP连接的邻居关系
BGP邻居关系建立在TCP连接的基础之上
可以通过IGP或静态路由来提供TCP连接的IP可达性
BGP状态机
- Idle:BGP连接的第一个状态。在空闲状态,BGP在等待一个启动事件。启动事件出现以后,BGP初始化资源,复位连接重试计时器(Connect-Retry),发起一条TCP连接,同时转入Connect(连接)状态。
- Connect:在此状态,BGP发起第一个TCP连接,如果连接重试计时器超时,就重新发起TCP连接,并继续保持在Connect状态,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就转入Active状态。
- Active:在此状态,BGP总是在试图建立TCP连接,如果连接重试计时器(Connect-Retry)超时,就退回到Connect状态,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就继续保持在Active状态,并继续发起TCP连接。
- OpenSent:在此状态,TCP连接已经建立,BGP也已经发送了第一个Open报文,剩下的工作,BGP就在等待其对等体发送Open报文。并对收到的Open报文进行正确性检查,如果有错误,系统就会发送一条出错通知消息并退回到Idle状态,如果没有错误,BGP就开始发送Keepalive报文,并复位Keepalive计时器,开始计时。同时转入OpenConfirm状态。
- OpenConfirm:在OpenConfirm状态,BGP等待一个Keepalive报文,同时复位保持计时器,如果收到了一个Keepalive报文,就转入Established阶段,BGP邻居关系就建立起来了。
- Established:在Established状态,BGP邻居关系已经建立,这时,BGP将和它的邻居们交换Update报文,同时复位保持计时器。
另外,在除Idle状态以外的其它五个状态出现任何Error的时候,BGP状态机就会退回到Idle状态。
在BGP对等体建立的过程中,通常可见的三个状态是:Idle、Active、Established。
Idle状态下,BGP拒绝任何进入的连接请求,是BGP初始状态。
Active状态下,BGP将尝试进行TCP连接的建立,是BGP的中间状态。
Established状态下,BGP对等体间可以交换Update报文、Route-refresh报文、Keepalive报文和Notification报文。
BGP对等体双方的状态必须都为Established,BGP邻居关系才能成立,双方通过Update报文交换路由信息。
路由表
IP路由表 (IP-RIB)
全局路由信息库,包括所有IP路由信息。
BGP路由表 (Loc-RIB)
BGP路由信息库,包括本地BGP Speaker选择的路由信息。
邻居表
对等体邻居清单列表
Adj-RIB-In
对等体宣告给本地Speaker的未处理的路由信息库
Adj-RIB-Out
本地Speaker宣告给指定对等体
EBGP多跳和指定更新源
EBGP可以采用直连建立,也可以采用环回口作为更新源建立EBGP邻居用以备份。但是需要修改TTL值
BGP通告原则
BGP通告原则1
- 连接建立时,BGP Speaker只把本身用的最优路由通告给对等体
- 多条路径时,BGP Speaker只选最优的路由放入路由表
即对于bgp来说,BGP Speaker只选最优的路由放入路由表,但是在全局的ip routing-table关于bgp的此条路由可以有多条(手动配置)
BGP通告原则2
- BGP Speaker从EBGP获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP)
保证IBGP下一跳可达
BGP的下一跳行为:BGP是AS by AS的协议,不同于IGP中的下一跳是一个路由器地址,BGP中的下一跳为如何去往其他AS的一个设备(即ebgp到ebgp的下一跳会变);而且在不同AS之间将保持不变(ibgp下一跳不变,需要用peer ** next-hop-local)
即EBGP通告给EBGP的路由时,路由的下一跳会自动改变,而EBGP通告给IBGP的路由下一跳不会改变。
如果EBGP和EBGP是直连接口建立,且属于同一个网段,则EBGP发送到EBGP的路由下一跳不会发生改变
BGP路由通告原则(三)
- BGP Speaker 从IBGP获得的路由不会通告给它的IBGP邻居。
IBGP逻辑全互连,导致AS内部路由器需要维护更多的IBGP会话。可以用路由反射器或者联盟
BGP通告原则 4
- BGP Speaker 从IBGP获得的路由是否通告给它的EBGP对等体要依IGP和BGP同步的情况来决定
- BGP与IGP同步的概念:BGP Speaker不将从IBGP对等体获得的路由信息通告给它的EBGP对等体,除非该路由信息也能通过IGP获得
华为默认是关闭同步,无法开启,所以华为不遵循该规则思科可以手工开启或关闭
成为BGP路由的途径之一: network 命令 ,引入或汇总
配置IGP协议ospf
[AR1]dis ip interface brief
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
The number of interface that is UP in Physical is 6
The number of interface that is DOWN in Physical is 0
The number of interface that is UP in Protocol is 6
The number of interface that is DOWN in Protocol is 0
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 12.1.1.1/24 up up
GigabitEthernet0/0/1 13.1.1.1/24 up up
GigabitEthernet0/0/2 16.1.1.1/24 up up
LoopBack0 1.1.1.1/32 up up(s)
LoopBack1 unassigned up up(s)
NULL0 unassigned up up(s)
[AR1]
[AR2]dis ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 12.1.1.2/24 up up
GigabitEthernet0/0/1 24.1.1.2/24 up up
GigabitEthernet0/0/2 unassigned down down
LoopBack0 2.2.2.2/32 up up(s)
NULL0 unassigned up up(s)
[AR3]dis ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 13.1.1.3/24 up up
GigabitEthernet0/0/1 35.1.1.3/24 up up
GigabitEthernet0/0/2 37.1.1.3/24 up up
LoopBack0 3.3.3.3/32 up up(s)
NULL0 unassigned up up(s)
[AR4]dis ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 45.1.1.4/24 up up
GigabitEthernet0/0/1 24.1.1.4/24 up up
GigabitEthernet0/0/2 unassigned down down
LoopBack0 4.4.4.4/32 up up(s)
LoopBack10 44.44.44.44/32 up up(s)
NULL0 unassigned up up(s)
[AR5]dis ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 35.1.1.5/24 up up
GigabitEthernet0/0/1 45.1.1.5/24 up up
GigabitEthernet0/0/2 unassigned down down
LoopBack0 5.5.5.5/32 up up(s)
NULL0 unassigned up up(s)
[AR6]dis ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 16.1.1.6/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
NULL0 unassigned up up(s)
[AR7]dis ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 37.1.1.7/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
LoopBack0 7.7.7.7/32 up up(s)
LoopBack10 77.77.77.77/32 up up(s)
NULL0 unassigned up up(s)
配置BGP
[AR1]dis current-configuration configuration bgp
[V200R003C00]
#
bgp 100
router-id 1.1.1.1
peer 2.2.2.2 as-number 100 //指定邻居为2.2.2.2 区域为100
peer 2.2.2.2 connect-interface LoopBack0 //配置bgp更新源为环回口
peer 3.3.3.3 as-number 100
peer 16.1.1.6 as-number 300 //bgp直连邻居可以省略配置更新源,有默认配置即可
#
ipv4-family unicast
undo synchronization //bgp路由通告4,华为特有,更改不了,系统默认配置
peer 2.2.2.2 enable
peer 3.3.3.3 enable
peer 3.3.3.3 next-hop-local //本路由器送往邻居3.3.3.3的bgp路由,下一跳指向本路由器,如AR6上的66.66.66.66/32的路由有AR1送往AR3时,在AR3上关于此路由的下一跳为AR1,如没有配置此命令,则下一跳为AR6
peer 3.3.3.3 next-hop-local
peer 16.1.1.6 enable
#
return
[AR2]dis current-configuration configuration bgp
[V200R003C00]
#
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
peer 4.4.4.4 as-number 200
peer 4.4.4.4 ebgp-max-hop 255 两个EBGP通过环回口建立,需要指定EBGP多跳
peer 4.4.4.4 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 1.1.1.1 enable
peer 1.1.1.1 next-hop-local //AR2将AR4上的路由44.44.44.44/32送往AR1时,AR1上关于此路由的下一跳指向AR2,若没有配置此命令,则下一跳为AR4
peer 4.4.4.4 enable
#
return
[AR3]dis current-configuration configuration bgp
[V200R003C00]
#
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
peer 35.1.1.5 as-number 200
#
ipv4-family unicast
undo synchronization
peer 1.1.1.1 enable
peer 1.1.1.1 next-hop-local
peer 35.1.1.5 enable
#
return
[AR4]dis current-configuration configuration bgp
[V200R003C00]
#
bgp 200
peer 2.2.2.2 as-number 100
peer 2.2.2.2 ebgp-max-hop 255
peer 2.2.2.2 connect-interface LoopBack0
peer 5.5.5.5 as-number 200
peer 5.5.5.5 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
network 44.44.44.44 255.255.255.255
peer 2.2.2.2 enable
peer 5.5.5.5 enable
peer 5.5.5.5 next-hop-local
#
return
[AR5]dis current-configuration configuration bgp
[V200R003C00]
#
bgp 200
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack0
peer 35.1.1.3 as-number 100
#
ipv4-family unicast
undo synchronization
peer 4.4.4.4 enable
peer 4.4.4.4 next-hop-local
peer 35.1.1.3 enable
#
return
[AR6]dis current-configuration configuration bgp
[V200R003C00]
#
bgp 300
peer 16.1.1.1 as-number 100
#
ipv4-family unicast
undo synchronization
peer 16.1.1.1 enable
#
return
[AR1]dis 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: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 44.44.44.44/32 3.3.3.3 100 0 200i
* i 2.2.2.2 0 100 0 200i
[AR1]dis bgp routing-table 44.44.44.44 32
BGP local router ID : 1.1.1.1
Local AS number : 100
Paths: 2 available, 1 best, 1 select
BGP routing table entry information of 44.44.44.44/32:
From: 3.3.3.3 (3.3.3.3)
Route Duration: 00h39m38s
Relay IP Nexthop: 13.1.1.3
Relay IP Out-Interface: GigabitEthernet0/0/1
Original nexthop: 3.3.3.3
Qos information : 0x0
AS-path 200, origin igp, localpref 100, pref-val 0, valid, internal, best, select, active, pre 255, IGP cost 1
Advertised to such 1 peers:
16.1.1.6
BGP routing table entry information of 44.44.44.44/32:
From: 2.2.2.2 (24.1.1.2)
Route Duration: 00h36m52s
Relay IP Nexthop: 12.1.1.2
Relay IP Out-Interface: GigabitEthernet0/0/0
Original nexthop: 2.2.2.2
Qos information : 0x0
AS-path 200, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, IGP cost 1, not preferred for router ID
Not advertised to any peer yet
[AR3]dis bgp routing-table
BGP Local router ID is 3.3.3.3
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
*> 44.44.44.44/32 35.1.1.5 0 200i
[AR2]dis bgp routing-table peer 3.3.3.3 advertised-routes 44.44.44.44 32
Info: The peer does not exist.
//AR2并没有通告给AR3关于44.44.44.44/32的路由信息
BGP通告原则1
连接建立时,BGP Speaker只把本身用的最优路由通告给对等体,
多条路径时,BGP Speaker只选最优的路由放入路由表
AR1从AR2,AR3分别学到了44.44.44.44/32的路由,但是AR1只把最优的一条放入自身路由表,且把其中一条最优路由通告给对等体
BGP通告原则2
BGP Speaker从EBGP获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP)
BGP的下一跳行为:BGP是AS by AS的协议,不同于IGP中的下一跳是一个路由器地址,BGP中的下一跳为如何去往其他AS的一个设备;而且在不同AS之间将保持不变
AR3从AR7学习到的EBGP路由77.77.77.77/32会通告为AR1,AR5,修改下一跳命令peer 1.1.1.1 next-hop-local
BGP路由通告原则(三)
BGP Speaker 从IBGP获得的路由不会通告给它的IBGP邻居。
AR1从AR2获得的IBGP路由不会通告给IBGP邻居AR3
BGP通告原则 4
BGP Speaker 从IBGP获得的路由是否通告给它的EBGP对等体要依IGP和BGP同步的情况来决定
BGP与IGP同步的概念:BGP Speaker不将从IBGP对等体获得的路由信息通告给它的EBGP对等体,除非该路由信息也能通过IGP获得
华为默认是关闭同步,无法开启,所以华为不遵循该规则,即AR3从AR1获得的IBGP路由会通告给EBGP邻居AR7,而不用看AR3本地IGP路由是否有此路由。思科可以手工开启或关闭,
BGP路由提高
成为BGP路由的途径之一: network 命令
BGP的network命令为通告路由把IGP(比如OSPF)发现的路由信息通过network命令注入到RT2的BGP路由表中
需要严格匹配掩码
成为BGP路由的途径之二: import 命令
[AR3-GigabitEthernet0/0/2]bgp 100
[AR3-bgp]peer 37.1.1.7 as-number 400
[AR3-bgp]
Aug 15 2020 10:19:26-08:00 AR3 %%01BGP/3/STATE_CHG_UPDOWN(l)[0]:The status of the peer 37.1.1.7 changed from OPENCONFIRM to ESTABLISHED. (InstanceName=Public, StateChangeReason=Up)
[AR7]acl 2001
[AR7-acl-basic-2001]rule permit source 77.77.77.77 0
[AR7-acl-basic-2001]rule permit source any
[AR7-acl-basic-2001]dis th
[V200R003C00]
#
acl number 2001
rule 5 permit source 77.77.77.77 0
rule 10 permit
#
return
[AR7-acl-basic-2001]q
[AR7]route-policy Import-connect permit node 10
Info: New Sequence of this List.
[AR7-route-policy]if-match acl 2001
[AR7-route-policy]
[AR7-route-policy]bgp 400
[AR7-bgp]import-route direct route-policy Import-connect
[AR7-bgp]dis bgp routing-table
BGP Local router ID is 37.1.1.7
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 7
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 7.7.7.7/32 0.0.0.0 0 0 ?
*> 37.1.1.0/24 0.0.0.0 0 0 ?
*> 37.1.1.7/32 0.0.0.0 0 0 ?
*> 44.44.44.44/32 37.1.1.3 0 100 200i
*> 77.77.77.77/32 0.0.0.0 0 0 ?
*> 127.0.0.0 0.0.0.0 0 0 ?
*> 127.0.0.1/32 0.0.0.0 0 0 ?
[AR7-bgp]
[AR3-bgp]dis bgp routing-table
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 4
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 7.7.7.7/32 37.1.1.7 0 0 400?
37.1.1.0/24 37.1.1.7 0 0 400?
*> 44.44.44.44/32 35.1.1.5 0 200i
*> 77.77.77.77/32 37.1.1.7 0 0 400?
[AR5]dis bgp routing-table
BGP Local router ID is 45.1.1.5
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 7.7.7.7/32 35.1.1.3 0 100 400?
*>i 44.44.44.44/32 4.4.4.4 0 100 0 i
*> 77.77.77.77/32 35.1.1.3 0 100 400?