【HCIP】3BGP协议-1原理与配置

定义

BGP叫做边界(AS的边界)网关协议
AS:AS是指由同一个技术管理机构管理(企业,ISP运营商),使用统一选路策略的一些路由器的集合。
IGP:AS内部网关协议,实现AS内部的互联互通
EGP:AS互联互通的一种路由协议
AS号:取值范围 1-65535
64512-65535 是私有AS号,用大型企业内部进行AS的复制
1-64511 是公有AS号,需要为用户/企业提供互联网介入服务时分配的

AS号 老的长度2个字节,16bit
AS号 新的长度4个字节,32bit
IGP 直连邻居之间传递路由信息,逐跳(逐路由)的传递路由
BGP是一种工作在应用层的协议,只要BGP邻居能够建立,BGP可以跨越多跳路由器建立邻居关系
BGP的路由属性是人为设计的,BGP的路由属性是对BGP路由进一步的描述
作用:实现BGP路由的控制,防环,选路,管理

BGP邻居发现

1、BGP是一种基于TCP协议的应用层路由协议,所以邻居不会自动建立,需要手动配置。
2、BGP是一种单播通信,DIP要事先知道
3、BGP使用TCP的179端口进行工作
4、BGP建立邻居的地址要保证连通性(两个地址之间的路由要通)

图片.png

BGP发现邻居时需要先启动BGP的一端,先发起TCP连接,RTB先启动BGP协议,RTB 使用随机端口号向RTA的179端口发起TCP连接。

BGP邻居类型

EBGP:运行在不同AS之间的BGP路由器建立的邻居关系为EBGP邻居关系
IBGP:运行在同一个AS之间的BGP路由器建立的邻居关系为IBGP邻居关系


图片.png

EBGP的配置步骤

1、直连物理接口配置EBGP

实验拓扑

图片.png

ip配置不再赘述
配置BGP的AS

[R1]BGP 1
[R1-bgp]peer 10.1.12.2 as-number 2

源地址默认情况下为去往邻居地址路由的出接口IP

[R2]bgp 2
[R2-bgp]peer    10.1.12.1 as-number 1

我们在进行BGP配置的时候需要注意指定的邻居地址为本端向该邻居发送BGP报文的目的地址,源地址默认情况下为去往邻居地址路由的出接口IP

我们继续实验:

<R1>dis bgp peer
 BGP local router ID : 10.1.12.1##继承全局的router id
   Local AS number : 1 ##用来描述自己所在的AS号
 Total number of peers : 1  #用来描述邻居的数量    Peers in established state : 1#用来描述能正常建立邻居关系的数量

  Peer(邻居ip)    V (协议版本号)AS(邻居bgpAS号)  MsgRcvd (从邻居那边收到的BGP报文的数量) MsgSent(发送给邻居BGP报文的数量) OutQ(在发送给邻居的BGP出接口队列上有多少BGP,不为0,说明BGP相关的链路有拥塞)  Up/Down (状态)      State PrefRcv(表示从邻居那边收到BGP路由的数量)

  10.1.12.2       4           2       19       19     0 00:17:47(邻居建立起来的时间) Established(只有这种的状态才是best,其他的都有问题)  
   0(表示从邻居那边收到路由的数量为0)
<R1>dis     
<R1>display rou 
<R1>display router i    
<R1>display router id 
RouterID:10.1.12.1
继承全局的router id

2、用lookback接口配置EBGP

背景:

继续实验:
为了解决单条BGP线路不稳定,我们新建一条物理链路作为备选路线,并配置如下


图片.png

ip配置完成之后,我们将其配置入BGP进程中。

[R1]bgp 1
[R1-bgp]peer 10.1.21.2 as 2

R2操作相同
此时我们查询bgp 邻居


图片.png

这种i情况看似稳定,但是我们继续实验就会发现问题
我们在R1引入一条静态路由,

[R1]ip route-static 192.168.1.0 24 NULL 0
[R1]bgp 1
[R1-bgp]import-route st 
[R1-bgp]import-route static 
[R1-bgp]q
[R1]dis bgp rou 
[R1]dis bgp routing-table 
 BGP Local router ID is 10.1.12.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: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
 *>   192.168.1.0        0.0.0.0         0                     0      ?

