技术改变生活

博客园 首页 新随笔 联系 订阅 管理

转载配置Linux实现静态路由

  1. 背景和原理

    路由器的功能是实现一个网段到另一个网段之间的通信,路由分为静态路由、动态路由、

默认路由和直连路由。静态路由是手工指定的,使用静态路由的好处是网络安全保密性高。动态路由因为需要路由器之间频繁地交换各自的路由表,而对路由表的分析可以揭示网络的拓扑结构和网络地址等信息。因此,网络出于安全方面的考虑也可以采用静态路由。不占用网络带宽,因为静态路由不会产生更新流量。

  1. 网络规划模拟

    模拟使用四台Linux机器,分别命名为Linux1、Linux2(router1)、Linux3(router)

和Linux4,其中Linux2和Linux3当做路由器来配置静态路由功能,每两台机器之间的通信使用不同的网段和网络模式

  1. 环境模拟

克隆四台Linux机器并命名,分别按照网络规划图配置每台机器的网卡,只使用静态ip和子网掩码,克隆的机器需要执行命令>/etc/udev/rules.d/70-persistent-net.rules清空网卡相关信息文件,配置完后查看ip并检验同网段设备之间的通信

Linux1

Linux2

Linux3

Linux4

  1. 配置静态路由

4.1 添加静态路由:

常用参数:

add 增加路由

del 删除路由

-net 设置到某个网段的路由

-host 设置到某台主机的路由

gw     出口网关 IP地址

dev 出口网关 物理设备名

第1步

Linux1:route add –net 192.168.1.0/24 gw 10.0.0.129        (从1到3)

Linux3:route add –net 10.0.0.0/24 gw 192.168.1.129        (从3到1)

此时,Linux1和Linux3可以相互ping通

第2步

Linux4:route add –net 192.168.1.0/24 gw 192.168.2.130    (从4到2)

Linux2:route add –net 192.168.2.0/24 gw 192.168.1.130    (从2到4)

此时,Linux2和Linux4可以相互ping通

第3步:

Linux1:route add –net 192.168.2.0/24 gw 10.0.0.129        (从1到4)

Linux4:route add –net 10.0.0.0/24 gw 192.168.2.130        (从4到1)

至此,Linux1、Linux2、Linux3、Linux4之间可以互相通信

4.2 在配置时如有涉及Linux2和Linux3这两台机器则需要开启内核转发功能

方法一:echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf(临时开启)

方法二:vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久开启)

sysctl –p    载入 sysctl 配置文件

  1. 检验静态路由

5.1 查看各自机器的路由表

5.2 在Linux1机器上执行ping命令,进行两两通信

5.3 在其他机器上使用tcpdump抓取每两两通信之间的icmp报文包进行检验

ping 10.0.0.129 –c3

ping 192.168.1.130 –c3

ping 192.168.2.131 –c3

  1. 上述配置若在重启网络服务或者重启系统时都会失效。若想实现永久生效,有以下几种

方法

以Linux1为例

方法一:利用route-eth0文件

vi /etc/sysconfig/network-scripts/route-eth0    #默认不存在此文件,需要手动创建

加入如下内容

192.168.1.0/24 via 10.0.0.129

192.168.2.0/24 via 10.0.0.129

#有两块网卡时,配置该条路由的原则是网卡所在网段为该路由出口

#写到配置里,重启网络服务和重启系统都会生效

 

方法二:利用static-route文件

vi /etc/sysconfig/static-routes    #默认不存在此文件,需要手动创建

加入如下内容

any net 192.168.1.0/24 gw 10.0.0.129

any net 192.168.2.0/24 gw 10.0.0.129

#写到配置里,重启网络服务和重启系统都会生效

 

方法三:利用rc.local文件

vi /etc/rc.local

加入如下内容

route add –net 192.168.1.0/24 gw 10.0.0.129

route add –net 192.168.2.0/24 gw 10.0.0.129

#写到配置里,重启重启系统会生效

 

 

 

转载在linux下永久添加静态路由有两种方法:

 

添加路由的命令:

1,route add

1
2
3
4
route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0#添加一条静态路由
route add default gw 192.168.0.1#添加默认路由
route del -net 192.168.1.0/24 gw 192.168.0.1#删除一条路由
route -n#查看路由表

2,ip ro add

1
2
3
4
ip ro add 192.56.76.0/24 dev 192.168.0.1#添加一条静态路由
ip ro add default via 192.168.0.1 dev eth0#添加默认路由
ip ro del 192.168.1.0/24#删除一条路由
ip route show#查看路由表

 

常见参数:

add 增加路由

del 删除路由

via 网关出口IP地址

dev 网关出口物理设备名

 

让路由重启服务器后依然生效:

1,在/etc/rc.local里面添加:

添加路由命令为:直接将在命令行操作的命令复制到该文件中,保存退出即可。

2,在/etc/sysconfig/static-routes文件里面写入:

如果该文件不存在,则手动创建,添加内容格式为:

参照/etc/init.d/network文件里面的shell语句:

1
2
3
4
5
6
                # 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

则,如果要添加一条静态路由,命令为:

1
               route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

那么,在/etc/sysconfig/static-routes文件中添加格式为:

1
               any -net 192.56.76.0 netmask 255.255.255.0 dev eth0

 

两种方式添加静态路由对比:

1,rc.local:

重启服务器生效;

重启网络服务,则静态路由失效;

rc.local是系统启动后最后运行的一个脚本,因此如果有如NFS需要网络才能挂载的服务需求,则该方式不适合;

2,static-routes:

重启服务器生效;

重启网络服务生效:

适合需要网络需求的服务;

 

脚本添加静态路由的方法和rc.local就差不多了:

这种方法其实也是自己写脚本,放在/etc/rc3.d/ 开头设置为S。

S意思是启动,数字是顺序,K意思是停止。

一般是启动是守护进程在某个模式的启动顺序。

数字越小启动的顺序越靠前;

/etc/rc3.d是文本多用户环境,一般生产环境都是这个环境。

 

其坏处也是:重启网络后失效。

 

总结:

如果需要添加静态路由,尽量将静态路由添加到/etc/sysconfig/static-routes文件中。避免因重启网络服务导致路由失效,从而避免故障的发生。

posted on 2019-06-11 17:53  小阿峰  阅读(342)  评论(0编辑  收藏  举报