OSPF,BGP和ICMP

在控制平面我们关注的是,路由器转发报文的路径是怎么样的。也就是如何在路由器中配置转发表。配置转发表有一下两种方式:

  • 每台路由器控制:也是是传统的路由选择方式,每台路由器自己计算转发表。
  • 逻辑集中式控制:就是通过 S D N SDN SDN的方式进行路由选择,由 S D N SDN SDN计算并配置转发表。

这里我们只涉及传统的路由控制方法,不涉及 S D N SDN SDN。下面我们先讲两种传统的路由选择算法,然后再讲在因特网路由选择协议** O S P F OSPF OSPF B G P BGP BGP**。

文章目录

    • 1. 路由选择算法
    • 2. 因特网路由选择协议 O S F P OSFP OSFP B G P BGP BGP
      • 2.1 开放最短路优先( O S F P OSFP OSFP)
      • 2.2 I S P ISP ISP之间的路由选择: B G P BGP BGP
        • 2.2.1 B G P BGP BGP通告路由选择信息
        • 2.2.2 B G P BGP BGP的路由选择
      • 2.2.3 IP任播
    • 3. I C M P ICMP ICMP:因特网控制报文协议

1. 路由选择算法

根据执行算法需不需要路由器所在网络中的所有的链路信息,可以将算法分为集中式和分散式两类:

  • 集中式路由选择算法:其中一个常用算法是链路状态算法。也是就在数据结构中的 D i j k s t r a Dijkstra Dijkstra算法。
  • 分散式路由选择算法:常用的算法是距离向量算法。从数据结构中 B e l l m a n − F o r d Bellman-Ford BellmanFord算法变形而来。

这两个算法在数据结构哪里学过,比较容易理解。

2. 因特网路由选择协议 O S F P OSFP OSFP B G P BGP BGP

因为在全球有很多路由器,不可能把全部的路由器一起的运行路由选择算法,这样很浪费时间。同时每一个 I S P ISP ISP通常希望按照自己的想法配置路由器,如选择 I S P ISP ISP内部的路由选择算法,或对外部隐藏内部的路由器组成。

所以通过 I S P ISP ISP我们可以把全球的网络划分为多个自治系统(AS),每一个AS内部统一运行自己的路由选择协议。通常一个 I S P ISP ISP内部的路由器和链路构成一个AS。不过有些比较大的 I S P ISP ISP将它的内部分成多个互联AS。每一个AS有一个唯一的AS号(ASN),ASN由 I C A N N ICANN ICANN区域注册机构所分配。

在一个AS的内部,路由器彼此拥有对方的信息,运行自治系统内部路由选择协议。而在AS之间,运行自治系统间路由选择协议。下面分别介绍这两种协议。

2.1 开放最短路优先( O S F P OSFP OSFP)

O S F P OSFP OSFP是一种链路状态协议,使用链路状态和 D i j k s t r a Dijkstra Dijkstra最低开销路径算法。在使用 O S F P OSFP OSFP的时候,路由器使用 O S F P OSFP OSFP报文向AS内部的广播路由选择信息。每当链路发生变化,路由器就会广播链路状态信息。即使链路状态不发生变化,路由器也要周期性的广播链路状态信息,这样可以使链路状态算法具有更好的健壮性。 O S F P OSFP OSFP报文直接由 I P IP IP承载,对 O S F P OSFP OSFP其上层协议的值为89。

O S F P OSFP OSFP的优点有一下几个方面:

  • 安全:在一般情况下,路由器间的 O S F P OSFP OSFP报文是未被鉴别的并能被伪造。不过我们可以配置两种鉴别方式:简单鉴别和MD5。使用MD5的比较安全。
  • 多条相同的开销路径:当到达目的地的多条路径有相同开销时, O S F P OSFP OSFP允许使用多条路径。
  • 对单播和多播路由选择的综合支持
  • 支持在单个AS中的层次结构:可以在一个AS中,配置多个子AS,每个子AS通过边界路(子AS系统与主AS系统相连的路由器)互相联系。

2.2 I S P ISP ISP之间的路由选择: B G P BGP BGP

在AS内,我们使用的是 O S F P OSFP OSFP路由选择协议。在AS之间,我们使用 B G P BGP BGP路由选择。

要运行 B G P BGP BGP,要经过两个阶段:

  • B G P BGP BGP通告路由选择信息
  • 执行路由选择算法

其实每个路由选择算法都需要经过个两个阶段。下面依次介绍这两个阶段

2.2.1 B G P BGP BGP通告路由选择信息

B G P BGP BGP中,路由器通告的不是目的地址,而是一个前缀,前缀是一个子网或子网集合。所以在路由器中具有 ( x , I ) (x,I) (x,I)的表项,其中 x x x是一个前缀(例如156.235.123/24), I I I是该路由器的接口之一。

B G P BGP BGP在通过前缀时,会在里面包含一些** B G P BGP BGP属性**,比较重要的有两个 A S − P A T H AS-PATH ASPATH N E X T − H O P NEXT-HOP NEXTHOP

  • A S − P A T H AS-PATH ASPATH:要到达前缀 x x x,经过的AS路径,也可以用来防止环路。
  • N E X T − H O P NEXT-HOP NEXTHOP:在 B G P BGP BGP中路由器分为两种,能与外部的AS的路由器相连的叫做网关路由器,只与内部路由器相连的叫做内部路由器 N E X T − H O P NEXT-HOP NEXTHOP就是要到达前缀 x x x要经过的第一个外部AS网关路由器的 I P IP IP地址

