1、路由表如果一个主机有多个网络接口,当向一个特定的IP地址 发送分组时,它怎样决定使用哪个接口呢?答案就在路由表中。来看下面的例子: 目的子网掩码网关标志接口 201.66.37.0255.255.255.0201.66.37.74Aeth0 201.66.39.0255.255.255.0201.66.39.21Aeth1主机将所有目的地为网络201.66.37.0内主机(201.66.37.1-201.66.37.254)的数据通过接口eth0 (IP地址为201.66.37.74)发送,所有目的地为网络201.66.39.0内主机的数据通过接口eth1(IP地址为201.66.39.21)发送。标志A表示该路由状态为 “active”(即激活状态)。对于直接连接的网络,一些软件并 不象上例中一样给出接口的IP地址,而只列出接口。 此例只涉及了直接连接的主机,那么目的主机在远程网络中如何呢?如果你通过 IP地址为201.66.37.254的网关连接到网络 73.0.0.0,那么你可以在路由表中增加这样一项: 目的掩码网关标志接口 73.0.0.0255.0.0.0201.66.37.254AGeth0此项告诉主机所有目的地为网络73.0.0.0内主机的分组 通过201.66.37.254路由过去。标志S(static) 表示此项通过静态指定把分组导向外部网关。类似的,也可以定义通过网关到达特定主机的路由,也标志 为S: 目的掩码网关标志接口 91.32.74.21255.255.255.255201.66.37.254ASeth0下面是路由表的基础,除了特殊表 项之外: 目的掩码网关标志接口 127.0.0.1255.255.255.255127.0.0.1A Slo0 default0.0.0.0201.66.37.254ASeth1第一项是loopback接口,用于主机给自己发送数据,通 常用于测试和运行于IP之上但需要本地通信的应用。这是到特定地址127.0.0.1的主机路由(接口lo0是IP协议栈内部的“假”网卡,在RouterOS中)。第二项十分有意思,为了防止在主机 上定义到因特网上每一个可能到达网络的路由,可以定义一个缺省路由,如果在路由表中没有与目的地址 相匹配的项,该分组就被送到缺省网关。多数主机简单地通过一个网卡连接到网络,因此只有通过一个路 由器到其它网络,这样在路由表中只有三项:loopback项、本地子网项和缺 省项(指向路由器)。 2、重叠路由假设在路由表中有下列重叠项: 目的掩码网关标志接口 1.2.3.4255.255.255.255201.66.37.253ASeth0 1.2.3.0255.255.255.0201.66.37.254ASeth0 1.2.0.0255.255.0.0201.66.37.253ASeth1 default0.0.0.0201.66.39.254ASeth1之所以说这些路由重叠是因为这四个路由都含有地址1.2.3.4,如果向1.2.3.4发送数据,会选择哪条路由呢?在这种情况下,会选择第一条路由,通过网关201.66.37.253。原则是选择具有最长(最精确)的子网掩码。类似的,发往1.2.3.5的数据选择第二 条路由。 注意:这条原则只适用于间接路由(通过网关)。把两个接口定义在同一子网在很多软件实现上是非法的。例如下面的设置通常 是非法的(不过有些软件将尝试在两个接口进行负载平衡): 接口IP地址子网掩码 eth0201.66.37.1255.255.255.0 eth1201.66.37.2255.255.255.0对于重叠路由的策略是十分有用的,它允许缺省路由作为目的为0.0.0.0、子网掩码为0.0.0.0的路由进行工作,而不需要作为路由软件的一个特殊情况来实现。 3、静态路由回头看看我们已建立的路由表,已有了六个表项: 目的掩码网关标志接口 127.0.0.1255.255.255.255127.0.0.1ASlo0 201.66.37.0255.255.255.0201.66.37.74 ASeth0 201.66.39.0255.255.255.0201.66.39.21ASeth1 default0.0.0.0201.66.39.254ASeth1 73.0.0.0255.0.0.0201.66.37.254ASeth0 91.32.74.21255.255.255.255201.66.37.254ASeth0该网络图示如下
这些表项分别是怎么得到的呢?第一个是当路由表初始化 时由路由软件加入的,第二、三个是当网卡绑定IP地址时自动创建的,其余 三个必须手动加入。
|