共计 2756 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章将为大家详细讲解有关如何解决 redhat6.5 静态路由添加问题,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
首先了解一下 Route 命令。它是用于操作基于内核的 ip 路由表,它的主要作用是创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如 eth0。当使用 add 或者 del 参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。
1、显示当前路由
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.14.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 172.16.14.254 0.0.0.0 UG 0 0 0 eth0
2、route 的一些基本操作
路由的添加
针对一个网段
#route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
针对一个主机
#route add -host 192.168.100.1 gw 10.224.0.251
Linux 路由的删除
# route del -net 192.168.10.0 netmask 255.255.255.0 dev eth0
设置默认 Linux 路由
# route add default gw 192.168.10.30
删除默认路由
# route del (default) gw 192.168.10.30
说明:gw 表示后面接的是一个 IP 地址,而不是 dev。
注:
linux 在加载网卡配置文件的时候是先加载 eth0, 再加载 eht1 的,这样,如果 eth2 设置了 gateway 项,则会覆盖掉 eth0 中的 gateway 设置,因此解决方法就是删除 eth2 的 gateway 设置,文件位置在 /etc/sysconfig/networking/devices 目录下,删除 eth2 中的 gateway 设置。
二:在 linux 下设置永久路由的方法:
1. 在 /etc/rc.local 里添加
方法:
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.2.254
2. 在 /etc/sysconfig/network 里添加到末尾
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev
3./etc/sysconfig/static-routes : (没有 static-routes 的话就手动建立一个这样的文件)
any net 192.168.3.0/24 gw 192.168.3.254
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129
4. 开启 IP 转发:
# echo 1 /proc/sys/net/ipv4/ip_forward (临时)
# vi /etc/sysctl.conf — net.ipv4.ip_forward=1 (永久开启)
这里并没有错误的地方,只不过之前没有接触对这些参数没什么想法,这次正好研究了下,大概了解了下没个参数的意思。
首先从最简单的是 route add 方法:
route add 这个是添加路由的命令,这个没什么好说的,然后是后面的 -host 和 net 参数,根据紧跟参数后面的信息可以发现 host 指的是添加一个主机到路由中,net 是添加一个网段到路由中。在后面的参数是 dev 和 gw,字面理解加上后面紧跟的值判断,dev 表示这个 host 或者这段 net 走的是那个网口,gw 是 gateway,自然是通过哪个网关了。对这里为何指定网口或者指定网关都行呢,我的认识是这样的,网口上配置有网关的信息,指定的网口其实最终还是去读取这个网口对应的网关信息,等效于指定 gw 参数。不过指定网口一般是由于有多个网络环境的情况,如果网口没有指定网关,会去读取默认的网关,所以这里一般要求把网口的网关信息配置上去,在 linux 下很多时候网关信息并不是配置在网口的配置文件,比如:/etc/sysconfig/network-scripts/ifcfg-eth0 文件里面,而是在 /etc/sysconfig/network 这里面,所以在用 dev 参数的时候需要小心这点,尽可能通过指定 gw 的方式。
为什么会介绍到 route add 方法,因为后面会有用到。现在回到主题,关于 static-routes 的设置。网上一般的都是写着:
any net 192.168.3.0/24 gw 192.168.3.254
设置的都是整个网段的,但如果是单个主机怎么设置呢?同时从厂家那边给了一个脚本是:
eth0 x.x.x.x netmask 255.255.255.192 gw x.x.x.x
看上去也很对的样子,但是执行发现 netstat -an 里面看不到添加的信息,完全不行。
然后我们在看下 static-routes 这个文件的作用,根据网上的说法,static-routes 其实在被 network 这个脚本调用的,打开这个脚本:
/etc/rc.d/init.d/network
里面有写到:
# Add non interface-specific static-routes.
if [-f /etc/sysconfig/static-routes]; then
grep ^any /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
fi
network 在执行的时候到 static-routes 里面寻找 any 开头的行,然后执行
/sbin/route add -$args 相当于手动执行了 route add 脚本,那后面事情就简单了,回到了手动执行的方式,根据前面的说明,正确的脚本就是:
any host 10.0.0.10 gw 192.168.1.1
network 执行的时候把 any 去掉,获取后面的参数:host 10.0.0.10 gw 192.168.1.1
然后执行 route add -host 10.0.0.10 gw 192.168.1.1
注意这里 host 前面的 - 是 network 自带的,不需要配置到 static-routes 文件中。
关于“如何解决 redhat6.5 静态路由添加问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。