BGP试验笔记

一、概念

BGP(Border Gateway Protocol,边界网关协议)是一个距离矢量路由协议,和传统的基于下一跳的IGP协议不同,它是基于AS(自治系统)的协议。

(1)BGP使用TCP为传输层协议,TCP端口号179,BGP路由器之间基于TCP建立BGP会话,BGP对等体无需直连。
(2)运行BGP的路由器被称为BGP发言者(BGP Speaker),两台BGP路由器需建立对等体关系(邻居关系)才能交互BGP路由,存在两种类型的BGP对等体关系 EBGP和 IBGP。
(3)在BGP对等体关系建立完成之后,BGP路由器只发增量更新或触发更新(不会发周期性更新)。
(4)BGP存在两种对等体关系类型:EBGP及IBGP。
IBGP邻居:AS内部建立的BGP邻居,邻居路由器的AS号是一致的
EBGP邻居:AS之间建立的BGP邻居,邻居路由器的AS号不相同

二、自治系统

自治系统(Autonomous System,AS),指的是在同一个组织管理下、使用相同策略的设备的集合。

BGP 网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS。AS号可分为2个字节AS号和4个字节AS号,其中 2字节AS的取值范围为 1至 65535其中64512-65535是私有AS号。4字节AS号的取值范转为 1至 4294967295,支持 4字节AS号的设备能与支持 2字节AS号的设备兼容,IANA负责AS号的分发。

三、BGP的报文
在这里插入图片描述
在这里插入图片描述
三、BGP的状态机制
在这里插入图片描述

1、Idle 状态是 BGP 初始状态。在 Idle 状态下, BGP 拒绝邻居发送的连接请求。只有在收到本设备的 Start 事件后,
BGP 才开始尝试和其它 BGP 对等体进行 TCP 连接,并转至 Connect状态。

说明:

Start 事件是由一个操作者配置一个 BGP 过程,或者重置一个已经存在的过程或者路由器软件重置 BGP 过程引起的。

任何状态中收到 Notification 报文 或 TCP 拆链通知等 Error 事件后, BGP 都会转至 Idle状态。

2、在 Connect 状态下, BGP 启动连接重传定时器(Connect Retry),等待 TCP 完成连接。

如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,并转至 OpenSent 状态;

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

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

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

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

如果 TCP 连接失败,那么 BGP 停留在 Active 状态;

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

4、在 OpenSent 状态下, BGP 等待对等体的 Open 报文,并对收到的 Open 报文中的 AS 号、版本号、
认证码等进行检查。

如果收到的 Open 报文正确,那么 BGP 发送 Keepalive 报文,并转至 OpenConfirm 状态;

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

5、在 OpenConfirm 状态下, BGP 等待 Keepalive 或 Notification 报文。如果收到 Keepalive
报文,则转至 Established 状态,如果收到 Notification 报文,则转至 Idle 状态。

6、在 Established 状态下, BGP 可以和对等体交换 Update、 Keepalive、 Route-refresh
报文和Notification 报文。

如果收到正确的 Update 或 Keepalive 报文,那么 BGP 就认为对端处于正常运行状态,将保持 BGP 连接。

如果收到错误的 Update 或 Keepalive 报文,那么 BGP 发送 Notification 报文通知对端,并转至 Idle
状态。

Route-refresh 报文不会改变 BGP 状态。

如果收到 Notification 报文,那么 BGP 转至 Idle 状态。

如果收到 TCP 拆链通知,那么 BGP 断开连接,转至 Idle 状态。

四、路由通告规则

(1)当存在多条路径时,路由器只选取最优(Best)的BGP路由来使用(没有激活负载均衡的情况下)。

(2)BGP只把自己使用的路由,也就是自己认为最优的路由传递给对等体。

(3)路由器从EBGP对等体获得的路由会传递给它所有的BGP对等体(包括EBGP和IBGP对等体)。

(4)路由器从IBGP对等体获得的路由不会传递给它的IBGP对等体(存在反射器RR的情况除外)。