举个例子:

OSPF,BGP和ICMP_第1张图片

如图,要将AS3的前缀 x x x通告给AS1和AS2,总的来看,就是AS3通告AS2,然后AS2通告AS1。

上图AS2中知到的路由情况为:

A S − P A T H AS-PATH ASPATHAS3 x N E X T − H O P NEXT-HOP NEXTHOP:路由器3a最上面接口 I P IP IP地址。

AS1知到的路由情况为:

A S − P A T H AS-PATH ASPATHAS2 AS3 x N E X T − H O P NEXT-HOP NEXTHOP:路由器2a最左面接口 I P IP IP地址。

B G P BGP BGP中每对路由器通过使用179端口的半永久 T C P TCP TCP连接交换路由选择信息,每条直接相连以及所有通过该连接发送的 B G P BGP BGP报文,称为 B G P BGP BGP连接。跨越两个AS的 B G P BGP BGP连接称为外部 B G P BGP BGP,在AS之内的叫做内部 B G P BGP BGP。注意:内部 B G P BGP BGP并不总是与物理链路相对应。下图是上面那张图的对应的 B G P BGP BGP连接。

OSPF,BGP和ICMP_第2张图片

那么你现在可能有疑问, A S − P A T H AS-PATH ASPATH是在什么地方被添加的呢?

答:在网关路由器添加,也就是在外部 B G P BGP BGP添加。例如AS2想AS1通告时, A S − P A T H AS-PATH ASPATH在路由器2a处添加上AS2

2.2.2 B G P BGP BGP的路由选择

有两种比较常用的 B G P BGP BGP路由选择算法:一是烫手山芋路由选择算法(书上的是热土豆路由选择,是直接从英文翻译过来的,不过符合中文俗语翻译为烫手山芋应该更好),二是比较综合的路由选择算法,下面分别描述。

1. 烫手山芋路由选择

当一个节点要发送报文时,他选择的路径是从他自己到网关路由的最短的路线。步骤如下:

  • 从AS间协议学到经多个网关可达子网 x x x
  • 使用来自AS内部协议的路由选择信息,以决定到达每个网关的最低开销路径的开销。
  • 选择具有最小最低开销的网关。
  • 从转发表确定最低开销网关的接口 I I I,在转发表中加入表项 ( x , I ) (x, I) (x,I)

2. 路由选择算法

在实际情况中,我们使用的路由选择算法选用了好几个特征,通过特征的先后顺序来选择路径。

  1. 路由被指派一个本地偏好值作为其属性之一(除了 A S − P A T H AS-PATH ASPATH N E X T − H O P NEXT-HOP NEXTHOP)。具有最好本地偏好值的路由将被选择。
  2. 当本地偏好相同时,选择具有最短 A S − P A T H AS-PATH ASPATH的路由。
  3. 如果上述的都相同,则使用烫手山芋路由选择,即选择具有靠近的 N E X T − H O P NEXT-HOP NEXTHOP路由器的路由。
  4. 如有仍然有多条路由,该路由器使用 B G P BGP BGP标识符来选择路由。

2.2.3 IP任播

使用 B G P BGP BGP可以自然地支持 I P IP IP任播。当某台 B G P BGP BGP路由器收到该 I P IP IP地址的多个路由通告,他将这些通告处理为对相同物理地址提供的不同路径(实际上,可以处于不同的物理地址)。举个例子,假设城市A和B有两台服务器有相同的 I P IP IP地址,于是我的电脑收到了这两个服务器的 B G P BGP BGP通告,但是我的电脑并不知到这两个通告来字不同的物理地址。 I P IP IP任播被 D N S DNS DNS系统广泛用于将 D N S DNS DNS请求指向最近的根 D N S DNS DNS服务器。根 D N S DNS DNS服务器有13个 I P IP IP地址,但是对应于这些地址,一个地址有多个 D N S DNS DNS服务器。

3. I C M P ICMP ICMP:因特网控制报文协议

I C M P ICMP ICMP报文有一个类型字段和一个编码字段,并且包含引起该 I C M P ICMP ICMP报文首次生成的 I P IP IP数据报的首部和前8个字节(使发送方可以确定引发该报文差错的数据报)。

一般来说: I C M P ICMP ICMP有两种格式:询问报文和差错报告报文。

  • 询问报文:如下图使用Ping发送请求。包含类型,编码,检验和,标识符,序号和数据部分。
OSPF,BGP和ICMP_第3张图片
  • 差错报告报文:如下图,这是使用 T r a c e r o u t e Traceroute Traceroute程序发送的 I C M P ICMP ICMP,当 T T L TTL TTL超时时,返回的 I C M P ICMP ICMP差错报告报文。里面包含了类型,编码,检验和, I P IP IP首部和原来 I C M P ICMP ICMP报文的前8个字节。
OSPF,BGP和ICMP_第4张图片

通过类型和编码的不同组合,有许多不同种类的 I C M P ICMP ICMP报文,如下图

OSPF,BGP和ICMP_第5张图片

更加具体的内容可见维基百科。

你可能感兴趣的:(计算机网络)