BGP简单总结

选路:1.目标路由的精确度----汇总/明细

2.是否为相同协议
(1)相同,则比较cost值,域内>域间>域外
(2)不同,比较AD值

BGP:

高级距离矢量型协议,用于解决AS间路由信息的传输,采用TCP连接传输,端口179。基于TCP本身的可靠性保证安全

注:BGP不能自动发现邻居,只能手动建立;可以传输多种网络层协议;通过keeplive包维持邻居关系

状态机:

  1. Idle state:
    初始化计时器,初始化邻居的TCP连接,接听来自邻居初始化消息并将它的状态转到connect状态
  2. Connect state :
    BGP等到TCP连接完成以后再决定后续的动作
    1.如果tcp同步成功,BGP将connectRetry 清零,完成初始化并发送一个open消息给邻居并把状态置为open
    2.如果失败,BGP继续监听邻居发出的连接,重置connectRetry计时器并转移到active状态
    3.如果connectRetry时间超时,计时器重新开始,在试图与邻居建立TCP连接,bgp保持connect状态,出现其他事件转 入idle状态。
  3. Active state :
    BGP试图与邻居建立一个TCP的连接
    1.如果TCP连接成功,BGP将connectRetry计时器清零,完成初始化,给邻居发送Open消息并将状态置为open,hold时 间置为4mins
    2.如果在active状态,connectRetry计时器超时回到connect状态并重置connectRetry计时器
    3.如果试图与一个未知IP建立TCP会话,同时connectRetry计时器重置,连接拒绝并保持active状态
    4.任何一个事件都会导致重回idle
  4. Open send state:
    在此状态,已经发送了open消息,BGP等待邻居发送的open消息
    1.收到open消息,如果发现差错,将给邻居发送一个notification消息并置为idle
    2.如果收到open消息没错,将发送keeplive给邻居,并建立IBGP或者EBGP状态置为open confire state
    3.如果收到TCP断开消息则断开BGP连接重置connectRetry计时器,状态置为active
  5. Open confire state:
    在此状态下BGP会等待一个keeplive消息或notification消息
    1.如果后搜到一个keeplive消息状态置为establish
    2.如果收到notification消息状态置为idle断开tcp连接
    3.如果hold计时器超时,检测到一个差错或者stop事件,bgp将给邻居发送一个notification并断开连接,状态置为idle
  6. Establish state:
    此状态,BGP对等体间的连接已经完全建立,可以交换update, keeplive和notification消息,收到notification状态置为idle 中断连接。
    BGP简单总结_第1张图片

传路由时,传给ibgp不修改下一跳,传给ebgp修改下一跳
BGP主要研究AS之间路由传递
不为ibgp设置算法做处理(易出环,所以不会中转,不会修改下一跳)

问题1:下一跳不可达

解决1:手动修改域内下一跳

问题2:全互联建邻

解决2: 反射,联邦

BGP属性

特点:
1.公认必尊
所有BGP路由器必须识别遵守的原则有origin,as_path ,next_hop
2.公认可尊
所有路由器都能识别但是不一定要遵守,local_pref,atomic_aggregate
3.可选传递
不是所有BGP路由器都能识别,但是所有BGP都能传递,aggregator和community
4.可选非传递
不是所有路由器都被识别,不能识别的BGP路由器就丢弃它,MED,originator_id和cluster_id,weight

选路原则:

  1. weight
    cisco私有属性,对于离开AS的路由在路由器选择那一条最优,本台路由器产生为32768,学习的为0.不能传递,适用于一台路由去 往别的AS有多个出口。

  2. Origin
    起源,0表示自己宣告,1表示EGP学到,3表示其他手段得到,越低越好
    功能:识别路由来源

  3. AS path
    记录一条路由在传输过程中经历了那些AS(不算自己),可用来放环。越短越好

  4. Local_pref
    不能传输到其他AS,值越高越优,用于本AS选择离开AS的出口路由器默认为100

  5. Next_hop
    到达路由的下一跳路由器IP地址
    通告路由器和接受路由器不在一个AS,next_hop为通告路由器的更新地址
    通告路由器和接受路由器在一个AS内,next_hop为通告邻居的更新地址
    通告路由器和接受路由器在一个AS内且为邻居关系更新地址为不同AS,则为外部更新地址

  6. MED
    用于选择流入AS的入口路由器,可以在俩个AS之间传递,越低越好默认0
    让别人选择,影响别人;可以给ebgp邻居传递影响其他AS,但只限于一个AS范围

  7. Aggregator
    用来通告汇总路由的汇聚路由器 BGP_ID(cisco)

  8. 团体属性
    4个子属性:1.internet 默认属性,可以给任何bgp发送
    2.no_export 只能在一个AS内传递,可以在联盟内传递。
    3.no_advertise 不在IBGP邻居间传递
    4.local-as 不向任何EBGP邻居发送包括联盟的EBGP邻居
    Show ip bgp community 查看打标记的BGP

  9. Originator_id
    反射时,该值是本地路由发起者的RID,防止出现环路

  10. Cluster_list
    记录进入过的反射器ID,当再次遇到有自己ID的簇ID列表时,则丢弃,防止出现环路

  11. Atomic_aggregate
    用来警告下游路由器路由聚合后产生的路由路径丢失。
    BGP支持向BGP邻居传递重叠路由可以选择多种方式
    1.明细和粗略的都公布
    2.只公布明细
    3.只公布没有重叠的
    4.聚合后公布聚合后的路由
    5.明细和粗略都不公布

BGP选路原则:

BGP简单总结_第2张图片

在第八条之后且最大负载均衡条目数量从一条变为多条后,则不再比较,实施负载均衡
BGP简单总结_第3张图片

BGP路由惩罚:

针对EBGP邻居传寄的路由有效
目的:抑制路由摆动
被惩罚的路由不能参与选路,不能传递,惩罚是针对该路由的路径,
惩罚值: 默认是0,路由每翻滚一次,惩罚值增加1000,路由属性每改变一次,惩罚值增加500
惩罚门限:开始进行惩罚的惩罚值,默认2000(大于2000时开始惩罚)
重用门限:当惩罚值降低到该值恢复路由,默认750 当惩罚值降低到重用门限一半时,清除惩罚的记录
半衰期:经过一个半衰期,惩罚值减半,默认15分钟
最大惩罚时间:最大惩罚路由时间,默认60分钟
最大惩罚值:重用门限*2^(最大惩罚时间/半衰期),默认12000.
中间4个可以修改

过滤:

1.neighbor x.x.x.x route-map xx in/out 可以根据前缀、属性、更新地址进行路由过滤或者更改路由属性
2.distribute-list x in/out 可以根据前缀、更新地址进行路由过滤
3.neighbor x.x.x.x prefix-list xx in/out 只能根据前缀进行路由过滤

4.过滤下一跳为x.x.x.x的路由:
利用route-map
匹配下一跳Match ip next-hop
预留出一定的空间

你可能感兴趣的:(技术,BGP)