一、路由
1、路由表产生的类型
每一台主机都有自己的路由表,,也就是说,你必须要通过自己的路由表将主机的数据包转发到下一个路由器。发送出去后,该数据包就要通过下一个路由器的路由表来传送了,此时与你自己主机的路由表就没有关系啦,所以,如果网络上面的某一台路由器设置错误,那数据包的流向就会发生很大的问题。我们就需要通过traceroute来了解一下每个route的数据包流向。
那你自己主机的路由表到底有哪些部分呢?
[root@localhost redis-2.8.24]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.211.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.211.254 255.255.255.0 U 0 0 0 eth0
首先,我们得知道,在Linux系统下的路由表是由小网络排列到大网络的,例如上面的路由表当中,路由是由192.168.211.0/24-->169.254.0.0/16-->0.0.0.0/0(默认路由)来排列的。而当主机的网络数据包需要发送时,就会查阅上述的三个路由规则来了解如何将该数据包发送出去。你可能会觉得奇怪,为什么会有几个路由?其实路由表主要按下面几种情况来设计的。
依据网络接口产生的IP而存在的路由
例如192.168.211.0/24这个路由的存在是由于这台主机上面拥有192.168.211.128这个IP的关系。也就是说,主机上面有几个网络接口存在时,该网络接口就会存在一个路由,所以说,如果主机有两个网络接口时,例如192.168.211.128和192.168.212.128,那路由至少就会有
[root@localhost redis-2.8.24]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.212.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.211.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.211.254 255.255.255.0 UG 0 0 0 eth0
手动或默认路由(Default Route)
可以使用route这个命令手动给予额外的路由设置,例如那个默认路由(0.0.0.0/0)就是额外的路由。使用route命令时,最主要的一个概念是“你所规划的路由必须要是你的设备(如etho)或IP可以直接沟通(Broadcast)的情况”才行。举例来说,依上述的环境来看,环境里面仅有192.168.211.128及192.168.212.128,那如果想要连接到192.168.213.254这个路由器时,可移执行下面的这个命令:
[root@localhost redis-2.8.24]# route add -net 192.168.213.0 netmask 255.255.255.0 gw 192.168.213.254
SIOCADDRT: No such process
系统响应没有办法连接到该网络,因为我们的网络接口与192.168.213.0/254根本就没有关系。那如果192.168.213.254真的是与我们的实体网络连接,并且与我们的eth0连接在一起,那其实应该这样做:
[root@localhost redis-2.8.24]# route add -net 192.168.213.0 netmask 255.255.255.0 dev eth0
[root@localhost redis-2.8.24]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.211.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.213.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.211.254 255.255.255.0 UG 0 0 0 eth0
这样你的主机就会直接用eth0这个设备去尝试连接192.168.213.254了。另外,上面路由输出重点其实是那个“Flags 的 G”,因为那个G代表使用外部的设备作为你的Gateway的意思。而那个Gateway(192.168.211.254)必须要在我们已存在的路由环境中。
动态路由
除了上面两种可以直接使用命令的方法来增加路由规则之外,还有一种通过路由器 与路由器之间的协商以实现动态路由的环境,不过,这就需要额外的软件的支持了,例如:zebra或Centos上面的Quagga这几个软件。
事实上,Linux的路由规则是通过内核来实现的,所以这些路由表的规则都是在内和功能内,也就是运行在内存。
2、一个网卡绑多个IP:IP Alias的测试用途
etho:0这个设备可以在原本的eth0上面模拟出一个虚拟接口,使同一个网卡具有多个IP,具有多个IP的功能就被称为IP Alias。而这个eth0:0的设备可以通过ifconfig或IP这两个命令来实现
测试用
为什么说测试用呢?举例来说,现在使用IP路由器的朋友很多,而IP
本文转自aaa超超aaa 51CTO博客,原文链接:http://blog.51cto.com/10983441/1740008