路由协议

忧郁天使 2020-01-17

配置路由

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

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

目的网络:这个网络要去哪里?

出口设备:这个包要从哪个口出去,因为路由器进出都是多个网口的

下一跳网关:从哪个口出去还要确定下一个路由器的地址

通过route  /  ip route可以查看当前的路由配置

路由协议

此命令可以看https://www.cnblogs.com/peida/archive/2013/03/05/2943698.html

配置多运营商的路由

家里从运营商那儿拉了两根网线。这两根网线分别属于两个运行商。一个带宽大一些,一个 带宽小一些。这个时候,我就不能买普通的家用路由器了,得买个高级点的,可以接两个外网的。

家里的网络呢,就是普通的家用网段 192.168.1.x/24。家里有两个租户,分别把线连到路由器上。IP 地 址为 192.168.1.101/24 和 192.168.1.102/24,网关都是 192.168.1.1/24,网关在路由器上。

家里的网段是私有网段,出去的包需要 NAT 成公网的 IP 地址,因而路由器是一 个 NAT 路由器。

两个运营商都要为这个网关配置一个公网的 IP 地址。如果你去查看你们家路由器里的网段,基本就是图中画的样子。

路由协议

运营商 1 给路由器分配的地址是 183.134.189.34/32,而运营商网络里面的网关是 183.134.188.1/32。有的是 /30 的,也就是分了一个特别小的网段。运营商 2 给路由器分配的地址是 60.190.27.190/30,运营商网络里面的网关是 60.190.27.189/30。

路由协议

这个配置的意思就是

1.如果去运营商二,就走 eth3;

2.如果去运营商一呢,就走 eth2;

3.如果访问内网,就走 eth1;

4.如果所有的规则都匹配不上,默认走运营商一,也即走快的网络。

但是问题来了,租户 A 不想多付钱,他说我就上上网页,从不看电影,凭什么收我同样贵的网费啊?没 关系,咱有技术可以解决。

先添加一个table

echo 200 chao >> /etc/iproute2/rt_tables

添加规则

ip rule add from 192.168.1.101 table chao

查看ip rule,可以看出chao规则已经添加了,而且192.168.0.101的都包都查看这个路由规则

# ip rule ls
0: from all lookup local
32765: from 10.0.0.10 lookup chao
32766: from all lookup main
32767: from all lookup default

现在就是设置规则内容

# ip route add default via 60.190.27.189 dev eth3 table chao
# ip route flush cache

以上都是静态路由,设置并非很简单,因此不实用。

动态路由算法

1. 距离矢量路由算法

这种算法的基本思路是,每个路由器都保存一个路由表,包含多行,每行对应网络中的一个路由器,每 一行包含两部分信息,一个是要到目标路由器,从那条线出去,另一个是到目标路由器的距离。 由此可以看出,每个路由器都是知道全局信息的。那这个信息如何更新呢?每个路由器都知道自己和邻 居之间的距离,每过几秒,每个路由器都将自己所知的到达所有的路由器的距离告知邻居,每个路由器 也能从邻居那里得到相似的信息。

问题就是如果有一个网关挂了,整个网络传播这个信息会很慢。

第二个问题是每次发送的时候,要发送整个全局路由表。网络大了,谁也受不了。

2. 链路状态路由算法

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

动态路由协议

1. 基于链路状态路由算法的 OSPF

开放式最短路径优先

内部网关协议的重点就是找到最短的路径。在一个组织内部,路径最短往往最优。当然有时候 OSPF 可 以发现多个最短的路径,可以在这多个路径中进行负载均衡,这常常被称为等价路由。

路由协议

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

Border Gateway Protocol

对于网络包同样,每个数据中心都设置自己的 Policy。例如,哪些外部的 IP 可以让内部知晓,哪些内部 的 IP 可以让外部知晓,哪些可以通过,哪些不能通过。这就好比,虽然从我家里到目的地最近,但是不 能谁都能从我家走啊!

自治系统 autonomous system

Stub AS:对外只有一个连接。这类 AS 不会传输其他 AS 的包。例如,个人或者小公司的网络。

Multihomed AS:可能有多个连接连到其他的 AS,但是大多拒绝帮其他的 AS 传输包。例如一些大 公司的网络。

Transit AS:有多个连接连到其他的 AS,并且可以帮助其他的 AS 传输包。例如主干网。

小结

路由分静态路由和动态路由,静态路由可以配置复杂的策略路由,控制转发策略;

动态路由主流算法有两种,距离矢量算法和链路状态算法。基于两种算法产生两种协议,BGP 协议和 OSPF 协议。

相关推荐