BGP学习笔记与BGP实验

BGP---边界网关协议

IGP---内部网关协议---OSPF RIP ISIS

EGP---外部网关协议---EGP BGP

根据AS划分内部外部:AS---自治系统:由单一的组织或者机构独立维护的网络设备以及网络资源的集合。

划分原因:网络范围太大

自治

为了区分不同的AS,网络世界IANA提出了AS号---0-65535 0和65535一般做保留AS号1-65534 (真正允许运营商使用1-64511---公有AS号,64512-65534---私有AS号)拓展AS号:将原本16位AS号拓展到32位

BGPV4

BGPV4+ ----> mp-BGP

BGP的一些特性

高可控性---BGP设计了很多路径属性,可以通过路由策略关联这些属性达到路由控制的效果

高可靠性---使用TCP传输数据

AS-BY-AS---BGP把一个AS看作一个整体

对等体PEER

EBGP对等体---一般建议采用直连建立对等体

IBGP对等体----一般采用非直连建立对等体

BGP为了实现这两个规则:BGP规定EBGP对等体之间发送的数据包中携带的TTL值为1,而IBGP对等体之间传递的数据包TTL值为255

IGP: interior gateway protocol—链路状态

BGP: border gateway protocol—距离矢量

相同点:

都是实现路由信息的交换、学习

都能实现路由的功能

不同点:

BGP一般用于大型网络,可容纳的路由信息更多;而IGP协议,对于路由条目的存储量是有限的,比如OSPF协议,最多也只能容纳1W条路由;

IGP是内部网关协议,在AS内部实现路由信息的交换;BGP是边界网关协议,在AS之间实现路由信息的交换;

BGP的实现,需要IGP作为其底层的通信基础;

BGP是建立的可靠的TCP基础上的,端口号为179;

IGP的设计重点是对路由的学习与交换,发现路由等,而BGP的设计,主要是为了控制路由的传播,即进行路径选择,BGP有丰富的选路策略,与其说BGP是一个路由协议,倒不如说BGP是一个路径选择协议;

BGP的数据包


 BGP的公共头部


OPEN----用来建立BGP对等体关系的数据报文


 

三个条件

AS号---自身的AS号,比对逻辑对等体发过来的OPEN报文携带的AS号,必须和指定建邻的AS号一致,否则会导致建邻失败。

RID----建邻双方的RID不能一致,如果相同会导致建立对等体失败。

认证

保活时间:类似OSPF的死亡时间默认180s,如果到达体双方到达体双方的保活时间不一致,则按照时间更小的执行。

KEEPALIVE:1.用于周期保活BGP对等体关系,默认是1/3保活时间60S。2.用来做OPEN报文的临时确认包


 UPDATE----传递BGP路由信息的数据包

Notification---告警报文,在BGP工作过程中如果出现问题,会发送notification报文告知对等体问题原因。

BGP的状态机

建立对等体之间TCP会话,指定建立对等体的对象

BGP在建立对等体过程中会建立两次TCP会话,会保留RID大的设备发起的TCP会话

6种状态机

Idle状态下,启动BGP协议后必须指定建立对等体的目标之后,进入下一个状态。必须路由可达(依靠IGP协议或者静态,直连)

Connet状态下BGP对等体之间开始建立TCP会话连接。如果TCP会话建立成功则进入OpenSent状态,如果TCP会话建立失败则进入Active状态。

如果TCP会话(三次握手)建立成功,则进入OpenSent状态下,开始发送OPEN报文去建立BGP对等体关系

如果认可对等体发过来的OPEN报文中的参数,首先会回复一个Keepalive报文用来确认open报文的参数我已经认可。并且进入OpenConfirm状态

OpenConfirm状态---如果收到对等体发送的Keepalive报文则进入最终状态Established。

BGP的工作过程

1,基于IGP(静态、直连、RIP、OSPF...)实现路由可达,原因:BGP需要建立TCP会话(单播)

2,指定邻居关系,邻居之间单播传输,通过三次握手,建立TCP会话通道。之后所有的BGP通信都将基于TCP会话通道来传输。并且依靠TCP提供传输的可靠性

3,使用OPEN报文和Keeplive报文进行邻居关系的建立。OPEN报文用来携带建邻使用的参数,keeplive报文用于OPEN报文参数的确认。最终完成对等体关系的建立。生成邻居表,存储BGP对等体关系信息。

4,建立邻居关系后,使用update报文来共享路由条目信息。信息中将携带目标网络号,掩码及路径属性;之后,将发送以及收集到的路由信息记录在一张表中 --- BGP表。

5,之后,会将BGP表中最优的路由信息(通过路径属性选择的结果)加载到路由表中。

6,收敛完成后,将使用keeplive报文进行对等体之间周期保活,默认的保活时间为180S(hold time),发送周期为60S。

7,如果这个过程中出现任何问题,都将使用notification报文进行告警。

8,如果出现结构突变(网段消失或者新增网段),则将使用update报文进行触发更新,并通告给其他的对等体。

流程图

BGP的路由黑洞

