41-18 linux添加iptables与永久路由

由于https://blog.csdn.net/csdn_immortal/article/details/107357801

问题:

  • 添加iptables规则后,系统重启或者service iptables restart都会丢失,需要写到配置文件永久生效
  • linux系统添加路由信息后,系统重启或者网卡重启,路由信息会丢失,需要写到配置文件永久生效

解决方法

iptables

centos6中,service iptables save (未验证)

centos7中,/sbin/iptables-save > /etc/sysconfig/iptables (已验证)

[root@localhost ~ ]#more /etc/rc.d/rc.local 
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
iptables-restore </etc/sysconfig/iptables

永久路由:

Centos7 添加永久静态路由:

在命令行使用ip等命令设定的静态路由会在系统关机或重启后丢失
要配置静态路由以便在系统重启后也可以保留,则需要在/etc/sysconfig/network-scripts/目录中创建格式为"route-网卡名"的配置文件。
配置文件的格式如下:

IP命令格式:
设定默认网关:
default via 默认网关 dev 网卡名
设定静态路由:
IP地址/掩码前缀长度 via 下一跳地址 [dev 网卡名称]

范例:10.10.10.0/24 via 192.168.1.1 dev eth1
最后执行:

systemctl restart network


静态路由配置_怎么在Suse和红帽系统中配置永久静态路由

主机只有一块网卡的时候,不会涉及到默认路由和静态路由的问题。两块网卡时,也可以一块配置有网关(默认路由走这个网卡),另外一块只配置IP和掩码确认(该主机同网络的可以互通)。

主机只有一块网卡的时候,不会涉及到默认路由和静态路由的问题。两块网卡时,也可以一块配置有网关(默认路由走这个网卡),另外一块只配置IP和掩码确认(该主机同网络的可以互通)。不过在稍大型的、有多网段的环境里就需单独进行默认路由和静态路由的配置了。

一、需求

目前有如下的一个网络,主机有两个网卡,两个网段分别是是业务地址eth0和管理地址eth1。
业务地址段为:192.168.3.0/24段
管理地址段:10.212.52.0/24段
防火墙段:10.211.6.0/24段
现在的需求是,默认路由走业务地址(192.168.3.0/24),防火墙段10.211.6.0/24走业务地址,10.0.0.0/8的所有地址都走管理地址段。

二、redhat静态路由配置

在redhat环境下,有三种配置方法

方法一:在/etc/sysconfig/network配置文件中配置:

代码如下:

default via 192.168.3.1 dev eth0 #192.168.3.1为eth0网卡的网关地址
10.211.6.0/24 via 192.168.3.1 dev eth0
10.0.0.0/8 via 10.212.52.1 dev eth1 #10.212.52.1为eth1网卡的网关地址

注:该种配置写法同样支持写到/etc/sysconfig/network-scripts/route-interferface 配置文件中。
具体如方法二

方法二:在/etc/sysconfig/network-scripts/route-interferface 配置文件配置

在这里支持两种配置格式的写法
A:方法1中提到的方法
代码如下:

# cat /etc/sysconfig/network-scripts/route-eth0
0.0.0.0/0 via 192.168.3.1 dev eth0
10.211.6.0/24 via 192.168.3.1 dev eth0
# cat /etc/sysconfig/network-scripts/route-eth1
10.0.0.0/8 via 10.212.52.1 dev eth1

B:网络掩码法
代码如下:

# cat /etc/sysconfig/network-scripts/route-eth0
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=192.168.3.1
ADDRESS1=10.211.6.0
NETMASK1=255.255.255.0
GATEWAY1=192.168.3.1

其中网段地址和掩码全是0代表为所有网段,即默认路由。

# cat /etc/sysconfig/network-scripts/route-eth1
ADDRESS0=10.0.0.0
NETMASK0=255.0.0.0
GATEWAY0=10.212.52.1

网络掩码法也可以参看redhat官方文档。

方法三:/etc/sysconfig/static-routes配置

代码如下:

# cat /etc/sysconfig/static-route
any net any gw 192.168.3.1
any net 10.211.6.0/24 gw 192.168.3.1
any net 10.0.0.0 netmask 255.0.0.0 gw 10.212.52.1

