BGP

BGP
概述

bgp EGP协议管理as之间的路由传递
bgp 距离矢量型 分布式计算
bgp 用tcp来传递路由信息(端口179),保证可靠性丧失邻居自动发现 ,只能单播建邻
并且可以非直连建邻

bgp设计用来处理AS之间的路由协议 所以该协议重点处理AS之间的的路由,
AS之内的路由不作为重点。
BGP使用AS号作为识别不同AS路由的标识,该AS号需要具有唯一
1-65535,可以使用扩展32位(2^32) 65535-4294967295(解决AS不够用情况)
BGP的最新使用单位是一个路由器 所以每个路由器只能使用一个bgp进程

由于bgp管理的路由信息非常庞大,不能使用周期更新,只能触发更新,并且bgp会认为
 一条理由时间越久越稳定,在这种情况下bgp必然会使用复杂的算法来处理bgp收到的
 的路由信息,又由于每个AS情况不一致,管理范围也有限,它必然需要丰富的管理参数

(不能只依赖metric)。综上所述 bgp必然需要多种参数共同来决定路由的选择,并且不能
依赖某种特定的全局算法,只能单独去计算某一条路由不能全盘考虑,并且需要依赖所属AS管
理员手动设置。bgp路径优先协议,通过给每一个路由设置大量的属性参数来进行灵活的管理或者
选路,并且这些属性参数大量的都需要认为来操控。

邻居建立
在这里插入图片描述

idle state(三次握手)/ connect state(三次握手成功 bgp发自己包 open包)
/active state(三次握手失败 BGP试图与邻居建立一个TCP的连接)
/open send state(成功 open包 识别AS号)
/open confire state(保活时间设置一样keeplive)/ Establish state/

BGP建立邻居失败的场景:
参数与配置:
1. neighbor 10.1.1.1// 代表向该地址发送tcp端口为179的数据,并且自己也需要在
发出地址上打开tcp179 的监听,该配置可以指定源地址也可以不指定源地址,不指定
就是出接口地址,(意味着得打开该处接口关于tcp179 多点监听)

   本端指的地址需要是对方的源地址。对方指的地址需要是本端的源地址

 2.neighbor 10.1.1.1 remote-as xx
   对端建立邻居的AS号必须和本端remote-as xx 号一致。
  
 3.建立双方保证tcp 179能够发送,不丢失,不被拦截。

邻居之间路由传递规则

  bgp两种邻居关系
 IBGPL邻居关系//相同as路由器建立的邻居关系
 EBGP邻居关系//不同as路由器建立的邻居关系

1.   EBGP不管什么邻居关系 只传递最优路由(不油不传,优的标志是>
      也是不带>的路由不会被bgp传递)

2.     EBGP 邻居关系路由传递:只有不违背环路原则或人工策略EGBP邻居
       传递无限制的(前提必须优),EBGP之间传传递路由会更新next-hop为自己的更新源地址
         
3.    EBGP邻居关系路由传递:  IBGP邻居之间不会中转路由,IGBP自己可
      以产生的路由自己宣告的,自己重发布进来的)和EBGP邻居的都可以
      传递给他们的IGBP邻居, 但不可以在IBGP中转(也就是不能传递到邻居的邻居)
      IBGP之间传递路由不会更新next-hop(只有next-hop为0.0.0.0的情况下才会更新,
      或者建立邻居的时候输入neighbor x.x.x.x nxet-hop-selfgengxin自己为自己的更新地址)
         
这个设定的好处:IBGP之间拥有了水平分割从而避免了IBGP的环路产生,IBGP也不
                           必设置防环算法
这个设定的坏处: IBGP之间路由必须直接建立邻居,导致IBGP邻居之间是一种全互联状态