原因:控制层面的可达

数据层面实际不可达

IGP内部存在没有运行BGP的设备,当访问BGP网段的流量来到这些设备之后,由于控制层面可达,数据层面不可达(这些设备没有运行BGP,没有BGP网段的路由信息),那么将丢弃这些流量。

解决办法:

1.所有设备均运行BGP(成本高)

2.重发布

3.MPLS---最早专门用来解决BGP路由黑洞

MPLS是一种标签转发技术,它采用无连接的控制平面和面向连接的数据平面,无连接的控制平面实现路由信息的传递和标签的分发,面向连接的数据平面实现报文在建立的标签转发路径上传送。MPLS域内,交换机不需要查看每个报文的目的IP地址,只需要根据封装在IP头外面的标签进行转发即可,这样可以大大提高效率。 MPLS传送门:MPLS协议基本知识总结(比较详细,好理解)-CSDN博客

同步机制---当设备学习到一条BGP路由,如果本地IGP路由表不可达,将视为该BGP路由无效。(默认关闭)

BGP的防环----水平分割

EBGP水平分割

BGP为了解决EBGP环路问题,设计了一个AS-path属性,设备在发出AS时会携带本AS的AS号,当路由器携带该AS号,那么对于该AS的设备不会接收该路由。后转发的AS号在前面。

同时AS-path属性也是BGP的一个选路依据,当其他属性一致时,会选择AS-path属性更短的路径。

IBGP水平分割

当运行BGP的设备从IBGP对等体处学到一条IBGP路由,那么将不在转发给其他IBGP对等体(一个AS内部传一跳)。

解决方案---在IBGP对等体之间构建全连的IBGP对等体关系,1,增加拓扑的复杂性导致网络可拓展性变差。2,增大了资源占用

BGP的基础配置:

[R1]bgp 100 -----启动BGP协议,并指定自身AS号

[r1-bgp]router-id 1.1.1.1---手工配置BGPRID

[R1-bgp]peer 12.0.0.2 as-number 200 -----直连建邻,指定建邻的IP地址和对应的as号

[R1]display bgp peer --查看BGP邻居关系(BGP的邻居表)

IBGP之间使用环回建邻

[r2-bgp]peer 3.3.3.3 as-number 200

bgp 200

router-id 2.2.2.2

peer 3.3.3.3 as-number 200

