『壹』 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