Linux系统中路由配置介绍
子网
IP地址由两部分组成,即网络号(Network ID)和主机号(Host ID)。
网络号标识的是Internet上的一个子网,而主机号标识的是子网中的某台主机。
子网掩码用来判断任意两个IP地址是否属于同一子网络。
同一网络号下的主机可以直接互通,数据包借助ARP协议用MAC地址传递。
不同网络号下的主机通信,数据包需要通过网关(Gateway)转发。
路由表
linux 主机通过路由表决定数据包的转发配置。
通过route -n命令可以查看当前路由设置情况,如下:
[root@SecFox-NBA ~]# route -n
Kernel IP routing table
Destination    Gateway        Genmask      Flags  Metric  Ref    Use Iface
10.70.25.0      0.0.0.0        255.255.255.0  U    0      0        0 eth0
10.70.10.0      0.0.0.0        255.255.255.0  U    0      0        0 eth1
169.254.0.0    0.0.0.0        255.255.0.0    U    0      0        0 eth1
0.0.0.0        10.70.10.252    0.0.0.0        UG    0      0        0 eth1
上面的路由表显示,该主机配置了10.70.25.0、10.70.10.0两个网段的路由;并且配置了默认网关10.70.10.252。
主机发送数据包时,按下面的流程进行判断:
1. 当主机要发送IP包时,先查阅IP包头的目标IP地址
2. 如果目标IP与本机IPNetwork_ID相同时(同一子网),主机参考自己的ARP记录,直接利用MAClinux系统地址传递信息
3. 如果不在同一子网,再分析自己的路由表,查是否有相符的路由设置;
如果到了,就将数据包发往该路由配置的网关。
如果没有到,就直接将该IP封包送到默认网关(default gateway)上去。
路由表影响因素
有三个途径可以往路由表中添加信息:
1. 网卡配置信息
    IPADDR=10.70.25.99
NETMASK=255.255.255.0
GATEWAY=10.70.10.252
    上面的配置会根据IPADDR和NETMASK生成到网络号10.70.25.0的路由规则,网关使用10.70.10.252。
10.70.25.0      0.0.0.0        255.255.255.0  U    0      0        0 eth0
这一点类似于windows下的tcp/ip属性配置
2. ip route命令手动添加、删除
ip route add 10.32.185.0/24 via 10.32.184.1 dev eth0 src 10.32.184.60
    ip route命令的添加的路由,不能永久保存,在系统重启后会丢失。可以将ip route命令添加到rc.local文件中,达到自动配置的目的。
3. 静态路由配置
配置静态路由可以永久保存路由信息。网络启动时,加载/etc/sysconfig/static-routes文件中配置的路由信息,配置信息以any打头,如
# 指定网关地址,必须保证网关可达
any net 10.70.10.0 netmask 255.255.255.0 gw 10.70.10.252
# 指定网卡
any net 10.70.5.0 netmask 255.255.255.0 dev eth0
还有另一文件可以配置静态路由/etc/sysconfig/network-scripts/route-interface,例如,可将eth0的路由信息配置到/etc/sysconfig/network-scripts/route-eth0中。但为了防止涉及过多配置文件,这里不使用这个配置。
需要注意路由表中网络号的排列是按照子网范围从小到大的顺序排列的。
例如
eth0配置如下
    IPADDR=10.70.25.12
NETMASK=255.255.0.0
eth1配置如下
    IPADDR=10.70.10.99
NETMASK=255.255.255.0
那么生成路由表的顺序为(route -n)
Destination    Gateway        Genmask    Flags Metric  Ref    Use Iface
10.70.10.0      0.0.0.0        255.255.255.0  U    0      0        0 eth1
10.70.0.0      0.0.0.0        255.255.0.0    U    0      0        0 eth0
但是如果两块网卡配置到相同的子网段,是没有意义的,这将导致处于路由表后面的网卡没有机会被访问到。例如
Destination    Gateway        Genmask      Flags Metric  Ref    Use Iface
10.70.0.0      0.0.0.0        255.255.0.0      U    0      0        0 eth0
10.70.0.0      0.0.0.0        255.255.0.0      U    0      0        0 eth1
eth0、eth1映射到同一网段,那么向eth1发送数据包,永远收不到返回包,因为返回包首先匹配到了eth0的路由选项,从eth0这个网卡发送出去了。
路由配置
linux会将最后一块网卡配置的网关作为默认网关。那么,如果需要默认网关生效,就需要正确配置最后一块网卡的网关信息。
在进行路由配置时,只要配置网卡对应到相应子网即可。
可提供的界面操作
1. 查看路由表(route -n命令)
    页面显示route -n命令结果
2. 查看、修改网卡配置信息
3. 查看、修改静态路由配置(读写文件/etc/sysconfig/static-routes
如果需要添加其它路由信息,可以通过文本编辑框修改路由配置
   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。