[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 ---注意环回建邻必须改变更新源地址,地址不一致将导致建邻失败

EBGP对等体之间使用环回建邻方法

[r5]ip route-static 4.4.4.0 24 45.0.0.1-----必须实现路由可达(建议使用静态)

bgp 300

peer 4.4.4.4 as-number 200

peer 4.4.4.4 connect-interface LoopBack0---使用环回建邻注意:必须修改更新源

[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2----修改EBGP数据包TTL值

[r5-bgp]peer 4.4.4.4 ebgp-max-hop ----默认直接回车将修改TTL值为255

BGP的路由发布

[R1-bgp]network 1.1.1.0 24------宣告含义仅发布路由信息,并且注意:只能发布路由表中存在的路由信息

[R1]display bgp routing-table ----查看BGP表---记录发布的和接收到的所有BGP路由信息

Network

Total Number of Routes: 3 Network NextHop MED LocPrf PrefVal Path/Ogn

*> 1.1.1.0/24 0.0.0.0 0 0 i

Network----接收到的网段信息

NextHop----下一跳,如果是本地始发的BGP路由信息该字段为0.0.0.0

*> ---状态码

*valid----有效,首先当BGP设备接收到一条BGP路由信息,首先将验算下一跳是否可达,如果下一跳可达则代表该路由可用,如果下一跳不可达则认为该路由无效。注意:只有可用的路由信息才会参与BGP路由的选举,并加载到路由表中

> best---最优的路由信息最终根据路径属性选择的结果,只有最优的路由信息才会最终加载到路由表中,并且只有最优的路由才会被BGP传递

I----internal内部通过IBGP对等体学到的

[r2-bgp]peer 3.3.3.3 next-hop-local ------当IBGP对等体学到一条EBGP路由,由于AS-BY-AS属性导致下一跳不可达,协议在传递这条IBGP路由的IBGP设备上修改下一跳为本地

BGP不能发布建立对等体的网段

2.宣告BGP网段的方法---重发布

[r2-bgp]import-route ospf 1

重发布的路由信息本地下一跳也是0.0.0.0相当于本地始发

Ogn------起源码:象征该路由通过何种方式学习到的

I---表示该路由是通过IBGP对等体学到的路由信息,包括Network宣告的路由

E--表示该路由是由EGP协议处学习到的路由信息,保留仅为了兼容性

?--除了前两种都是?

BGP的路由聚合-----自动聚合 手工聚合

1.创建前缀列表抓取想要发布的路由网段

[R1]ip ip-prefix aaa permit 172.16.0.0 16 greater-equal 24 less-equal 24

2.创建路由策略

[R1]route-policy aaa permit node 10 ----大的方向一定选择运行,否则视为拒绝发布这些匹配到的网段

route-policy aaa permit node 10

if-match ip-prefix aaa

-----匹配前缀列表抓取的流量

以下为BGP实验内容:

一、实验目的

通过bgp实现全网可达

二、实验思路

先实现各个自治区域的路由可达,在AS200配置ospf实现联通,然后配置BGP,由于BGP的路由黑洞问题,本实验我们采用所有设备均运行BGP来实现。并通过水平分割来防环。

三、实验步骤

1,AS 200配置ospf
R2配置
ospf 1 
 area 0.0.0.0 
  network 2.2.2.2 0.0.0.0 
  network 23.0.0.0 0.0.0.255 
R3配置
ospf 1 
 area 0.0.0.0 
  network 3.3.3.3 0.0.0.0 
  network 23.0.0.0 0.0.0.255 
  network 34.0.0.0 0.0.0.255 
R4配置
ospf 1 
 area 0.0.0.0 
  network 4.4.4.4 0.0.0.0 
  network 34.0.0.0 0.0.0.255 
3,建立BGP对等体关系
R1
[r1]bgp 100	
[r1-bgp]router-id 1.1.1.1
[r1-bgp]peer 12.0.0.2 as-number 2
R2
[r2]bgp 200
[r2-bgp]router-id 2.2.2.2
[r2-bgp]peer 12.0.0.1 as-number 1
[r2-bgp]peer 3.3.3.3 as-number 2
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[r2-bgp]peer 4.4.4.4 as-number 2
[r2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
R3
[r3]bgp 200
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 2.2.2.2 as-number 2
[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[r3-bgp]peer 4.4.4.4 as-number 2
[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
R4
[r4]bgp 200
[r4-bgp]router-id 4.4.4.4
[r4-bgp]peer 2.2.2.2 as-number 2
[r4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[r4-bgp]peer 3.3.3.3 as-number 2
[r4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[r4-bgp]peer 45.0.0.2 as-number 3
R5
[r5]bgp 300
[r5-bgp]router-id 5.5.5.5
[r5-bgp]peer 4.4.4.4 as-number 200 
[r5-bgp] peer 4.4.4.4 ebgp-max-hop 255 
[r5-bgp] peer 4.4.4.4 connect-interface LoopBack0
4,检测对等体
[R1]display bgp peer
 
 BGP local router ID : 1.1.1.1
 Local AS number : 100
 Total number of peers : 1		  Peers in established state : 1
 
  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre
fRcv
 
  12.0.0.2        4         200       40       36     0 00:27:53 Established    
   9
--------------------------------------------------------------------------------------------
<r2>display bgp peer
 
 BGP local router ID : 2.2.2.2
 Local AS number : 200
 Total number of peers : 3		  Peers in established state : 3
 
  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre
fRcv
 
  3.3.3.3         4         200       29       37     0 00:27:36 Established    
   0
  4.4.4.4         4         200       34       37     0 00:27:33 Established    
   5
  12.0.0.1        4         100       36       41     0 00:28:11 Established    
   6
--------------------------------------------------------------------------------------------
<r3>display bgp peer
 
 BGP local router ID : 3.3.3.3
 Local AS number : 200
 Total number of peers : 2		  Peers in established state : 2
 
  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre
fRcv
 
  2.2.2.2         4         200       37       30     0 00:28:15 Established    
  10
  4.4.4.4         4         200       35       31     0 00:28:12 Established    
   5
 
--------------------------------------------------------------------------------------------
<r4>display bgp peer
 
 BGP local router ID : 4.4.4.4
 Local AS number : 200
 Total number of peers : 3		  Peers in established state : 3
 
  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre
fRcv
 
  2.2.2.2         4         200       37       35     0 00:28:31 Established    
  10
  3.3.3.3         4         200       30       35     0 00:28:31 Established    
   0
  5.5.5.5         4         300       33       41     0 00:29:03 Established    
   2
--------------------------------------------------------------------------------------------
[r5]display bgp peer
 
 BGP local router ID : 45.0.0.2
 Local AS number : 300
 Total number of peers : 1		  Peers in established state : 1
 
  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre
fRcv
 
  4.4.4.4         4         200       38       31     0 00:26:49 Established    
  12
 5,发布路由
[r1-bgp]network 1.1.1.0 24
[r2-bgp]network 1.1.1.0 24
[r2-bgp]peer 3.3.3.3 next-hop-local
[r2-bgp]peer 4.4.4.4 next-hop-local

[r5-bgp]network 5.5.5.0 24
[r5-bgp]network 100.0.0.0 24
[r4-bgp]network 5.5.5.0 24
[r4-bgp]network 100.0.0.0 24
[r4-bgp]peer 2.2.2.2 next-hop-local
[r4-bgp]peer 3.3.3.3 next-hop-local

[r2-bgp]import-route ospf 1 
[R1]ip ip-prefix aaa permit 172.16.0.0 16 greater-equal 24 less-equal 24
[R1]route-policy aaa permit node 10
[R1-route-policy]if-match ip-prefix aaa
[R1-bgp]import-route direct route-policy aaa

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值