BGP---边界网关协议一(基础知识)

概述

BGP—EGP协议–管理AS之间路由传递
BGP—距离矢量型—分布式计算
BGP—用TCP来传递路由信息(端口179),保证可靠性丧失邻居自动发现,只能单播建邻,并且可以非直连建邻
BGP—设计用来处理AS之间路由,所以该协议重点处理的是AS之间的路由,AS之内的路由不作为重点。
BGP—使用AS号作为识别不同AS的标识,该AS号需要具有唯一性 1-65535,可以使用扩展32位 65535-4294967295(解决不够用的情况)
BGP的最小使用单位是一个路由器所以一个路由器只能使用一个BGP的进程
由于BGP管理的信息非常庞大,不能够使用周期更新,只能出发更新。并且BGP认为一条路由时间越久越稳定,在这种情况下BGP必然不会使用复杂的算法来处理BGP收到的路由信息,又由于每个AS情况不一致,管理范围也有限,它必然需要丰富的管理参数(不能只依赖metric)。—综上所述,BGP必然需要多种参数来决定路由的选择,并且不能依赖某种特定的全局算法,只能单独去计算某一条路由,不能全盘考虑,并且需要依赖所属管理员手动设置。
BGP—路径优先协议(别名),通过给每一个路由设置大量的属性参数来进行灵活的管理或者选路。并且这些属性参数需要大量的都需要人为来操控。

邻居建立

报文

1.open
2.keeplive
3.update–用于路由更新
4.notiflcation–BGP出错报文
5.reflush–刷新BGP路由

状态机

bgp事件有以下几种
1.BGP开始;2.BGP结束;3.BGP传输连接打开;4BGP传输连接终止;5.BGP传输连接打开失败;6.BGP连接传致命差错;7.重试连接计时器超时;8.持续时间终止;9.keepalive计时器终止;10.收到open消息;11.收到keepalive消息;12.收到update消息;13.收到notification消息
1.down
2.idle–配置了neighbor或重置了邻居,BGP初始化所有资源打开connectRetry计时器器,初始化邻居的TCP连接,监听来自邻居初始化消息并将它的的状态转到conner状态。
为了防止差错的持续出现造成BGP邻居的摆动,connectRetry计时器会呈现级数级的增加,第一次60s,下一次的为前一次的2=倍120s,再下一次240s

3.connec–BGP等到TCP连接完成后再决定后续的动作
1.如果TCP连接成功,BGP将connectRetry计时器清零,完成初始化并发送一个open消息并将状态置为open
2.如果失败,BGP继续监听邻居发出的连接,重置connectRetry计时器并把状态转换为idle状态
3.如果connectRetry时间超时,计时器重新开始,再试图与;injured建立TCP连接,BGP保持connect状态,出现其他时间转入idle状态

4.active
BGP试图与邻居建立一个TCP连接
1.如果TCP连接建立成功,BGP将connectRetry计时器清0,完成初始化,给邻居发送open报文并将状态置为open,hold时间置为4mins
2.如果在active状态,connectRetry计时器超时回到connect状态并重置connectRetry计时器
3.如果试图与一个位置ip建立TCP会话,同时connectRetry计时器重置,连接拒绝并保持active状态
4.任何一个时间都会导致重回idle状态

5.open and state
在此状态,已经发送了open消息,BGP等待邻居发送的open消息
1.收到open消息,如果发现差错,将给邻居发送一个notification消息并置为idle
2.如果收到open消息没错,将发送keeplive给邻居,并建立IBGP或者EBGP状态置为open confire state
3.如果收到TCP断开消息则断开connectRetry计时器,状态置为active

6.open confire
在此状态下BGP会等待一个keeplive消息或者notification消息
1.如果收到一个keepalive消息状态置为establish
2.如果收到notification消息置为idle断开tcp连接
3.如果hold计时器超时,检测到一个差错或者stop事件,bgp将给邻居发送一个notification并断开连接,状态置为idle

7.Establish
此状态,BGP对等体间的连接已经完全建立,可以建立update,keeplive和notification消息,收到notification状态置为idle中断连接

8.path-attribute
一共10中属性(Cisco11种)分为4类well-known mandatory,well-know discretionary,optional transitive,optional nontransitive
11条属性:weight、origin、as_path、next_hop、local_pref、atomic_aggregate、aggregator、community、MED、originator_id、cluster_list

1.公认必尊—所有BGP路由器必须遵守的原则优origh,as-path,next-hop
2.公认可尊—所有路由器都能识别但不一定要遵守,local_pref,atomic_aggregate
3.可选传递—不是所有BGP路由器都能识别,但是所有BGP都能够传递,aggregator和community
4.可选非传递—不是所有BGP路由器都能识别,不能识别的BGP路由器就丢弃他,MED,originator_id和cluster_id,weight

