设为首页 收藏本站
查看: 1343|回复: 0

[经验分享] Juniper-R&S-BGP(1):一些写在前头的基础知识

[复制链接]

尚未签到

发表于 2018-7-28 09:04:27 | 显示全部楼层 |阅读模式
  AS (autonomous system)自治系统
  BGP提供环路防护机制(使用AS-Path属性)
  一个AS,实际上就是路由器设置的一个控制和管理域。一个单独的管理域可以使用一个AS号来定义,并且只能赋予一个AS号。
  应为BGP使用AS这个属性来标示路线,所以BGP又叫路径矢量路由协议Path-Vector Protocols。
  
  BGP路由协议的特性(待补充)

  •   BGP路由协议由很强的操控性
  •   可靠传输:BGP使用TCP协议(TCP 179端口),TCP本身的特性(三次握手、ACK、序列号、校验和、流控等)保证了BGP的可靠性。
  •   路由表的可扩展性:BGP对等体建立连接后,初始通告是整张路由表,然后就是根据需要发送路由更新了。
  
  BGP的对等体Peer
  BGP的对等体分为两种 IBGP和EBGP。
  EBGP:当两个BGP路由器在不同AS网络时,他们之间的Session就是使用EBGP连接。
  默认一个EBGP连接的Peer必须是直连:也就是IP头部TTL值被置为1.因此中间不允许存在其他三层设备。
  IBGP:当两个NBGP路由器在相同的AS网络,他们之间的Session就是成为IBGP连接。
  IBGP邻居不需要物理直连,BGP数据包的IP首部TTL值被设置为64 ,只要TCP的179端口可达,IBGP邻居关系就能建立,IBGP连接的建立依赖于AS网络中的IGP(静态、直连也算在内)产生的路由。
  IBGP邻居有个重要的特性:IBGP邻居不会把从IBGP邻居学到的路由再发给一个IBGP邻居,但是会把从EBGP邻居处学到的路由发给IBGP邻居。
  
  BGP 连接
  BGP是增量(incremental)更新
  不会定期的刷新全部路由信息
  解决路由黑洞的方法。。
  (详见专题)
  BGP邻居状态
  BGP邻居状态一共6种
  ----------------前三种属于TCP连接部分

  •   Idle :这是邻居的初始化状态,在这个状态路由器将拒绝所有进入的TCP会话请求,当BGP进程启动后,路由器会向对等体发送TCP请求,然后本地路由器切换到Connect状态,并监听远程路由器的初始连接请求。
  •   Connect:在Connect状态,本地路由器等待TCP会话建立完成。
  •   Active
  ----------------后三种属于BGP连接部分

  •   OpenSent
  •   OpenConfirm
  •   Established
  
  
  基本的路由信息
  各个BGP路由器使用本地内存来存放路由信息,这总的来说称为 RIB(Routing Information Base),一个BGP对等体维持三种类型的RIBs

  •   Adjacency-RIB-in
  •   Local-RIB
  •   Adjacency-RIB-out
  Adjacency-RIB-in
  
  adjacency-RIB-in 是本地路由为每一个BGP对等体创建的。从对等体接收到的所有路由都被存在合适的内存列表里。
  --在这里需要注意:本地路由器会丢弃包含 AS Path环路的路由。
  
  Local-RIB
  到达每个目的地的最佳路由被存放在Local-RIB列表里,这些路由是本地路由器用来转发数据流量的。在这个RIB里,基于每个目的地,只有单一的路径通告(最优的)
  
  
  Adjacency-RIB-out
  
  每个BGP对等体同样创建一个属于自己的Adjacency-RIB-out表为outbound路由通告(所有outbound路由通告被存放在adjacency-RIB-out列表)。只有在Local-RIB 里面的路由才有资格被放进outbound数据库,换句话说,一个BGP路由器通告最佳路由(被用作流量转发的路由)
  
  默认所有Local-RIB路由都被放置到adjacency-RIB-out列表。当然,你可以通过export路由策略修改这个默认的行为,一个策略可以添加、修改或者移除各个路由的属性,此外,一个策略可以防止某些路由别通告到指定的对等体。
  
  
  BGP 路由选择进程
  本地路由器会基于Adjacency-RIB-in 列表的路由信息,使用一个路由选择算法确定到达各个目的地的最佳路由。这个路由选择算法的主要依据是各种BGP属性值

  •   如果在Inbound中只有单条到达某一目的地的路由,那么该路由会直接放到Local-RIB列表,同时被用于数据包的转发。
  •   当到达同一目的地有多条路由时,就需要比较他们的属性值,在选择算法的每个步骤里,都是为了淘汰到达目的地的次优路由,如果还是存在多条路由,那么选择一个算法再进入到下一个步骤,一直到选出最优路由。
  BGP选择算法步骤

  •   各个路由的Next-Hop属性在本地路由表中必须可达的,如果不可达,本地路由器会丢弃该路由。
  •   路由器会选择最佳(Local-Preference属性值得路由。
  •   路由器会选择具有最AS Path 长度的路由。
  •   路由器会选择具有最Origin属性的路由。(Origin属性值有三种,IGP,EGP,Incomplete,优先顺序是IGP(i)>EGP(e)>Incomplete(?))。
  •   路由器会选择具有最小 MED(Multiple Exit Discriminator)属性值的路由。
  •   路由器会优选基于EBGP对等体学习到的路由(相比从IBGP对等体学习到的路由)。
  •   路由器会选择到达BGP Next Hop具有最小 IGP Metric值得路由。
  •   如果在IBGP对等体使用RR(路由反射器),那么路由器会选择具有最短Cluster-List长度的路由。
  •   路由器会选择具有最小RID(BGP对等体)通告的路由。
  •   路由器会选择具有最小对等体地址(BGP对等体)通告的路由。
  BGP的属性
  1、Next Hop属性
  属性代码 3
  公认强制属性
  BGP路由器学习到的到达目的地的下一跳
  0.0.0.0 代表 是自己产生的路由,其他代表是别人产生的路由(自己产生的路由优先)
  Juniper路由器将标记出来的路由隐藏起来,可以使用show route hidden查看
  利用BGP Next Hop有五种可行的方法。

  •   设置下一跳属性。许多人认为这是一个IBGP Peer会话的最佳实现方式,这个方法允许通过路由器改变下一跳属性。
  •   使用一个IGP被动接口。在这个方式,EBGP对等体连接接口被配置为AS里IGP的被动接口,这允许IGP通告外部子网像内部路由一样在EBGP邻居还没有建立时。在AS的所有路由器就能找到通过下一跳的EBGP-speaking router.
  •   配置一个export policy,使用export 策略配置将直连路由通告给IGP,这样内部AS路由器就知道EBGP-Speaker路由器在哪里(Next-Hop
  •   建立一个IGP邻接。
  •   利用静态路由。
  
  2、Local-Preference 本地优先级
  属性类型代码 5
  公认自决属性
  所有BGP路由器必须识别本地优先级属性。
  本地优先级用于AS内部(常被用于选择出口路由器)
  默认本地优先级值为100
  取值范围 1- 4294967295
  
  3、AS-Path
  属性代码2
  公认强制属性
  防止路由环路
  路由经过一个AS时,会自动添加这个AS号到BGP的路由AS列表中
  只有在EBGP邻居之间通告的时候,AS号才会被添加,IBGP邻居通告时不会添加
  
  4、Origin 起源属性
  属性代码 1
  公认强制属性
  起源属性描述了BGP路由的起源
  BGP路由的起源有三种

  •   IGP有IGP路由学来的,      使用“I”标识,并且编码值设置为0。
  •   EGP                                   使用“E”标示,编码值设置为1。
  •   Incomplete 路由源未知的 使用“?”标识,并且编码值设置为2。
  IGP最优,EGP其次,?最差(重分布过来的路由标示就是“?”)
  JunOS软件总是设置一个Origin值给所有使用export策略通告的IGP路由。
  
  
  5、MED属性
  属性代码 4
  相当于IGP的metric值
  JunOS软件解释不存在的MED值为0。
  
  6、Community 团体属性
  属性代码 8
  可选的可传递的属性
  该属性为4字节格式是 65001:1001 (前面是AS号,后面为属性值)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-542313-1-1.html 上篇帖子: juniper *** LT2P-david 下篇帖子: Juniper-SSG-Netscreen系列之高可用CLI配置终结篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表