• 计算机网络-网络层(5)层次路由


    将路由器聚合成一个自治系统AS(autonomous systems)
    ①同一AS内的路由器运行相同的路由协议自治系统内部路由协议(“intra-AS” routing protocol)
    ②不同AS内的路由器可以运行不同的AS内部路由协议
    路由器的转发表由AS内部路由算法与AS间路由算法共同配置:
    ①AS内部路由算法设置AS内部目的网络路由入口(entries)
    ②AS内部路由算法与AS间路由算法共同设置AS外部目的网络路由入口
    网关路由器(gateway router)位于AS边缘,通过链路连接其他AS的网关路由器
     
    假设AS1内某路由器收到一个目的地址在AS1之外的数据报,为确定路由器应该将该数据报转发给哪个网关路由器:
    (1)AS1必须学习到哪些目的网络可以通过AS2到达,哪些可以通过AS3到达。
    (2)AS间路由算法将这些网络可达性信息传播给AS1内部路由器。
    (3)路由器利用AS内部路由信息,确定其到达网关路由器的最小费用路径接口,在转发表中增加入口
    (4)如果通过AS3和AS2均可到达,为了配置转发表,路由器必须确定应该将去往子网的数据报转发给哪个网关,这个任务也是由AS间路由协议完成的。在实践中经常使用的一种方法是热土豆路由选择(hotpotatorouting),将分组发送给最近的网关路由器。
     
    Internet采用层次路由:
    Internet的AS内部路由协议也称为内部网络协议IGP(interior gateway protocols):
    • 路由信息协议:RIP(Routing Information Protocol)
    早于1982年随BSD-UNIX操作系统发布。
    是一种距离向量协议, 费用实际上是从源路由器到目的子网的跳步数(max = 15 hops),跳是沿着从源路由器到目的子网(包括目的子网)的最短路径所经过的子网数量
    每隔30秒,邻居之间交换一次DV,成为RIP通告(RIP advertisement)-RIP响应报文,其中包含了一个该AS内的最多25个目的子网的列表(IP地址形式),以及发送方到其中每个子网的距离。
    路由器也可通过使用RIP请求报文,请求其邻居到指定目的地的费用。
    每台路由器维护一张称为路由选择表的RIP表,包括该路由器的距离向量和该路由器的转发表。
    如果180秒没有收到通告→邻居/链路失效,经过该邻居/链路的路由不可用,重新计算路由并向邻居发送新的通告,邻居再依次向外发送通告(如果转发表改变)
    链路失效信息要快速传播到全网,可能发生无穷计数问题,因此使用了毒性逆转技术,且定义16 hpps = 无穷距离
    RIP路由表是利用一个称作routed (daemon)的应用层进程进行管理, 维护路由选择信息并与相邻路由器中的routed进程交换报文,通告报文周期性地通过UDP数据报发送。路由器在UDP上使用端口520相互发送RIP请求与响应报文。封装在标准IP数据报中的UDP报文段在路由器之间传输。
    • 开放式最短路径优先协议OSPF(Open Shortest Path First)
    开放指路由选择协议规范是公众可用的。
    OSPF的核心就是一个使用洪泛(向整个AS内广播,而不仅仅是邻居)链路状态信息的链路状态协议和一个Dijksua最低费用路径算法。使用OSPF,一台路由器构建了一幅关于整个自治系统的完整拓扑图(网络AS拓扑图)。
    各条链路费用是由网络管理员配置的。
    路由器在本地运行Dijkstra的最短路径算法,以确定一个以自身为根结点的到所有子网的最短路径树。
    每当一条链路的状态发生变化时(如费用的变化或连接/中断状态的变化),路由器就会广播链路状态信息。
    即使链路状态未发生变化,它也要周期性地(至少每隔30分钟一次)广播链路状态。
    OSPF通告包含在OSPF报文中,该OSPF报文直接封装到IP数据报中。因此OSPF协议必须自已实现诸如可靠报文传输、链路状态广播等功能。OSPF协议还要检查链路正在运行(通过向相连的邻居发送HELLO报文),并允许OSPF路由器获得相邻路由器的网络范围链路状态的数据库。
    OSPF的优点:
    1. 安全(security):所有OSPF报文可以被认证(预防恶意入侵)
    2. 允许使用多条相同费用的路径 (RIP只能选一条),数据多的时候可以负载到多条路径
    3. 对于每条链路,可以针对不同的TOS设置多个不同的费用度量。例如,卫星链路可以针对“尽力”(best effort) ToS设置低费用、针对实时ToS设置“高”费用
    4. 对单播与多播路由选择的综合支持:多播OSPF(MOSPF)提供对OSPF 的简单扩展,以便提供多播路由选择。它使用现有的OSPF链路数据库,并为现有的OSPF 链路状态广播机制增加了一种新型的链路状态通告。
    5. 支持对大规模AS分层
    OSPF的分层:
    一个OSPF自治系统可以配置成多个区域。每个区域都运行自己的OSPF链路状态路由选择算法,链路状态通告只限于区域内部。
    每个路由器掌握所在区的详细拓扑,只知道去往其他区网络的“方向” (最短路径)
    如图:局部分层为骨干区域、局部区域。
    一个AS内只有一个OSPF 区域配置成主干(backbone) 区域。主干区域的主要作用是为AS 内其他区域之间的流量提供路由选择。该主干总是包含了AS内的所有区域边界路由器,并且可能还包含了一些非边界路由器。
    每个局部区域内,都有一台或多台区域边界路由器,既是区域内部路由器,又是主干路由器。负责为流向该区域以外的分组提供路由选择;汇总到达所在区网格的距离,通告给其它区域的区域边界路由器。
    在AS内的区域间的路由选择要求分组首先通告区域内路由选择路由到一个区域边界路由器,再通过主干路由到位于目的区域的区域边界路由器,然后再路由到最终目的地。
    主干区还有一个AS边界路由器。
     
    Internet AS间路由协议: BGP4,它是将Internet粘合成一个整体的关键
    • 边界网关协议BGP (Border Gateway Protocol)
    BGP为每个AS提供了一种手段:
    (1)eBGP: 从邻居AS获取子网可达性信息.
    (2)iBGP: 向所有AS内部路由器传播子网可达性信息.
    (3)基于可达性信息与策略,确定到达其他网络的“好”路径.
    (4)容许子网向Internet其余部分通告它的存在
    BGP会话(session):两个BGP对等方 (BGP Peers)交换BGP报文,通告去往不同目的前缀(prefix)的路径 (“路径向量(path vector)”协议),报文交换基于半永久的TCP连接
        跨越两个AS的BGP会话称为外部BGP (eBGP) 会话(external BGP session)
        在同一个AS中的两台路由器之间的BGP会话称为内部BGP (iBGP) 会话(internal BGP session) 。
    BGP报文:
    ①OPEN: 与peer建立TCP连接,并认证发送方
    ②UPDATE: 通告新路径 (或撤销原路径)
    ③KEEPALIVE: 在无UPDATE时,保活连接;也用于对OPEN请求的确认
    ④NOTIFICATION: 报告先前报文的差错;也被用于关闭连接
     
    当AS3利用eBGP会话通告一个CDIR化的前缀给AS1时:AS3承诺可以将数据报转发给该子网、AS3在通告中会聚合网络前缀
    AS1的AS边界路由器1c可以利用iBGP向AS1内的所有路由器分发新的前缀可达性信息
    1c可以(也可能不)进一步通过1b-到-2a的eGP会话,向AS2通告新的可达性信息
    当路由器获得新的前缀可达性时,即在其转发表中增加关于该前缀的入口(路由项)
     
    当一台路由器通过BGP会话通告一个前缀时,它在前缀中包括一些BGP 属性,前缀+属性= “路由”
    两个重要属性:
    AS-PATH(AS路径)包含前缀通告所经过的AS序列
    NEXT-HOP(下一跳)开始一个AS-PATH的路由器接口,指向下一跳AS。可能从当前AS到下一跳AS存在多条链路,NEXT-HOP指明了走哪一条。
    当一台网关路由器接收到一台路由器通告时,它使用其输入策略来决定是否接收/过滤该路由。
    输人策略可能过滤掉一条路由,因为该AS可能不希望通过在该路由的AS-PATH中的某个AS发送流量。
    网关路由器也可能过滤一条路由,因为它已经知道了一条到相同前缀的偏好路由。
     
    路由器可能获知到达某目的AS的多条路由,基于以下准则选择:
    1. 本地偏好(preference)值属性: 策略决策(policy
    decision)
    2. 最短AS-PATH
    3. 最近NEXT-HOP路由器: 热土豆路由(hot potato routing)
    4. 附加准则
    以某一个例子来说明BGP路由选择策略:
    A,B,C是提供商网络/AS(provider network/AS)
    X,W,Y是客户网络(customer network/AS)
    W,Y是桩网络(stub network/AS): 只与一个其他AS相连
    X是双宿网络(dual-homed network/AS): 连接两个其他AS
    X不期望经过他路由B到C的流量,因此,X不会向B通告任何一条到达C的路由
    A向B通告一条路径:AW
    B向X通告路径:BAW
    B不会向C通告路径BAW:因为W和C均不是B的客户,B路由CBAW的流量没有任何“收益”,B期望强制C通过A向W路由流量、自己只路由去往/来自其客户的流量!
     
    综上,采用不同的AS内与AS间路由协议的原因:
    • 策略(policy):
    inter-AS: 期望能够管理控制流量如何被路由,谁路由经过其网络等
    intra-AS: 单一管理,无需策略决策
    • 规模(scale):
    层次路由节省路由表大小,减少路由更新流量
    适应大规模互联网
    • 性能(performance):
    intra-AS: 侧重性能
    inter-AS: 策略主导
  • 相关阅读:
    Commons JXPath
    10到十分精彩的智力题,你能过关几道?
    程序员下班电脑不关机的5大原因,你中招了吗?
    程序员下班电脑不关机的5大原因,你中招了吗?
    MySQL的一些概念笔记
    MySQL的一些概念笔记
    Shell中I/O重定向的用法笔记
    Shell中I/O重定向的用法笔记
    Shell重定向的概念笔记
    Shell重定向的概念笔记
  • 原文地址:https://www.cnblogs.com/yangyuliufeng/p/9289774.html
Copyright © 2020-2023  润新知