注:默认情况下主机中并没有该文件,之所以该方法也可以是因为/etc/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

三、suse静态路由配置

方法一:

# cat/etc/sysconfig/network/routes
default 192.168.3.1 - -
10.0.0.0 10.212.52.1 255.0.0.0 eth1
10.211.6.0 192.168.3.1 255.255.255.0 eth0

注:其中第一条配置的为默认路由,默认路由掩码和接口可以以"-" 代替。注意非默认路由不可以这样做。

方法2:通过/etc/sysconfig/network/ifroute-*配置文件

/etc/sysconfig/network/ifroute-* ,这里的星号代表的相应的设备号,如上面的配置,可以使用以下进行配置:
代码如下:

# cat /etc/sysconfig/network/ifroute-eth0
0.0.0.0 192.168.3.1 0.0.0.0 eth0
10.211.6.0 192.168.3.1 255.255.255.0 eth0
# cat /etc/sysconfig/network/ifroute-eth1
10.0.0.0 10.212.52.1 255.0.0.0 eth1

具体也可以参看novell站点文档 或 suse 官方文档 。在novell 站点文档,有如下一段说明:
代码如下:

define an additional configuration file: /etc/sysconfig/network/ifroute-*. Replace * with the name of the interface.
The entries in the routing configuration files look like this:
DESTINATION GATEWAY NETMASK INTERFACE [ TYPE ] [ OPTIONS ]
DESTINATION GATEWAY PREFIXLEN INTERFACE [ TYPE ] [ OPTIONS ]
DESTINATION/PREFIXLEN GATEWAY - INTERFACE [ TYPE ] [ OPTIONS ]

可以看到必需要配置的四个选项分别为:目标段或主机 接口网关地址 目标段掩码 接口

四、查看路由表

配置完成后,可以通过重启network服务生效,并通过下面的任一命令查看路由表信息:
代码如下:

# netstat -nr
# route -n
# ip route list
# ip route show

静态路由配置_怎么在Suse和红帽系统中配置永久静态路由

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux添加永久路由可以使用“route”命令和编辑“/etc/sysconfig/network-scripts/route-<interface>”文件的方式进行操作,下面分别介绍。 1. 使用“route”命令添加永久路由 在终端中输入以下命令添加永久路由: ``` sudo route add -net <目标网络地址> netmask <子网掩码> gw <网关地址> dev <网络接口名称> ``` 其中,<目标网络地址>是需要添加路由的目标网络地址,<子网掩码>是子网掩码,<网关地址>是下一跳路由的网关地址,<网络接口名称>是本地网络接口的名称。 例如,添加一个路由到192.168.1.0/24网络,网关地址为192.168.0.1,网络接口为eth0,命令如下: ``` sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0 ``` 该命令只是暂时生效,重启后会失效。如果需要永久生效,需要在“/etc/rc.local”文件中添加上述命令。 2. 编辑“/etc/sysconfig/network-scripts/route-<interface>”文件添加永久路由 另一种方式是编辑“/etc/sysconfig/network-scripts/route-<interface>”文件添加永久路由。该文件是网络接口配置文件的一部分,每个网络接口都有一个对应的route文件,修改该文件可添加此接口的静态路由。 步骤如下: 1. 执行以下命令打开文件: ``` sudo vi /etc/sysconfig/network-scripts/route-<interface> ``` 其中,<interface>是需要添加静态路由的网络接口名称,可以通过运行“ip addr”命令查看。 2. 在文件中添加以下内容: ``` <目标网络地址>/<子网掩码> via <网关地址> dev <网络接口名称> ``` 例如,添加一个路由到192.168.1.0/24网络,网关地址为192.168.0.1,网络接口为eth0,内容如下: ``` 192.168.1.0/24 via 192.168.0.1 dev eth0 ``` 3. 保存文件并退出。路由会在下次重启后生效。 总结 上述两种方式都可以添加永久路由,但是推荐使用第二种方式。因为第一种方式要在“/etc/rc.local”文件中添加命令,如果该文件被配置错误或重启机器后重新配置了iptables/网络、IP等信息后,可能会导致命令失效或无法执行。而第二种方式在文件中添加路由,更清晰可读,且添加路由会随着网络接口的连接和断开而自动添加和删除,更加方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值