图1
(注:图中省略了可能存在的交换层设备)
如图一所示,LAN 1为192.168.0.0这个标准C类网段,路由器R1为原有路由器,它的WAN口接入宽带,LAN口(IP为192.168.0.1)挂着192.168.0.0网段(子网掩码255.255.255.0的C类网)主机和路由器R2(新添加)的WAN口(IP为192.168.0.100)。R2的LAN口(IP为192.168.1.1)下挂着新加入的LAN 2这个192.168.1.0的C类不一样网段的主机。
若是按照共享Internet的方式简单设置,此时应将192.168.0.0的主机网关都指向R1的LAN口(192.168.0.1),192.168.1.0网段的主机网关指向R2的LAN口(192.168.1.1),那么只要R2的WAN口网关指向192.168.0.1,192.168.1.0的主机就都能访问192.168.0.0网段的主机并能经过宽带链接上网。这是由于前面所说的宽带路由器中一条默认路由在起做用,它将全部非本网段的目的IP包都发到WAN口的网关(即路由器R1),再由R1来决定信息包应该转发到它本身连的内网仍是发到外网去。可是192.168.0.0网段的主机网关确定要指向192.168.0.1,而R1这时并不知道192.168.1.0这个LAN 2的正确位置,那么此时只能上网以及本网段内的互访,不能访问到192.168.1.0网段的主机。这时就须要在R1上指定一条静态路由,使目的IP为192.168.1.0网段的信息包能转发到路由器R2去。
一条静态路由条目通常由3部分组成:1.目的IP地址或者叫信宿网络、子网;2.子网掩码;3.网关或叫下一跳。
例一中R1上设定的静态路由条目就应该为:目的IP地址192.168.1.0(表明1.x这个网段),子网掩码255.255.255.0(由于是C类网段),下一跳192.168.0.100。如图2,此图为TP-LINK R410中的静态路由表配置项,保存后便可生效。若是是Cisco的路由器,则在全局配置模式下键入命令:Router(config)# ip route 192.168.1.0 255.255.255.0 192.168.0.100。
注意:其中的网关IP必须是与WAN或LAN口属于同一个网段。那条默认路由写出来就是:目的IP为 0.0.0.0,子网掩码0.0.0.0,下一跳为WAN口上的默认网关,有时咱们也称它为“8个0的默认路由”。另外,若是目的IP是一个具体的主机IP(如192.168.1.2),那么路由条目应为:目的IP 192.168.1.2,子网掩码255.255.255.255,下一跳或网关192.168.0.100。
图2
使用此种链接方式,还能够方便的使用路由器内置的访问控制列表来设置LAN 2下主机的访问权限,这对企业用户而言仍是很方便的。宽带路由器中的“防火墙设置”其实就是一个简化的访问控制列表,即ACL- Access Control Lists。如:但愿局域网LAN 2中IP地址为192.168.1.7的计算机不能收发邮件,IP地址为192.168.1.8的计算机不能访问企业内部位于LAN 1的ERP服务器(假设其IP为192.168.0.10),对局域网中的其它计算机则不作任何限制,这时您须要指定以下的数据包过滤表,如图:
图3
例二:两台平级并连的路由器,下挂子网中主机须要互相通讯的环境
这种状况,两台平行并连的路由器上层应该还有一个总的出口网关,而这个网关有可能因某种缘由不便设置路由,而此时网络中存在3个不一样的网段。
地瓜:我家是小区共享型的宽带接入,我本身用一台宽带路由器构建了一个家庭局域网以共享Internet,正好邻居也跟我同样用宽带路由器构建了另外一个家庭局域网。而咱们各自局域网内的主机之间却不能互相通讯,根本ping不通,这是怎么回事?
大虾:这种状况下整个小区其实就是一个大的局域网,主机不能互通的缘由,其实跟例一中LAN 1不能ping通LAN 2的缘由同样,都是由于上层的默认网关不知道目的IP所属网段的正确位置,没法作有效转发所致。这种环境的典型示意图以下:
图4
图中内网网关就是小区的网关,R1和R3分别为两户的宽带路由器,它们之间通常经过楼层的接入交换机和小区的骨干交换机链接在一块儿,此图省略了这一部分。图4的这种状况,只要在网关设备上按例一的方式添加两条路由就能实现两个子网中主机的互访,并且其10.0.0.0这个A类网段中存在的主机也都能经过这两条路由访问到R1和R3下的内网机。可是若是是小区的网关设备,那确定是不会让用户随便配置路由条目的,并且你应该也不想小区内的全部用户都能直接访问到你的内网主机。这时,咱们能够在R1和R3上各添加一条路由指向对方来实现R1和R3下主机直接互访的效果。
在R1上:目的IP地址172.16.0.0,子网掩码255.255.0.0(B类网段),下一跳10.1.1.3。
在R3上:目的IP地址192.168.0.0,子网掩码255.255.255.0(C类网段),下一跳10.1.1.2。
注:有些新型小区中使用了P-VLAN技术,这种网络的状况比较复杂,这样上面简单的静态路由设置有可能没法达到目的。
例三:既串且并,网络中有多级路由设备的环境。
这种状况能够说是例一和例二两种应用的整合和延伸,看似复杂其实简单。
地瓜:若是像例二中那样的环境中,我家里的局域网再添置一个路由器,下挂另外一个网段以作扩展,那要怎么设置呢?
大虾:你说的这种网络结构,确实就是将例一和例二合在一块儿了。这时一共有4个网段并存,咱们的设置是要让两户家庭局域网下的3个子网内主机可以互通,而此时小区的网关固然仍是不能去设置的。其拓扑示意图以下:
图5
能够看到图5就是将图1和图4整合在一块儿了。既然拓扑图是例1、例二的结合,那将例1、例二中的路由条目加在一块儿是否是就能够了呢?固然也不是这么简单,若是只是配置了前两例的路由条目,R3下的主机是没法直接访问到R2下的192.168.1.0这个子网的。因此在R3上还要加一条到192.168.1.0这个子网的路由。静态路由条目配置以下:
R1:目的IP地址192.168.1.0,子网掩码255.255.255.0,下一跳192.168.0.100。
目的IP地址172.16.0.0,子网掩码255.255.0.0,下一跳10.1.1.3。
R3:目的IP地址192.168.0.0,子网掩码255.255.255.0,下一跳10.1.1.2。
目的IP地址192.168.1.0,子网掩码255.255.255.0,下一跳10.1.1.2。
地瓜:为什么R3中第二条路由的下一跳不是直接指向R2,而是也指向R1呢?
大虾:就知道你会问这个,这个问题要从路由器间通讯的原理来说解。路由器是经过ARP解析协议来得到下一跳路由器的MAC地址,而ARP基于广播,在通常状况下路由器是不会转发广播,也就是广播包没法过路由。因此对于路由器R3来说,R1和R3才是同等级的,它只能看到R1,不能看到R2,这就是为什么在例一的注意中提到:“其中的网关IP必须是与WAN或LAN口属于同一个网段”的缘由。而文中所说的静态路由条目组成的第3部分:网关又叫下一跳,而不叫下两跳、下三跳也是这个意思。总之,在通常状况下,下一跳路由的IP地址确定要跟这个路由器的某个接口是在同一个网段的。
本篇文章下面的部分将讲解关于路由汇总(或叫路由概括)的知识。
上面例三中R3上的静态路由条目,其实能够写成一条:目的IP地址192.168.0.0,子网掩码255.255.0.0(再也不是C类子网的掩码),下一跳10.1.1.2。这时192.168.0.0,掩码255.255.0.0这个网段不能称为C类或B类的子网了,因为它超过了自己C类网段的范围,因此能够称它是一个超网。这个网段包含了192.168.0.0~192.168.255.0全部的子网。也就是说,这条静态路由会使全部目的IP在这个范围内的信息包,都发给10.1.1.2的路由器R1。将多条子路由条目汇总成一条都包含其内的总路由条目,这就是路由汇总或叫路由概括。路由器在检查计算路由时是比较消耗资源的,路由条目越多,路由表越长,则这个过程耗时越多,因此经过路由汇总减小路由表的长度,对提升路由器工做效率是颇有帮助的。虽然在举例中的这种只有几个路由器的小网络中起到的做用有限,可是若是是几10、几百甚至上千、上万个路由器的大型网络中,路由概括起到的做用就很是明显了,能够说不使用路由概括是不可想象的。
例四:
图6
可能细心的读者已经发现,例三最后的那条概括路由虽然包含了R1下全部的两个子网(192.168.0.0和192.168.1.0),可是也包含了R1下实际上并不存在的一些子网(192.168.2.0~192.168.255.0)。若是在整个局域网中别的路由器下还存在这些子网(如图6,R4下存在192.168.2.0子网),那么路由就会出错了,因此这条汇总路由是一条不精确的汇总。
咱们都知道IPv4的地址是由4段8位的二进制数组成,一部分是网络位,一部分是主机位。其对应的子网掩码网络位部分就是全1的二进制数,而主机位就是全0的二进制数。每一个信息包在过路由器时会检查其目的IP,和路由表中路由条目的子网掩码作“与”运算,并与路由条目中目的IP进行比对,相同的就按照这条路由规则转发,不相同的就再检查比对下一条。能够看出咱们作的汇总路由的操做,就是将多条路由条目中目的IP相同的网络位提取出来写成一条。而例三中的汇总路由之因此不精确就是由于相同部分未能所有提出来。
如例三中,R3上的第一条:目的IP为192.168.0.0;第二条:目的IP为192.168.1.0。咱们只提取了前面的两段192.168,然后面的第三段网络位中仍是有相同的部分的。192.168.0.0中第三段写成二进制数为00000000(8位0),182.168.1.0中第三段写成二进制数为00000001(7位0,1位1),那么它们的前7位是相同的,在对应的子网掩码位置上就应该是11111110(7位1,1位0),合成十进制为254。因此这条汇总路由应该写成:目的IP为192.168.0.0,子网掩码255.255.254.0,下一跳10.1.1.2。这样,这条汇总路由只包含192.168.0.0和192.168.1.0两个子网,是一条精确的汇总路由。如图6中,R3下172.16.0.0的主机发送到192.168.2.0网段的信息包,其第三段网络位写成二进制为00000010(前6位0),就不包含在这条精确的汇总路由内了。
这时咱们在R3上静态路由条目应该为:
1.目的IP地址192.168.0.0,子网掩码255.255.254.0,下一跳10.1.1.2。
2.目的IP地址192.168.2.0,子网掩码255.255.255.0,下一跳10.1.1.4。
咱们在进行路由汇总时应该尽可能使用精确的汇总条目,本着能汇总的条目就汇总,不能精确汇总的条目就不汇总的原则。这样在网络之后的扩展和变更时能更有条理的增改路由表,减小出错的概率。
总结:
静态路由由于其设置简单明了,在不常变更的网络中稳定性好,排错也相对容易,因此在中小企业甚至一些大型的园区网中也都使用静态路由,它在实际应用中是很常见的,属于网络工做人员必会的基础知识。如文中所述,静态路由的设置原理是比较简单的,但能够说它是学习各类路由协议的基础,属于学习路由知识时必学的部分。另外,在越复杂越大的网络中,汇总路由的效果就越显著,而能不能进行有效的路由汇总、汇总的效率如何,都跟网络结构中IP地址网段的分布有密切关系。IP地址的部署越连续而有条理,则路由汇总越容易也越有效,因此咱们在部署网络时应该重视体系化编址。(注:在子网环境中,当网络地址是以2的指数形式的连续区块时,路由概括是最有效的。)