基本配置:
outer bgp 1
bgp router-id 10.2.2.2
neighbor 10.3.3.3 remote-as 1//没有自动建邻的功能,需要手动配置
neighbor 10.3.3.3 update-source lo0//不指定默认出接口为源,修改为回环为源
network 10.2.2.2 mask 255.255.255.255//宣告为掩码宣告,精确宣告
BGP的宣告是依赖路由表的。
宣告满足:
1)被宣告路由必须在路由表中。
2)被宣告路由必须和路由表中的前缀掩码一致。
IBGP建立邻居默认使用回环
EBGP建立邻居没有特殊情况一般使用直连建立,如果使用非直连建立需要修改跳数,默认情况下跳数为1(不修改跳数用非直连建立邻居会建不起来)
neighbor 10.3.3.3 ebgp-multihop //修改为255跳
BGP路由传递的是BGP路由表中的路由信息
BGP的路由表在收到路由以后需要检验该路由是否可达,如果不可达该路由一定不优
设置变量,简化指令:
neighbor kkk peer-group
neighbor kkk remote-as 1
neughbor kkk update-source lo0
neighbor 10.2.2.2 peer-group kkk
neighbor 10.3.3.3 peer-group kkk

属性:
#四大类属性:
1.公认必尊
所有BGP路由器必须识别遵守的原则有or
2.公认可尊
所有路由器都能识别但不一定遵守
3.可选传递
不是所有BGP路由器都能识别,但是所有BGP都能传递
4.可选非传递
不是所有路由器都能被识别,不能识别的BGP路由器就丢弃它
属性(cisco11种其他10种):
1·weihgt(cisco私有)——选路,默认这个属性不传递(传播范围最小),适用于一台路由器在多条路径下的选路,weight大的一定选,无视邻居属性。IBGP32768、EBGP0
修改方式:

router bgp 2
neighbor 10.1.34.3 weight 1 //修改该邻居所有传递过来的weight为1