我们从R2上观察bgp 的路由表


图片.png

从上图我们可以看到针对一条路由,它传递了两次,一次是上边的路由线路,一次是下边的路由线路。这样就会增加协议的负担,因为BGP的路由都是十万多条数据起步,增加资源负担,~占用。
所以这种方法是不建议的。

因此我们可以采用环回口配置EBGP邻居,因为不管两条链路中的任何一条都可以通过环回口通信。在保证可靠性的同时又可以节省资源占用。

做法

1.各自起环回口

[R1]int lo 0
[R1-LoopBack0]ip add 1.1.1.1 32

R2同

[R2]int l0
[R2-LoopBack0]ip add 2.2.2.2 32

我们测试一下连通性:


图片.png

一定是不通的
现在我们删掉R2设备上BGP相关的所有配置,(现网不要用,小心蹲号子)

[R1]undo bgp 1
Warning: All BGP configurations will be deleted. Continue? [Y/N]: y

R2同上

配置路由:

[R1]ip route-static 2.2.2.2 32 10.1.12.2
[R1]ip route-static 2.2.2.2 32 10.1.21.2

R2

[R2]ip route-static 1.1.1.1 32 10.1.12.1
[R2]ip route-static 1.1.1.1 32 10.1.21.1
图片.png

路由ping通之后我们就可以建立BGP邻居了
建立

[R1]bgp 1
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 2.2.2.2 as 
  [R1-bgp]peer 2.2.2.2 as-number 2
[R1-bgp]dis ip rout 
[R1-bgp]dis ip routing-table  2.2.2.2

[ R2]bgp 2
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 1.1.1.1 as 
[R2-bgp]peer 1.1.1.1 as-number 1
[R2-bgp]
图片.png

这里需要注意一下,我们查看路由表发现,他还是会用物理口作为源地址发起连接,至于是哪个物理口,我们需要看负载分担的情况。
此时我们的目的很明显,就是通过1.1.1.1作为源地址向2.2.2.2发送BGP报文,但是此时的R1的1.1.1.1是环回口静态路由,默认用的是出接口的地址作为源地址进行通信。
因此我们需要再进行以下操作
BGP进程下

[R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[R2-bgp]peer 1.1.1.1 connect-interface LoopBack 0

这条命令表示:向指定邻居发送BGP报文的地址为指定loopback接口的ip地址


图片.png

我们发现此时过了很久双方邻居关系还是没有建立起来。

埋雷

这是因为从环回口到路由,中间是进过一跳的,从1.1.1.1的环回口到对端路由器接口后TTL-1=0,还需要再往本路由的环回口作为下一跳继续发送,但是此时TTL=0,直接丢弃,导致邻居关系不建立。
ps: 在现实网络环境中,由于防止单一线路脆弱,路由器选路的方式有很多条,我们可以把TTL值设置的大一点,让路由经过很多条依然可以使得在到达对端BGP路由器接口时TTL>=1.


默认情况下,EBGP邻居之间发送BGP报文的TTL=1,即强制要求EBGP邻居直连。


修改BGP进程下环回口ip的TTL值

[R1]bgp 1
[R1-bgp]peer 2.2.2.2 eb 
[R1-bgp]peer 2.2.2.2 ebgp-max-hop 10

R2同
目的:当EBGP邻居之间存在多跳时,指定向EBGP邻居发送BGP报文的TTL值,仅在EBGP邻居之间使用,IBGP邻居默认TTL=255

效果图

图片.png

因为我们是在bgp引入静态路由,所以也会把2.2.2.2这条路由存入BGP路由表,现在我们直接发布路由,

[R1-bgp]undo import-route static 
[R1-bgp]network 192.168.1.0 24

此时我们再次从R2查看BGP的路由表


图片.png
图片.png

如果我们需要在同一个AS号内用loopback接口配置IBGP,我们就只需要配置两条命令

bgp 1
peer 2.2.2.2 as 1
peer 2.2.2.2  connect-interface LoopBack 0

这个时候就不需要进行TTL值的配置,因为在IBGP中邻居默认的TTL值255
bgp 1
peer 1.1.1.1 as 1
peer 1.1.1.1 connect-interface LoopBack 0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容