‘壹’ Linux服务器添加永久静态路由
服务器添加永久静态路由
一、Linux添加永久静态路由
方法一:修改 rc.local 配置文件
范围:测试 Ubuntu 14.04、centos 6.4、debian 8.1、redhat 6.4 系统可用
使用方法:
向 linux 系统的 /etc/rc.local文件中添加命令route add -net 192.168.2.0/24 gw 192.168.2.254(服务器的默认路由为192.168.2.254),或者添加命令route add -net 192.168.3.0/24 dev eth0,前者是依赖默认路由进行数据的转发,后者是依赖网卡接口进行数据的转发
reboot重启系统命令生效
用 route -n 命令查看命令是否已经生效
方法二:修改 static-routes 配置文件
范围:测试 centos 6.4、redhat 6.4 系统可用
使用方法(此方法比 rc.local 方法实用,能保证网络链路的通畅):
向系统的 /etc/sysconfig/static-routes 文件(如果系统没有此文件,可以新建此文件)中添加命令 any net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.254(服务器的默认路由为192.168.2.254),或者添加命令 any net 192.168.2.0 netmask 255.255.255.0 dev eth0, 前者是依赖默认路由进行数据的转发,后者是依赖网卡接口进行数据的转发
service network restart 命令重启网络服务
用 route -n 命令查看命令是否已经生效
方法三:修改 interface 配置文件
范围:测试 debian 8.1、Ubuntu 14.04 系统可用
使用方法:
向系统的 /etc/network/interface 文件中添加命令 up route add -net 192.168.2.0/24 gw 192.168.2.254(服务器的默认路由为192.168.2.254),或者添加命令 up route add -net 192.168.3.0/24 dev eth0,前者是依赖默认路由进行数据的转发,后者是依赖网卡接口进行数据的转发
reboot 重启系统命令生效
用 route -n 命令查看命令是否已经生效
注 1:(引用网上内容)如果在 rc.local中添加路由会造成NFS无法自动挂载问题,所以使用 static-routes 的方法是最好的。无论重启系统和 service network restart 都会生效,按照linux启动的顺序,rc.local 里面的内容是在linux所有服务都启动完毕,最后才被执行的,也就是说,这里面的内容是在netfs之后才被执行的,那也就是说在netfs启动的时候,服务器上的静态路由是没有被添加的,所以netfs挂载不能成功。
注 2:以上添加命令可以通过 linux 命令 sed -i ‘2i route add -net 192.168.2.0/24 gw 192.168.2.254’ + 文件路径 命令向相应的文件的第二行添加命令或者用 echo route add -net 192.168.2.0/24 gw 192.168.2.254 >> 文件路径向文件的末尾添加命令
Ubuntux系统可以修改vim /etc/NetworkManager/system-connections/Wired\ connection\ 3
‘贰’ ubuntu系统怎么配置成静态路由
学习linux时,你可能会遇到配置静态路由的问题,这里将介绍配置linux静态路由问题的解决方法,在这里拿出来和大家分享一下。现在有五个设备,PC1接ROUT1,ROUT1再接ROUT2,ROUT2再接ROUT3,ROUT3再接PC2,拓扑图见下:
□————○————○————○————□
PC1 ROUT1 ROUT2 ROUT3 PC2
五个设备的linux静态路由IP地址分别为:
PC1 192.168.1.88/24
ROUT1 192.168.1.128/24 192.168.2.128/24
ROUT2 192.168.2.66/24 192.168.3.66/24
ROUT3 192.168.3.100/24 192.168.4.33/24
PC2 192.168.4.66/24
PC1配置如下:
#ifconfig eth0 192.168.1.88 netmask 255.255.255.0
#route add default gw 192.168.1.128
ROUT1配置如下:
#ifconfig eth0 192.168.1.128 netmask 255.255.255.0
#ifconfig eth0: 1 192.168.2.128 netmask 255.255.255.0
#route add -net 192.168.4.0/24 gw 192.168.2.66
ROUT2配置如下:
#ifconfig eth0 192.168.2.66 netmask 255.255.255.0
#ifconfig eth0: 1 192.168.3.66 netmask 255.255.255.0
#route add -net 192.168.1.0/24 gw 192.168.2.128
#route add -net 192.168.4.0/24 gw 192.168.3.100
ROUT3配置如下:
#ifconfig eth0 192.168.3.100 netmask 255.255.255.0
#ifconfig eth0: 1 192.168.4.33 netmask 255.255.255.0
#route add -net 192.168.1.0/24 gw 192.168.3.66
PC2配置如下:
#ifconfig eth0 192.168.4.66 netmask 255.255.255.0
#route add default gw 192.168.4.33
这样PC1就能ping通PC2了。
注:
上面三个器这里用三台PC代替。用电脑代替器,必须要启用电脑的IP转发功能,改/proc/sys/net/ipv4/ip_forward里的内容为1(默认为0),用下面的命令完成
#e cho 1 > /proc/sys/net/ipv4/ip_forward
网络重启后,上面的文件自动改为0
补充几个命令:
1、删除默认路由
#route del default
2、linux静态路由查看
#route -n
3、设置指定网段路由
#route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.6.66
或者
#route add -net 192.168.3.0/24 gw 192.168.6.66
4、删除指定网段路由
#route del -net 192.168.3.0 netmask 255.255.255.0
或者
#route del -net 192.168.3.0/24
以上给大家介绍的是linux静态路由的配置方法。
nternet------(eth1)router1(eth2)------(eth1)router2(eth0)------(eth0)router3(eth1)------(eth0)pc
上面就是我的网络拓扑结构,其中路由器1是用来连接外部网络的一台linux机器,图中所有路由器都是普通的pc机,这些pc都安装了ubuntu桌面系统,除了最右边的pc,其余的pc都装了3张网卡(其中一张备用)。
由于Debian系的网卡配置跟Redhat系很不一样,Redhat是放在/etc/sysconfig/network-scripts目录下面的一大堆文件里面。而Debian系的网卡配置则是存在/etc/network/interfaces这个文件里面,而且不管你有多少块网卡,系统都把配置统统放在这个文件里。下面就来看一下这个文件的内容。
首先,我们来看router1的配置:
auto lo
iface lo inet loopback
iface lo inet6 loopbackauto eth0
iface eth0 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255
up route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.2 dev eth0
down route del -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.2 dev eth0
up route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.2.2 dev eth0
down route del -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.2.2 dev eth0
iface eth0 inet6 static
address 2000:2::1
netmask 64
up route -A inet6 add 2000:3::/64 gw 2000:2::2
up route -A inet6 add 2000:4::/64 gw 2000:2::2
down route -A inet6 del 2000:3::/64 gw 2000:2::2
down route -A inet6 del 2000:4::/64 gw 2000:2::2auto eth1
iface eth1 inet dhcp
上面的配置中,
auto说明lo接口跟eth0接口会在系统启动时被自动配置;lo为一个本地回环(loopback)地址,这里分别设置了v4和v6两个 loopback;static说明这是一个静态的IP配置;后面配置的作用在于在接口启用的时候,添加两条静态路由,并且在接口禁用的时候,删掉这两条路由配置。至于配置路由的写法,跟cmd line下的route命令一样(除了开头的up down)。
后面的eth1是连接外部的Internet,所以用了跟外面相连的dhcp。
路由器在配好这个文件之后,还需要enable自身的ip转发,这就需要进入到/etc/sysctl.conf这个文件当中,加入 net.ipv4.ip_forward=1,以及net.ipv6.default.ip_forward=1这两句话。退出后,再sysctl -p /etc/sysctl.conf。这就打开了ip转发。
配好转发之后,还不能对外上网,但router之间已经能互相ping通,这就需要在每台router上配置dns服务器,需要在/etc/resolv.conf中加入相应信息:
search test.com
nameserver *.*.*.*
这样之后后面的几台路由器都可以根据自己的dft gw找到router1并取得跟外网的联系并连上Internet了
如果要配ipv6的multicast,这就要借助mrd6这个软件来实现,具体配置方法非常简单,你只要把deb包安装好,然后配置mrd.conf这个文件就行。运行的时候只要在有mrd.conf文件的文件夹下sudo mrd6就ok了。
其余router的配置与router1大抵相同,而pc跟这个不同
重启网络配置
sudo /etc/init.d/networking restart