weight–cisco私有属性,对于离开AS的路由在路由器选择那一条最优,本台路由器产生32768,学习的为0,不能传递,适用于一条路由去往别的AS有多个出口
origin–起源,0表示宣告(i),1表示EGP学到(E),3表示其他手段得到(重发布?),越低越好
as_path–一条路由在传输过程中经历了哪些AS(不算自己),可以用来防环,越短越好
nei x.x.x.x allowas-in 允许和具有自己相同的AS的路由进入本AS
nei x.x.x.x as-override 把具有和其他AS相同AS号的路由放入这个AS
next_hop–
到达路由下一跳路由器ip地址
通告路由器和接受路由器不在一个AS内,next-hop为通告路由器更新地址
通告路由器和接受路由器在一个AS内,next-hop为通告路由器更新地址
通告路由器和接受路由器在一个AS内且为邻居关系更新地址为不同AS,则为外部更新地址
local_pref–不能传输到其他AS,值越高越优,用于本AS选择离开AS的出口路由器默认为100
atomic_aggregate–用来警告下游路由器路由聚合后产生的路由路径丢失。
BGP支持向BGP邻居传递重叠路由可以选择多种方式
1.明细和粗略的都公布:aggregagte-address 10.0.0.0 255.0.0.0
2.只公布明细 :aggregagte-address 10.0.0.0 255.0.0.0 supperss-map
3.只公布没有重叠的AS-path:aggregagte-address 10.0.0.0 255.0.0.0 aummary-only as-set
4.聚合后公布聚合后的路由:aggregagte-address 10.0.0.0 255.0.0.0 summary-only
5.明细和路由都不通告
aggregator–用来通告汇总路由的汇聚路由器 BGP_ID(cisco)
community standard(做路由标识) extended(MPLS VPN),可读性好
1.internet默认属性,可以给任何BGP发送
2.no_export只能在一个AS内传递,可以在联盟内传递。
3.no_advertise 不再IBGP邻居间传递
4.local-as 不向任何EBGP邻居发送包括联盟的EBGP邻居
ip community-list //匹配列表
标准和扩展cimmunity
标准是普通路由可以设置的团体公有和私有
扩展是mpls种的vtf路由传递定义的
MED–用于选择流入AS的入口路由器,可以在两个AS之传递,越低越好默认0
originator_id—路由反射器,是路由发起者产生的一个32比特的值,该值是本地路由的RID,如果路由发起者从属性上看到自己的RID,说明有环路就忽略
cluster_list—路由反射器使用,是路由进=过反射器簇id的一个字符,如果反射器在属性里看到自己的簇id就说明有环路,忽略

BGP建邻失败的场景

参数配置:

1.neighbor 10.1.1.1 //代表向该地址发送TCP端口位179的数据,并且自己也需要在发出地址上打开TCP 179的监听。该配置可以指定源地址也可以不指定源地址,不指定就是出接口地址。(意味着得打开该出接口关于tcp 179 的监听).—本端指的地址需要是对方的源地址,对方指的地址需要是本段的源地址
2.neighbor 10.1.1.1 remote-as xx //对端建立邻居的as号必须和本端remote-as号一致。
3.建邻双方保证tcp 179能够发送,不丢失,不被拦截。

邻居之间路由传递规则

BGP邻居关系

IBGP邻居关系 //相同AS路由器建立的邻居关系
EBGP邻居关系 //不同AS路由器建立的邻居关系

1.P不管什么邻居关系只传递最优路由(不优不传,优的标志是>,也就是不带>的路由不会被BGP传递)
2.GP邻居关系路由传递:只要不违背环路原则EBGP邻居传递无限制(前提必须优),EBGP之间传递路由会更新next-hop位自己的更新源地址
3.IBGP邻居关系路由传递:IBGP自己产生的路由(自己宣告的、自己重发布进来的)和EBGP邻居传递的都可以传递给它的IBGP邻居,但不可以在IBGP之间中转(也就是不能传递到邻居的邻居),IBGP之间传递路由不会更新next-hop(只有next-hop为0的情况才会更新,或者建立邻居的时候输入beighbor x.x.x.x next-hop-self 更新为自己的更新源地址)。
—这个设定的好处是:IBGP之间拥有了水平分割,从而避免了IBGP环路的产生,IBGP也不必设置防环算法。坏处是:IBGP之间路由传递必须直接建立邻居,导致IBGP邻居关系是一种全互联状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值