(5)路由器从IBGP对等体获得的路由是否通告给它的EBGP对等体要视IGP和BGP同步的情况来决定。
  
(6)IBGP之间传递路由时路由下一跳不变

(7).EBGP之间传递路由时路由的下一跳会修改为自己的更新地址(建邻地址)

AS中黑洞问题的解决办法:

(1)将 BGP路由引入 IGP。

(2)在黑洞路由器上配置BGP并且与其他BGP路由建立邻居关系实现BGP对等体关系的全互联。

(3)通过MPLS技术解决黑洞问题实现通信。

五、配置BGP
在这里插入图片描述
要求:

R1与R3建立EBGP
R2与R4建立EBGP
R3与R4建立IBGP

首先配置IP地址,AS300运行OSPF

R1配置

[R1]int LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 24
[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]ip add 13.0.0.1 24

在这里插入图片描述
R2配置

[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 24
[R2]int g 0/0/0
[R2-GigabitEthernet0/0/0]ip add 24.0.0.1 24

在这里插入图片描述
R3配置

[R3]int g 0/0/0
[R3-GigabitEthernet0/0/0]ip add 13.0.0.2 24
[R3]int g 0/0/1
[R3-GigabitEthernet0/0/1]ip add 35.0.0.1 24
[R3]int LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 24

在这里插入图片描述

R4配置

[R4]int g 0/0/0
[R4-GigabitEthernet0/0/0]ip add 45.0.0.1 24
[R4]int g 0/0/1
[R4-GigabitEthernet0/0/1]ip add 24.0.0.2 24
[R4]int LoopBack 0
[R4-LoopBack0]ip add 4.4.4.4 24

在这里插入图片描述
R5配置

[R5]int g 0/0/0
[R5-GigabitEthernet0/0/0]ip add 35.0.0.2 24
[R5]int g 0/0/1
[R5-GigabitEthernet0/0/1]ip add 45.0.0.2 24
[R5]int LoopBack 0
[R5-LoopBack0]ip add 5.5.5.5 24

配置OSPF

[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 35.0.0.0 0.0.0.255
[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1]area 0
[R5-ospf-1-area-0.0.0.0]network 5.5.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.0]network 35.0.0.0 0.0.0.255
[R5-ospf-1-area-0.0.0.0]network 45.0.0.0 0.0.0.255
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network 45.0.0.0 0.0.0.255

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置BGP邻居关系

一般而言BGP的EBGP建邻会使用直连建立,IBGP建邻会使用回环建立。如果我们用回环建立EBGP邻居需要修改建邻跳数。
在这里插入图片描述

默认跳数为1,修改跳数,也可以不写数字直接回车默认跳数是255

[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 13.0.0.2 as-number 300
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 24.0.0.2 as-number 300

源地址默认是出接口地址、一旦不用出接口建立邻居关系时需要改源

[R3]bgp 300
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 13.0.0.1 as-number 100
[R3-bgp]peer 4.4.4.4 as-number 300
[R3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[R4]bgp 300
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 24.0.0.1 as-number 200
[R4-bgp]peer 3.3.3.3 as-number 300
[R4-bgp]peer 3.3.3.3 connect-interface LoopBack 0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
建立邻居关系不会产生路由信息,所以我们需要手动配置路由

配置路由有两种方式:

Network命令时逐条将IP路由表中已经存在的路由引入到BGP路由表总,使用掩码宣告,必须和路由表中路由掩码对应,否则宣告不进去

Import命令是根据运行的路由协议(RIP、OSPF、ISIS等)将路由引入到BGP路由表中,同时import命令还可以引入直连和静态路由

[R1]bgp 100
[R1-bgp]network 1.1.1.0 255.255.255.0
[R2]bgp 200
[R2-bgp]network 2.2.2.0 255.255.255.0
[R3]route-policy direct permit node 10
[R3-route-policy]if-match interface LoopBack 0
[R3-route-policy]if-match interface GigabitEthernet 0/0/0
[R3-route-policy]if-match interface GigabitEthernet 0/0/1
[R3]bgp 300
[R3-bgp]import-route direct route-policy direct
[R4]route-policy direct permit node 10
[R4-route-policy]if-match interface LoopBack 0
[R4-route-policy]if-match interface GigabitEthernet 0/0/0
[R4-route-policy]if-match interface GigabitEthernet 0/0/1
[R4]bgp 300
[R4-bgp]import-route direct route-policy direct

IBGP之间传递路由时路由下一跳不变

解决方法:

[R3]bgp 300
[R3-bgp]peer 4.4.4.4 next-hop-local
[R4]bgp 300
[R4-bgp]peer 3.3.3.3 next-hop-local

在这里插入图片描述
在这里插入图片描述
ping不通的原因是因为这里的R5路由器没有到2.2.2.2这个网段路由,所以在半路包就被丢弃了
在这里插入图片描述
解决方法:使用重发布

[R3]ospf 1
[R3-ospf-1]import-route bgp 
[R3-ospf-1]import-route direct 导入直连网段使直连网段也能互通
[R4]ospf 1
[R4-ospf-1]import-route bgp 
[R4-ospf-1]import-route direct 导入直连网段使直连网段也能互通

在这里插入图片描述

到这步除了R5的环回ping不通其他都已经通了,因为R1和R2没有R5的路由,我们可以下发一条缺省来做到他们互通

[R1]ip route-static 0.0.0.0 0 13.0.0.2

在这里插入图片描述

[R2]ip route-static 0.0.0.0 0 24.0.0.2

在这里插入图片描述
测试
在这里插入图片描述

新增要求:

在R1上创建三个环回,传递到R3上过滤掉一条路由、传递到R2上再次过滤掉一条路由

[R1]int LoopBack 1
[R1-LoopBack1]ip add 10.1.1.1 24
[R1]int LoopBack 2
[R1-LoopBack2]ip add 10.2.2.2 24
[R1]int LoopBack 3
[R1-LoopBack3]ip add 10.3.3.3 24
[R1]bgp 100
[R1-bgp]network 10.1.1.0 255.255.255.0
[R1-bgp]network 10.2.2.0 255.255.255.0
[R1-bgp]network 10.3.3.0 255.255.255.0

BGP的过滤:使用前缀列表来实现过滤,可以在R1的出方向过滤也可以在R3的入方向进行过滤

R1的通告表:
在这里插入图片描述
R3的接收表:
在这里插入图片描述

R1出方向进行过滤:

[R1]ip ip-prefix a deny 10.3.3.3 24 
[R1]ip ip-prefix a permit 0.0.0.0 0 less-equal 32
[R1-bgp]peer 13.0.0.2 ip-prefix a export 

R1的通告表:
在这里插入图片描述
R3的接收表:
在这里插入图片描述
R3入方向进行过滤:

[R3]ip ip-prefix a deny 10.3.3.3 24
[R3]ip ip-prefix a permit 0.0.0.0 0 less-equal 32
[R3-bgp]peer 13.0.0.1 ip-prefix a import 

在这里插入图片描述

使用route-policy进行过滤,实现到达R2只剩一条路由信息,可以在R4的出方向做,也可以在R2的入方向做

R4出方向进行过滤:

[R4]ip ip-prefix a permit 10.2.2.2 24
[R4]route-policy aa deny node 10
[R4-route-policy]if-match ip-prefix a
[R4]route-policy aa permit node 20
[R4]bgp 300
[R4-bgp]peer 24.0.0.1 route-policy aa export 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
R2入方向进行过滤:

[R2]ip ip-prefix a permit 10.2.2.2 24
[R2]route-policy aa deny node 10
[R2-route-policy]if-match ip-prefix a
[R2]route-policy aa permit node 20
[R2]bgp 200
[R2-bgp]peer 24.0.0.2 route-policy aa import 

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值