BGP基础

BGP(border gateway protocol)边界网关路由协议

AS(autonomous system)自治系统:

  • 自治系统,指的是在同一个组织管理下,使用相同策略的设备的集合。
  • 不同AS通过AS号区分,AS的取值范围1-65535,其中64512-65535是私有AS号。IANA负责AS号的分发。
  • 中国电信163 AS号:4134
  • 中国电信 CN AS号:4809
  • 中国网通AS 号:9929

BGP是边界网关协议,实现自治系统AS之间的路由可达,并选择最佳路径的距离矢量路由协议。

通俗来讲就是不同AS来建立连接。

目的:

为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。1982年,外部网关协议EGP(Exterior Gateway Protocol)被用于实现在AS之间动态交换路由信息。但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。

BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。

虽然BGP用于在AS之间传递路由信息,但并不是所有AS之间传递路由信息都需要运行BGP。比如在数据中心上行的连入Internet的出口上,为了避免Internet海量路由对数据中心内部网络的影响,设备采用静态路由代替BGP与外部网络通信。


优点:BGP使用TCP作为其传输层协议(目的端口号179),并支持与BGP与BFD联动、BGP Tracking和BGP GR和NSR,提高了网络的可靠性。

BGP有13条选路原则:

① 丢弃下一跳不可达的路由
② 优选Preference_Value值最高的路由(私有属性,仅本地有效)
③ 优选本地优先级(Local_Preference)最高的路由
④ 优选手动聚合>自动聚合>network>import>从对等体学到的
⑤ 优选AS_Path短的路由
⑥ 起源类型IGP>EGP>Incomplete
⑦ 对于来自同一AS的路由,优选MED值小的
⑧ 优选从EBGP学来的路由(EBGP>IBGP)
⑨ 优选AS内部IGP的Metric最小的路由
⑩ 优选Cluster_List最短的路由
⑪ 优选Orginator_ID最小的路由
⑫ 优选Router_ID最小的路由器发布的路由
⑬ 优选具有较小IP地址的邻居学来的路由
 

BGP的状态

1--Idel空闲状态(不进行TCP连接也不发送任何BGP报文)

本BGP设备的IP路由表内不存在去往邻居的路由信息

---停留在此状态的原因:

(1)本BGP设备没有去往对等体的路由

(2)收到TCP的结束连接报文(删除邻居或者邻居超时触发)

(3)收到来自邻居的Notification报文

触发Notification报文条件(再一个重置计时器后重新建立BGP的TCP连接,即重新发送用于BGP的TCP连接报文)

原因: 1----AS号错误- -- R-ID重复 --- 认证失败等

2-----Connect状态

在Connect状态下,BGP启动连接重传定时器,等待TCP完成连接。(1)如果TCP连接成功,那么BGP会向对等体发送Open报文,并转至OpenSent状态

如果TCP连接失败,那么BGP转至Active状态

如果连接重传定时器超时,BGP任没有收到BGP对等体的响应,那么BGP继续尝试TCP连接,停留在Connect状态。

停留在Connect状态的原因:

1-与BGP对等体TCP连接未得到响应或者指定错误的对等体地址(本端设备有去往对等体的路由信息)或者2--中间设备没有本设备去往对等体的路由,3---中间设备拒绝了本BGP设备发出的BGP相关数据(过滤了本设备IP流量或者TCP流量或者TCP-179端口数据)

3-----Active

在Active状态下,BGP总是试图建立TCP连接

(1)如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent

(2)如果TCP连接失败,停留在Active状态

(3)如果连接重传定时器超时,任没有收到BGP对等体的响应,那么BGP转至Connect状态

停留在Active状态的原因:

(1)与BGP对等体TCP失败

中间设备拒绝了本BGP设备发出的BGP相关数据(过滤了本设备IP流量或者TCP流量或者TCP-179端口数据)

