概述
在项目环境中,服务器存在多个生效的网卡配置,需要允许指定的网卡访问特定的网段。
处理办法
route命令(临时生效)
命令介绍
add 增加路由
del 删除路由
-net 设置到某个网段的路由
-host 设置到某台主机的路由
gw 出口网关的IP地址
dev 出口网关的物理设备名
查看路由信息
$ route -n
$ ip route show | column -t
添加到主机的路由
$ route add -host 10.62.1.126 dev eth0
$ route add -host 10.62.1.126 gw 10.62.1.1
添加到网络的路由
route add -net 10.62.1.126 netmask 255.255.255.0 eth0
route add -net 10.62.1.126 netmask 255.255.255.0 gw 10.62.1.1
route add -net 10.62.1.126 netmask 255.255.255.0 gw 10.62.1.1 eth1
route add -net 10.62.1.0/24 eth1
删除路由
route del -host 10.62.1.11 dev eth0
route del -net 10.62.1.126 netmask 255.255.255.0
添加默认路由
route add default gw 10.62.1.1
删除默认路由
route del default gw 10.62.1.1
添加永久路由的方法
配置网卡默认网关
1、在 /etc/sysconfig/network-scripts/ifcfg-eth0
文件中指定网关IP
GATEWAY=gw-ip
2、在 /etc/sysconfig/network
里加入到文件末尾,格式以下:
GATEWAY=gw-ip
# 或者
GATEWAY=gw-dev
写入 /etc/rc.loacl
如某个自启动服务在运行
/etc/rc.loacl
内容之前,那么将可能因链路不畅通导致发生异常故障。故不推荐。
第一次配置自启动时,需要执行如下命令:
chmod +x /etc/rc.d/rc.local
方法:
编辑 /etc/rc.local
,使用 route 命令语法添加
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.3.254
route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.1.100 dev eth0
修改过的文件 /etc/rc.d/rc.local
文件示例
touch /var/lock/subsys/local
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.3.254
route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.1.100 dev eth0
写入 /etc/sysconfig/static-routes
文件
由于需要编辑network服务配置,无经验很容易出错,故不推荐。
默认在 /etc/sysconifg
文件夹中是没有这个文件的,须要我们手工创建。
$ vi /etc/sysconfig/static-routes
any net 192.168.1.0/24 gw 192.168.1.1
any net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1
any host 10.19.190.11/32 gw 10.19.177.10
any host 10.19.190.12 gw 10.19.177.10
编辑network配置文件在start内添加如下内容:
$ cat /etc/init.d/network
# Add non interface-specific static-routes.
if [-f /etc/sysconfig/static-routes]; then
if [-x /sbin/route]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
else
net_log $"Legacy static-route support not available: /sbin/route not found"
fi
fi</code></pre>
###### 创建`route-网卡名称`文件
> via 网关,dev 网卡名称
>
在 `/etc/sysconfig/network-scripts/` 目录下创建名为 route-eth0 的文件,在此文件添加如下格式的内容。
$ vi /etc/sysconfig/network-scripts/route-eth0
192.168.1.0/24 via 192.168.0.1 dev eno1
重启网络验证有效
$ systemctl restart network