zoukankan      html  css  js  c++  java
  • BGP笔记

    BGP:用于AS与AS之间的路由,但现在也越来越多的用在IDC内部了

    BGP是应用层协议,应用TCP协议(唯一一个运用TCP的路由协议)

     

    IGP和EGP的区别:IGP运行在一个AS之内,EGP运行在AS之间。
    BGP是一个高级的距离矢量协议,路径矢量路由选择协议
    BGP是一个应用层协议,基于TCP的179端口

    多数组:连接多家运营商

    BGP通过单播发送报文,所以需要指定邻居

    BGP具有触发更新机制(增量更新),没有周期性更新.
    BGP只追踪和邻居的邻接关系,不追踪路由信息,只要邻接关系还在,邻居给传递的路由信息就会信任。
    BGP通过周期性的发送keepalive报文(类似于IGP里面的HELLO报文)来维护邻接关系,建立邻接关系则用另外一种叫open的报文。

    BGP的三张表:
    1.neighbor table
    2.BGP table(forwarding database)
    3.IP routing table

    BGP的四种报文:
    1.Open
    -includes hold time and BGP router ID
    2.Keepalive
    -周期性发送维护邻接关系
    3.Update
    -所有的距离矢量协议发送的更新报文里面都是直接携带路由条目的(OSPF携带LSA)
    4.Notification
    -When error is detected
    -BGP connection closed after message is sent

    BGP的五种状态:
    1.idle
    2.connect
    3.open sent
    4.open confirm
    5.established

     


    IBGP管理距离:200
    EBGP管理距离:20


    TCP通过窗口机制实现流控,通过序列号防乱序,确认号防丢包,校验和防止报文被篡改,以及重传机制。

     

    导致BGP路由不优的原因
    1.Synchronization
    当一台路由器收到了IBGP对等体传递的IBGP路由的时候,会优先判断该路由是否能通过
    对某种IGP学到,如果能则同步实现,如果不能则同步失败。
    解决方案(将该特性关闭)
    2:Next-Hop Unreachable
    解决方案 Next-hop-self

    一条BGP表中的BGP路由如果既打r又打>则代表该路由由于管理距离的原因虽然最优但是
    无法加表,该路由可以传递给任何其他的邻居(只要满足规则)

    ICMP Redirect
    当一台路由器通过一个接口接受到了一个报文,该路由器查表发现转发这个报文需要将
    其通过接收接口再次转发出去。

    当一台BGP Speaker将一条BGP路由传递给同MA网段的下一跳EBGP邻居时,该路由器如果
    发现该路由条目的上一跳邻居传递该路由的接口的IP地址和下一跳邻居接收该路由的接
    口的IP地址在同一个IP子网段,此时该路由器会主动将该路由条目的下一跳地址改写为
    上一跳邻居的发送路由接口的IP地址(不是因为ICMP重定向)。

    关于BGP路由条目的下一跳地址
    1.如果一台路由器将本地路由通告进BGP进程,则对于这些被通告路由,该路由器本地
    BGP表中关于他们的下一跳都为0.0.0.0 本地路由包括直连路由和静态路由。
    2.如果一台路由器将通过IGP获悉的路由通告进BGP进程,则这些路由在该路由器的BGP
    表中下一跳会继承相应的IGP路由的下一跳地址。
    3.如果一台路由器将其本地通告的本地路由传递给其任何BGP对等体,则会将该路由条
    目的下一跳改为本地对于这些邻居的更新源。
    4.如果一台路由器通过EBGP学习到了一条路由,则该路由在传递给IBGP对等体时,默认
    情况下一跳不变(除非做Next-Hop-Self)
    5.如果一台路由器将任何BGP路由通告给其EBGP对等体,则路由的下一跳会变成该路由器
    对于该邻居的BGP更新源地址。


    BGP Auto-Summary
    在早期的IOS版本中默认情况一台路由器的BGP进程的Auto-Summary是开启的,在后期新
    版本的IOS中Auto-Summary是自动关闭的。
    作用:
    无论在路由器上是否开启Auto-Summary都不会影响BGP精确通告的BGP路由,该特性只有
    两个作用
    1:当在路由器上使用汇总通告的时候,如果该路由器路由表中拥有汇总条目内的明细
    路由的时候,并且该路由器开启了自动汇总,则该路由器会将明细路由抑制并且将其在
    其主类网络边界汇总后发送给邻居。

    BGP属性:

    一、Weight(权重属性)(接口概念)(影响本地流量选择哪个路由器接口出去)(一个路由器拥有多个接口)(基于一个路由器)(cisco私有,一般用不到)
    1.传递范围:该属性只能在路由器本地有意义,路由器发送任何BGP路由的时候不会携带该属性
    2.缺省值:对于一条下一跳地址为0.0.0.0的BGP路由,在该路由器本地BGP表中该路由的缺省Weight
    值是32768
    如果该路由是邻居通告的,无论IGBP或EBGP都是缺省0,如果该路由是本地通告,但是来源
    于IGP,则该路由缺省权重也是0.
    范围:0-65535
    3.比较方式:Weight属性值越大,该路由条目越优。


    二、Local Preference(本地优先级)(影响本地流量选择哪个路由器出去)(一个AS拥有多个出口)(基于一个AS)
    1.传递范围:只能在一个AS内传递(只能在传递IBGP路由的时候修改)
    2.缺省值:只要是BGP路由无论是否本地产生,无论是IBGP/EBGP,缺省值都为100
    3.比较原则:越大越好


    三、MED(进入的流量选择哪个路由器进来)
    1.传递范围:在对端AS内传递
    2.缺省值:
    3.比较原则:越小越好

    四、之后的属性用一张图表示,就不详细描述了


    打破IBGP路由传递原则的两大方式:
    1.路由反射器 Route Reflector(镜子原理)
    Cluster IBGP RR Server RRC Client

    RR收到了一条EBGP路由,会将其转发给所有其他EBGP对等体以及所有IGBP对等体(包含Client以及Non-Client)
    RR收到了一条IBGP路由(该路由是Client传递的),RR会将其转发给所有其他的RR以及所有IBGP的Non-Client以及所有的EBGP对等体
    RR收到了一条IBGP路由(该路由是Non-Client传递的),RR会将其转发给所有Client以及所有EBGP对等体,但是不会传递给任何其他的Non-Client

    2.联邦 Confederation
    1.所有联邦路由器启用BGP进程的AS号都是子AS号,联邦建邻居指的是对方的子AS号,外部路由指联邦内BGP邻居指的是主AS号
    2.所有联邦内路由器都要宣称自己属于主AS
    3.联邦内路由器要建立联邦内EBGP连接时需要指定本地和什么子AS连接

     


    Community属性(团体属性) 公认自由 不可传递
    1.Standard
    No-Advertise:当路由器收到了带有该团体属性的BGP路由的时候,路由无法传递给任何其他的BGP对等体。
    NO-Export:当路由器收到了带有该团体属性的BGP路由的时候,路由无法传递给其他的AS,只能在AS内传递,如果该AS起了联邦,则该路由还可以在联邦内子AS之间传递。
    Local-AS:当路由器收到了带有该团体属性的BGP路由的时候,路由只能在接收者所在的AS内传递,无论该AS是一个主AS还是一个联邦内子AS。
    XX:YY tag

     

  • 相关阅读:
    windows照样命令行gcc/g++
    我的Linux(Ubuntu)首秀
    简单分频原理与实现——计数器
    时序分析之Arrival Time
    DDS正弦信号发生器
    C/C++ 预处理器
    时序分析之Slack
    iOS单例
    static
    深浅拷贝
  • 原文地址:https://www.cnblogs.com/baihualin/p/10408435.html
Copyright © 2011-2022 走看看