(2)--本BGP设备配置错误的对等体地址(对等体设备未开启BGP(TCP-179端口处于关闭状态)

4-----OpenSent

在OpenSent状态,BGP等对等体的Open报文,并对收到的Open报文中的AS号,版本号,认证信息等进行检查

(1)如果收到的Open报文正确,那么BGP发送Keepalive报文,且重置Keepalive定时器,并转至OpenConfirm状态。

(2)如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体。并转至Idle状态。

停留在OpenSent状态的原因:

(1)对等体发送的Open报文中的AS号与本BGP设备配置不一致。(本端BGP配置时邻居的AS号配置错误)

5-----OpenConfirm

在OpenConfirm状态下,BGP等待Keepalive或Notification报文。

(1)如果收到Keepalive报文,则转至Established状态(BGP邻居的最终状态)

(2)如果收到Notification报文,则转至Idle状态

5.1---停留在OpenConfirm状态的原因:

(1)BGP的TCP建立成功,对等体未发送Keepalive报文(邻居设备BGP配置对本BGP的AS号错误配置)

6-----Established状态

完成建立邻居

普通的BGP只能使用全互联来打消BGP水平分割的机制(防环)

所以如果AR4和AR5之间还有许多路由器,也只需要全互联后直接将R4 和R5 建立对等体,

因为水平分割的机制是从IBGP 收到一个从IBGP 传来的路由不会再传给任何IBGP

话不多说上图

我这里全部用的是loopback口建立的连接,因为在物理线路上,接口可能会down掉,BGP的建立也会down掉,所以使用环回口,也可以保证BGP的连接。

AR1

interface GigabitEthernet0/0/0
 ip address 201.1.1.1 255.255.255.0 
#
interface GigabitEthernet0/0/1
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
interface LoopBack0
 ip address 210.1.1.1 255.255.255.255 
#
interface LoopBack1
 ip address 1.1.1.1 255.255.255.255 
#
bgp 100
 router-id 1.1.1.1                                        BGP中设置route id
 peer 4.4.4.4 as-number 123                               指像对等体的loopback口
 peer 4.4.4.4 ebgp-max-hop 10                             EBGP最大跳数改为10,默认为1
 peer 4.4.4.4 connect-interface LoopBack1                 绑定loopback的接口
 #
 ipv4-family unicast
  undo synchronization
  network 210.1.1.1 255.255.255.255                        起源网络
  peer 4.4.4.4 enable
#
ip route-static 4.4.4.4 255.255.255.255 201.1.1.4            写静态,指向另外AS区域
#

AR4

interface GigabitEthernet0/0/0
 ip address 201.1.1.4 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.1.1.1 255.255.255.0 
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
interface LoopBack1
 ip address 4.4.4.4 255.255.255.255 
#
bgp 123
 router-id 4.4.4.4
 peer 1.1.1.1 as-number 100 
 peer 1.1.1.1 ebgp-max-hop 10 
 peer 1.1.1.1 connect-interface LoopBack1
 peer 2.2.2.2 as-number 123 
 peer 2.2.2.2 connect-interface LoopBack1
 peer 5.5.5.5 as-number 123 
 peer 5.5.5.5 connect-interface LoopBack1
 #
 ipv4-family unicast
  undo synchronization
  peer 1.1.1.1 enable
  peer 2.2.2.2 enable
  peer 5.5.5.5 enable
  peer 5.5.5.5 next-hop-local                 下一条改为本地,避免对等体无法转发路由
#
ospf 1 router-id 4.4.4.4                      ospf配置一个AS内网络
 area 0.0.0.0 
  network 4.4.4.4 0.0.0.0 
  network 10.1.1.1 0.0.0.0 
#
ip route-static 1.1.1.1 255.255.255.255 201.1.1.1      静态指向另外AS区域

AR2

interface GigabitEthernet0/0/0
 ip address 10.1.1.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.2.2.2 255.255.255.0 
#
interface NULL0
#
interface LoopBack1
 ip address 2.2.2.2 255.255.255.255 
#
bgp 123
 router-id 2.2.2.2
 peer 4.4.4.4 as-number 123 
 peer 4.4.4.4 connect-interface LoopBack1
 peer 5.5.5.5 as-number 123 
 peer 5.5.5.5 connect-interface LoopBack1
 #
 ipv4-family unicast
  undo synchronization
  peer 4.4.4.4 enable
  peer 5.5.5.5 enable
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 2.2.2.2 0.0.0.0 
  network 10.1.1.2 0.0.0.0 
  network 10.2.2.2 0.0.0.0 

AR5

interface GigabitEthernet0/0/0
 ip address 10.2.2.1 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 203.1.1.5 255.255.255.0 
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
interface LoopBack1
 ip address 5.5.5.5 255.255.255.255 
#
bgp 123
 router-id 5.5.5.5
 peer 2.2.2.2 as-number 123 
 peer 2.2.2.2 connect-interface LoopBack1
 peer 3.3.3.3 as-number 300 
 peer 3.3.3.3 ebgp-max-hop 10 
 peer 3.3.3.3 connect-interface LoopBack1
 peer 4.4.4.4 as-number 123 
 peer 4.4.4.4 connect-interface LoopBack1
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.2 enable
  peer 3.3.3.3 enable
  peer 4.4.4.4 enable
  peer 4.4.4.4 next-hop-local                     
#
ospf 1 router-id 5.5.5.5 
 area 0.0.0.0 
  network 5.5.5.5 0.0.0.0 
  network 10.2.2.1 0.0.0.0 
#
ip route-static 3.3.3.3 255.255.255.255 203.1.1.3

AR3

interface GigabitEthernet0/0/0
 ip address 203.1.1.3 255.255.255.0 
#
interface GigabitEthernet0/0/1
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
interface LoopBack0
 ip address 220.1.1.1 255.255.255.255 
#
interface LoopBack1
 ip address 3.3.3.3 255.255.255.255 
#
bgp 300
 router-id 3.3.3.3
 peer 5.5.5.5 as-number 123 
 peer 5.5.5.5 ebgp-max-hop 10 
 peer 5.5.5.5 connect-interface LoopBack1
 #
 ipv4-family unicast
  undo synchronization
  network 220.1.1.1 255.255.255.255 
  peer 5.5.5.5 enable
#
ip route-static 5.5.5.5 255.255.255.255 203.1.1.5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BGP中的Keepalive是一种定期发送的报文,用于维持BGP邻居关系。如果收到正确的Update或Keepalive报文,BGP就认为对端处于正常运行状态,并保持BGP连接。Keepalive报文的格式只包含报文头,没有附加其他任何字段。该报文的目的是确保BGP会话的连通性,并及时检测到邻居的异常情况。如果收到错误的Update或Keepalive报文,BGP将发送Notification报文通知对端,并转至Idle状态。而Route-refresh报文不会改变BGP状态。如果收到Notification报文,BGP会转至Idle状态。另外,如果收到TCP拆链通知,BGP会断开连接并转至Idle状态。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [BGP的5种交互报文、6种状态机、对等体关系建立与路由交互过程介绍](https://blog.csdn.net/qq_45443704/article/details/129895505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [BGP基础](https://blog.csdn.net/zljszn/article/details/124732057)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值