路由是什么

路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动。路由发生在OSI网络参考模型中的第三层即网络层。
路由引导分组转送,经过一些中间的节点后,到它们最后的目的地。作成硬件的话,则称为路由器。路由通常根据路由表——一个存储到各个目的地的最佳路径的表——来引导分组转送。因此为了有效率的转送分组,创建存储在路由器存储器内的路由表是非常重要的。
路由与桥接的不同,在于路由假设地址相似的节点距离相近。这使得路由表中的一项纪录可以表示到一群地址的路径。因此,在大型网络中,路由优于桥接,且路由已经成为互联网上查找路径的最主要方法。
较小的网络通常可以手动设置路由表,但较大且拥有复杂拓扑的网络可能常常变化,若要手动创建路由表是不切实际的。尽管如此,大多数的公共交换电话网络(PSTN)仍然使用预先计算好的路由表,在直接连线的路径断线时才使用预备的路径;见公共交换电话网路由。“动态路由”尝试按照由路由协议所携带的信息来自动创建路由表以解决这个问题,也让网络能够近自主地避免网络断线或失败。
动态路由目前主宰了整个互联网。然而,设置路由协议常须要经验与技术;目前的网络技术还没有发展到能够全自动地设置路由。

静态路由和动态路由是什么?

静态路由
静态路由是由管理员在路由器中手动配置的固定路由,路由明确地指定了包到达目的地必须经过的路径,除非网络管理员干预,否则静态路由不会发生变化。静态路由不能对网络的改变作出反应,所以一般说静态路由用于网络规模不大、拓扑结构相对固定的网络。
静态路由特点

  1. 它允许对路由的行为进行精确的控制;
  2. 减少了网络流量;
  3. 是单向的;
  4. 配置简单。

在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准。
动态路由
动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。是基于某种路由协议来实现的。常见的路由协议类型有:距离向量路由协议(如RIP)和链路状态路由协议(如OSPF)。路由协议定义了路由器在与其它路由器通信时的一些规则。
动态路由协议一般都有路由算法。其路由选择算法的必要步骤

  1. 向其它路由器传递路由信息;
  2. 接收其它路由器的路由信息;
  3. 根据收到的路由信息计算出到每个目的网络的最优路径,并由此生成路由选择表;
  4. 根据网络拓扑的变化及时的做出反应,调整路由生成新的路由选择表,同时把拓扑变化以路由信息的形式向其它路由器宣告。

动态路由适用于网络规模大、拓扑复杂的网络。
动态路由特点:

  1. 无需管理员手工维护,减轻了管理员的工作负担。
  2. 占用了网络带宽。
  3. 在路由器上运行路由协议,使路由器可以自动根据网络拓朴结构的变化调整路由条目;

根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里的自治域指一个具有统一管理机构、统一路由策略的网络。自治域内部采用的路由选择协议称为内部网关协议,常用的有RIP、OSPF;外部网关协议主要用于多个自治域之间的路由选择,常用的是BGP和BGP-4。

route命令简介

route命令用于显示和操作IP路由表。
在数据包没有有效传递的情况下,可以利用route命令查看路由表;如果traceroute命令揭示出一条异常或低效的传输路径,则可以用route命令来确认为何选择该路径,而且可以配置一个更有效的路由。
在命令行下输入route -n 或 netstat -rn,就可以打印本机的路由表,我的如下:

  1. Destination Gateway Genmask Flags Metric Ref Use Iface
  2. 192.168.161.0 192.168.161.1 255.255.255.0 UG 0 0 0 em1
  3. 192.168.161.0 0.0.0.0 255.255.255.0 U 0 0 0 em1
  4. 192.168.61.0 0.0.0.0 255.255.255.0 U 0 0 0 em2
  5. 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 em1
  6. 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 em2
  7. 192.168.0.0 192.168.61.1 255.255.0.0 UG 0 0 0 em2
  8. 0.0.0.0 192.168.61.1 0.0.0.0 UG 0 0 0 em2
  9. 0.0.0.0 192.168.161.1 0.0.0.0 UG 0 0 0 em1

PS:我的电脑是双网卡,分别在192.168.61.0和192.168.161.0两个网段

1、字段解释

  • Destination: 目的网段,最长匹配192.168.161.0 > 192.168.0.0 > 0.0.0.0,0可匹配任意数值。
  • Gateway: 所走网关,0.0.0.0表示无网关,即与本机IP同一网段,不需要经过网关(同一个局域网内2台主机通信不需要经过网关)。
  • Genmask: 掩码。
  • Flags: 标志,U - Up表示有效,G - Gateway表示连接路由,若无这个字段表示直连目的地址,H - Host表示目标是具体主机,而不是网段。

    2、路由匹配规则

    路由表的作用就是指定下一级网关,那么根据路由表怎么确定下一级网关,这里就有一个匹配过程,匹配规则。

  • 优先级匹配

  • 最长匹配

    3、实例讲述

    还是针对上面的路由表,为了方便表述,加上条目号字段。

    1. 条目号 Destination Gateway Genmask Flags Metric Ref Use Iface
    2. 1 192.168.161.0 192.168.161.1 255.255.255.0 UG 0 0 0 em1
    3. 2 192.168.161.0 0.0.0.0 255.255.255.0 U 0 0 0 em1
    4. 3 192.168.61.0 0.0.0.0 255.255.255.0 U 0 0 0 em2
    5. 4 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 em1
    6. 5 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 em2
    7. 6 192.168.0.0 192.168.61.1 255.255.0.0 UG 0 0 0 em2
    8. 7 0.0.0.0 192.168.61.1 0.0.0.0 UG 0 0 0 em2
    9. 8 0.0.0.0 192.168.161.1 0.0.0.0 UG 0 0 0 em1
  • 192.168.61.35 - 匹配条目3,即不需要经过网关。

  • 192.168.60.150 - 匹配条目6,需要经过网关192.168.60.1。
  • www.baidu.com - 匹配条目7,这里需要说明下为何不匹配8?这是我实践的结果,后加的默认网关会在列表前面,即优先匹配。这个规则应该用于所有Destination一致的情况。
  • 192.168.161.113 - 匹配条目1,不是匹配条目2。

    route命令操作

  1. 添加路由。

    1. route add -net 192.168.104.0 gw 10.80.67.247 netmask 255.255.255.0 dev eth0
  2. 删除路由。

    1. route del -net 192.168.104.0 gw 10.80.67.247 netmask 255.255.255.0 dev eth0

    参考

    简书https://www.jianshu.com/p/a1ab0b30f42b