BGP不要用ACL,适用前缀列表
router bgp 2
neighbor 10.1.34.3 route-map a in//只针对某一个路由修改weight,主义只能用in方向
ip prefix-list a permit 10.1.1.1/32
route-map a permit 10
match ip address prefix-list a
set weight 1
weight值的修改只能影响本路由器,不能影响到其他路由器,意味着如果as只有一个出口路由器weight选路是适用的,但是有多个出口路由器的情况系weight就不太适用了。
2·Origin
起源属性,标识该路由的来源方式,0标识宣告(i),1表示EGP学到(E),3表示其他手段得到(重发布?),用i>E>?选路。
该属性可以选路,但是一般不用于选路。
修改方式:
router bgp 2
neighbor 10.1.24.2 route-map org in //用in和out方向都行,适用于任何邻居之间
route-map org permit 10
match ip address prefix-list a
set orgin ?
igp local IGP
incomplete unknown heritage
set origin incomplete
3·AS path
一条路由在传输过程中经历那些AS(不算自己)顺序是最近经过的as排前面,一个as的路由器拒绝接受带自己as号的路由,可以用来防环,也可以用于选路,as path短的优先
修改方式:
route-map org permit 10
match ip addess prefix-list a
set origin incomplete
set as-path prepend 2 3 4
route-map org permit 20
router bgp 2
neighbor 10.1.24.2 route-map org in
我们一般在选路当中添加as会重复添加已经历的as,一般不会添加
没有经历的as。适用于任何邻居之间,in和out方向都行。
Nei x.x.x.x allowas-in允许和具有自己相同的as的路由进入本as//打破防环,本路由器使用
Nei x.x.x.x as-override 把具有和其他as相同as号的路由放入这个as//邻居路由器使用
4·Next_hop
到达路由的下一跳路由器IP地址,IBGP之间传路由next-hop不变,为0的时候会修改为更新源地址,EBGP之间传路由next-hop修改为更新源地址
选路:下一跳为0的优于其他路由
ip prefix-list a permit 10.1.4.1/24
route-map K permit 10
match ip address prefix-list a
set ip-hop 1.1.1.1
route-map K permit20
router bgp 2
neighbor 10.1.4.2 route-map K in
方向无所谓,邻居无所谓都可以
5·Local_pref
与weight一样也是选路属性。
不能在EBGP邻居之间传递,可以在IBGP邻居之间传递,值越高越优(默认100),常用于当本as有多个出口路由器时,选择拥有local值大的路由器作为出口路由器。也可以是到达一个网段有多个出口路径时,选择local值大的路径。
修改:
①修改路由器的默认local_pref值,该路由器通过IBGP邻居的路由都会携带修改后的local值。
router bgp 1
bgp default local-preference 120
②通过route-map修改某路由的local_pref值,EBGP只能在in方向IBGP可以是in也可以out方向。
route-map k permit 10
match ip address prefix-list k
set local-preference 120
route-map k permit 20
router bgp 1
neighbor 10.1.34.4 route-map k in
6·MED
选路属性,本质就是metric默认为0,一般只能用于自同一个as发出路由的不同路径med值比较,两个不同as比较med没有意义。
只能在两个as之间传递,不能传给第三个as。
一般用于影响对方as,如果在本as使用和local_pref等同(注意不能在路由器上修改默认值)
修改:
route-map k permit 10
match ip address prefix-list k
set metric 10
route-map k permit 20
router bgp 1
neighbor 10.1.34.4 route-map k in
R2(config-router)#bgp always-compare-med // 开启比较不同as的med
7·atomic aggregate
汇总后某些属性不作数
用来警告下游路由器路由聚合后产生的路由路径无丢失
BGP支持向BGP邻居传递重叠路由可以选择多种方式
as-set命令会使得该属性消失
1.明细和粗略的都公布
aggregate-address 10.0.0.0 255.0.0.0
2.只公布明细
aggregate-address 10.0.0.0 255.0.0.0 suppress-map
3只公布没有重叠的as-path
aggregate-address 10.0.0.0 255.0.0.0 summary-only as-set
4.聚合后公布聚合后的路由
aggregate-address 10.0.0.0 255.0.0.0 summary-only
8·aggregator
用来通告汇总路由的汇聚路由器NGP_ID(cisco),方便寻找汇总者
9·community团体属性,为了更好地标识BGP的路由,标识格式为x:y
团体值的设置不能在EBGP之间(IBGP之间可以),它的传递可以在IBGP之间也可以在EBGP之间。
标记设置:
route-map p permit 10
match ip address prefix-list p
set community 111
route-map p permit 20
router bgp 1
neighbor KKKroute-map p out
设置必须在IBGP之间可以用in也可以用out
传递设置
neighbor 10.1.24.4 send-community both/standard/extended //团体属性需要传递必须开启该指令
匹配设置:
ip bg-community new-format //开启扩展格式匹配
R1(config)#ip community-list ?//专用的community匹配工具
<1-99> Community list number(standard)
<100-500> Community list number(expanded)
expanded Add an expanded community-list entry
standard Add a standard community-list entry
R1(config)#ip community-list expanded k permit 111
用community-list匹配完成湖route-map调用即可
查看:
show ip bgp 10.1.1.1 //查看路由详情可以查看团体值
show ip bgp community //该指令可以查看具有所有团体值的路由
show ip bgp community 111 //查看某团体值的所有路由
standard(做路由标识) extended(MPLS VPN),可读性好
子属性
1.internet默认属性,可以给任何BGP发送,不对团体的携带做任何限制。
2.no_export只能在一个AS内传递,可以在联盟内传递,该属性就是限制携带团体’ 的路由传递给EBGP邻居,联盟的EBGP除外。
3.no_advertise不在IBGP、EBGP邻居间传递,禁止传递给任何邻居。
4.local_as不向任何EBGP邻居发送包括联盟的EBGP邻居
10·originator_id
路由器反射使用,是路由发起者产生的一个32比特的值。该值是本地路由发起者的RID,如果路由发起者从属性上看到自己的RID,说明有环路忽略。
11·cluster_list
路由反射器使用,是路由进入反射器簇ID的序号,如果反射器在属性里看到自己的簇ID就说明 有环路,忽略

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值