路由协议

1 如何配置路由

路由器是一台网络设备,它有多张网卡。当一个入口的网络包送到路由器时,它会根据一个本地的转发信息库,来决定如何正确地转发流量,这个转发库就是常说的路由表。

一张路由表中会有多条路由规则。每一条规则至少包含这三项信息:

  • 目的网络:这个包想去哪儿?
  • 出口设备:将包从哪个口转发出去?
  • 下一跳网关:下一个路由器的地址。

通过 route 命令 和 ip route 命令都可以进行查询或者配置的。例如,我们设置命令 ip route add 10.176.48.0/20 via 10.173.32.1 dev eth0 就说明要去 10.176.48.0/20 这个目标网络,要从 eth0 端口出去,经过 10.173.32.1。

此方法的核心思想是:根据目的地址来配置路由。

2 如何配置策略路由

当然,在真实的复杂的网络环境中,除了可以根据目的 ip 地址配置路由外,可以根据多个参数来配置路由,这就成为策略路由。

可以配置多个路由表,可以根据源 ip 地址、入口设备、TOS等选择路由表,然后在路由表中查找路由。这样可以使得不同来源的包走不同的路由。
例如,我们设置:

ip rule add from 192.168.1.0/24 table 10
ip rule add from 192.168.2.0/24 table 20

表示从 192.168.1.10/24 这个网段来的,使用 table 10 中的路由表,而从 192.168.2.0/24 网段来的,使用 table 20 的路由表。

在一条路由规则中,也可以走多条路径。例如,在下面中的路由规则中:

ip route add default scope global nexthop via 100.100.100.1 weight 1 nexthop via 200.200.200.1 weight 2

下一跳有两个地方,分别是 100.100.100.1 和 200.200.200.1,权重比分别为 1 比 2。

3 动态路由算法

使用动态路由路由器,可以根据路由协议动态生成动态路由表,随着网络运行状态变化而变化。

3.1 距离矢量路由算法

第一大类的算法称为距离矢量路由(distance vector routing)。它基于 bellman-Ford 算法。

这种算法的基本思路是:每个路由器都保存一个路由表,包含多行,每行对应网络中的一个路由器,每一行包含两部分信息,一个要到目标路由器,从那条线出去,另一个是到目标路由器的距离。

由此可以看出,每个路由器是知道全局信息的。那这个信息如何更新呢?每个路由器都知道自己和令居之间的距离,每过几秒,每个路由器都将自己所知的所有路由器的距离告诉令居,每个路由器也能从邻居那里得到相似的信息。

每个路由器根据新收集的信息,计算和其他路由器的距离,比如自己的一个令居距离目标路由器的距离为M,而自己距离邻居是 x,则自己距离目标路由器是 x+M。

此算法有以下两个问题
  1. 好消息传的快,坏消息传的慢。
  2. 每次发送的时候,要发送整个全局路由表。(网络大了更新负荷大。)

3.2 链路状态路由算法

第二大类算法是链路状态路由(link state routing),基于 dijkstra 算法。

这种算法的基本思路是:当一个路由器启动的时候,首先是发现令居,向令居 say hello,邻居都回复。然后计算和邻居的距离,发送一个 echo,要求马上返回,除以 2 就是距离。然后将自己和邻居之间的链路状态包广播出去,发送到整个网络的每个路由器。这样每个路由器都能够收到它和邻居之间的关系的信息。因而,每个路由器都能构建一个自己本地的完整的图,然后针对这个图使用 Dijkstra 算法,找到两点之间的最短距离。

此算法可以最快将损坏路由器消息广播出去。

4 动态路由协议

4.1 基于链路状态路由算法的 OSPF

OSPF(Open shortest Path First, 开放式最短路径优先)就是这样一个基于链路状态路由协议,广泛应用在数据中心的协议。由于主要用于数据中心内部,用于路由决策,因而成为内部网关协议(interior gateway protocol,简称 IGP)。

内部网关协议的重点是找到最短的路径。在一个组织内部,路径最短往往最优。当然有时候 OSPF 可以发现多个最短的路径,可以再这多个路径中进行负载均衡,这常常称为等价路由。这可以和接入层的负载均衡 LVS 结合实现高吞吐量的接入层设计。

4.2 基于距离矢量路由算法的 BGP

但是外网的路由协议,也即国家之间的有所不同,我们称之为外网路由协议(Border Gateway Protocol,简称 BGP)。

在网络世界,国家成为自治系统(Autonomous System)。自治系统分为几种类型:

  • Stub As:对外只有一个连接,这类 AS 不会传输其他的 AS 传输包。例如个人或小公司的网络。
  • Multihomed AS:可能有多个连接到其他的 AS,但是大多拒绝帮其他的 AS 传输包。例如一些大公司的网络。
  • Transit AS:有多个连接连接到其他的AS,并且可以帮助其他的 AS 传输包,例如主干网。
    每个自治系统都有边界路由器,通过它和外界建立联系。

BGP 又分为两类,eBGP 和 iBGP。一个用于 AS 之间,一个用于 AS 内部。

5 总结

  • 路由分为静态路由和动态路由,静态路由可以配置复杂的转发策略路由。
  • 动态路由主流算法有两种,距离矢量算法和链路状态算法。分别对应有 BGP 协议 和 OSPF 协议。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容

  • 版权声明:原创作品,谢绝转载!否则将追究法律责任。 OSPF路由协议 楔子 为了加强自己我打算好好玩玩网络。 OS...
    李伟铭MIng阅读 4,537评论 0 25
  • 五、因特网的路由选择协议 1.有关路由选择协议的几个基本概念 Ⅰ、理想的路由算法 路由表中的路由是怎样得出的呢?核...
    dmmy大印阅读 1,898评论 0 4
  • 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(面向连接还是无连接)曾引起了长期的争论,...
    srtianxia阅读 3,919评论 0 12
  • 小青蛙是在三年前落在这个水坑的,那时候它正打算换条新的路去看看,一不小心,却落在了老路上一个新出现的水坑。 小蜻蜓...
    藉寞阅读 267评论 3 1
  • 商之起源:殷契,母曰简狄,有娀氏之女,为帝喾次妃。三人行浴,见玄鸟堕其卵,简狄取吞之,因孕生契。 周之起源:周后稷...
    护南蛮校尉阅读 546评论 0 1