zoukankan      html  css  js  c++  java
  • BGP 初探

    BGP的出现

    最早的路由协议 GGP(Gateway-to-Gateway Protocol)

    IGP(Interior Gateway Protocol) 是在一个自治系统(AS)内网关之间交换路由信息的协议,包括RIP、OSPF、IS-IS、IGRP、EIGRP。而GGP是第一个内部网关协议。随着网络规模的扩大,GGP逐渐被淘汰。

    RIP-》OSPF、ISIS

    IGRP 和 EIGRP是CISCO私有的协议

    EGP(Exterior Gateway Protocol)外部网关协议,实在不同的自治系统之间传递路由信息。EGP 最早见于RFC827。

    EGP的缺点:

    1. 不做路由优选

    2. 不能避免环路

    (欢迎补充)...

    BGP(Border Gateway Protocol)最早见于1989年发布的RFC1105。

    BGP的优势:

    1.解决环路问题

    2.路由收敛

    3.触发更新

    ...

    BGP的发展

    TCP 作为传输层协议,保证可靠传输,端口号179。

    BGP建立在两个AS之间,不能通过自动发现,需要手动配置邻居,建立TCP连接。

    EBGP(external BGP) 与AS外部节点建立的BGP关系

    IBGP(Internal BGP) AS内部节点建立的BGP关系

    AS号解决AS之间的环路问题,如果某个路由信息携带了自己的AS号,说明这个路由是已知路由,不再处理。如果AS号重复,说明出现了环路。

    那么问题来了,在同一个AS内,AS号是不变的,如何防止环路呢?

    方法1:

    规定从IBGP邻居学到的路由不会传递给另一个IBGP邻居,那么就需要AS内部所有的路由器都要两两建立IBGP关系,这样就有弊端如果AS足够大的话,对于每个路由器要和所有的AS内路由器建连接负荷会很大。

    针对以上的弊端,衍生出路由反射器(Route Reflector)和BGP 联盟,见 RFC1966 和 RFC1965

    方法2:

    路由反射器是在AS内指定一个节点作为反射器,所有的其他节点与反射器建立IBGP连接,反射器作为中间节点,在其他任何两个IBGP间传递路由。

    方法3:

    BGP联盟是在AS内做重新规划,把一个大的AS分为多个小的私有的AS。

    从BGPv2(RFC1163)开始,BGP消息种类分为4种:

    OPEN:建立TCP连接后,用OPEN消息出发BGP关系建立过程;

    UPDATE:进行路由的发布和撤销;

    NOTIFICATION:通告出现的错误;

    KEEPALIVE:保活BGP关系。

    BGP状态机 6 种,后续介绍。

    BGPv2一个重要的概念 BGP路径属性,分为4种,公认必遵属性、公认可选属性、可选可传递属性、可选不传递属性。

    公认必遵属性:必须在发布路由时携带,描述所发布路由的基本信息,包括:下一跳、AS_PATH和ORIGIN。下一跳用于路由计算,AS_PATH用于环路避免,ORIGIN用于路由选择。

    公认可选属性:这些属性必须被所有的BGP路由器所识别,携带与否是可以选择的

    可选可传递属性:后期详述

    可选不传递属性:后期详述

    BGP的扩展

    BGP联盟RFC1965 最新为RFC5065

    路由反射器RFC1966最新为RFC4456

  • 相关阅读:
    字节流与字符流的区别?
    启动一个线程是用run()还是start()?
    Java中的异常处理机制的简单原理和应用?
    java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
    Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
    运行时异常与一般异常有何异同?
    常用清除浮动的方法,如不清除浮动会怎样?
    多线程有几种实现方法?同步有几种实现方法?
    你所知道的集合类都有哪些?主要方法?
    至少两种方式实现自适应搜索?
  • 原文地址:https://www.cnblogs.com/r-yan/p/13713198.html
Copyright © 2011-2022 走看看