redhat6 5靜態路由新增問題

2021-09-04 11:46:57 字數 3255 閱讀 8913

在linux系統中,設定路由通常是為了解決和其他網段、internet互通的問題。我們可以直接在命令列下執行route命令來新增路由,但不會永久儲存,當網絡卡重啟或者機器重啟之後,該路由就失效了。我們可以通過一些方法來保證新增的路由設定永久有效。

首先了解一下route命令。它是用於操作基於核心的ip路由表,它的主要作用是建立乙個靜態路由讓指定乙個主機或者乙個網路通過乙個網路介面,如eth0。當使用"add"或者"del"引數時,路由表被修改,如果沒有引數,則顯示路由表當前的內容。

1、顯示當前路由

# route -n

kernel ip routing table

destination     gateway         genmask         flags metric ref    use iface

172.16.14.0     0.0.0.0         255.255.255.0   u     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     u     1002   0        0 eth0

0.0.0.0         172.16.14.254   0.0.0.0         ug    0      0        0 eth0

2、route的一些基本操作

路由的新增

針對乙個網段

#route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0

針對乙個主機

#route add -host 192.168.100.1 gw 10.224.0.251 

linux路由的刪除

# route del -net 192.168.10.0 netmask 255.255.255.0 dev eth0

設定預設linux路由

# route add default gw 192.168.10.30

刪除預設路由

# route del (default) gw 192.168.10.30

注:linux在載入網絡卡配置檔案的時候是先載入eth0,再載入eht1的,這樣,如果eth1設定了gateway項,則會覆蓋掉eth0中的gateway設定,因此解決方法就是刪除eth1的gateway設定,檔案位置在/etc/sysconfig/networking/devices目錄下,刪除eth1中的gateway設定。

二:在linux下設定永久路由的方法:

1.在/etc/rc.local裡新增

方法: 

route add -net 192.168.3.0/24 dev eth0

route add -net 192.168.2.0/24 gw 192.168.2.254

2.在/etc/sysconfig/network裡新增到末尾

方法:gateway=gw-ip 或者 gateway=gw-dev

3./etc/sysconfig/static-routes : (沒有static-routes的話就手動建立乙個這樣的檔案)

any net 192.168.3.0/24 gw 192.168.3.254

any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129

4.開啟 ip **:

# echo "1" >/proc/sys/net/ipv4/ip_forward (臨時)

# vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久開啟)

這裡並沒有錯誤的地方,只不過之前沒有接觸對這些引數沒什麼想法,這次正好研究了下,大概了解了下沒個引數的意思。

首先從最簡單的是route add方法:

route add這個是新增路由的命令,這個沒什麼好說的,然後是後面的-host和net引數,根據緊跟引數後面的資訊可以發現host指的是新增乙個主機到路由中,net是新增乙個網段到路由中。在後面的引數是dev和gw,字面理解加上後面緊跟的值判斷,dev表示這個host或者這段net走的是那個網口,gw是gateway,自然是通過哪個閘道器了。對這裡為何指定網口或者指定閘道器都行呢,我的認識是這樣的,網口上配置有閘道器的資訊,指定的網口其實最終還是去讀取這個網口對應的閘道器資訊,等效於指定gw引數。不過指定網口一般是由於有多個網路環境的情況,如果網口沒有指定閘道器,會去讀取預設的閘道器,所以這裡一般要求把網口的閘道器資訊配置上去,在linux下很多時候閘道器資訊並不是配置在網口的配置檔案,比如:/etc/sysconfig/network-scripts/ifcfg-eth0 檔案裡面,而是在/etc/sysconfig/network這裡面,所以在用dev引數的時候需要小心這點,盡可能通過指定gw的方式。

any net 192.168.3.0/24 gw 192.168.3.254

設定的都是整個網段的,但如果是單個主機怎麼設定呢?同時從廠家那邊給了乙個指令碼是:

eth0 x.x.x.x netmask 255.255.255.192 gw x.x.x.x

看上去也很對的樣子,但是執行發現netstat -an裡面看不到新增的資訊,完全不行。

然後我們在看下static-routes這個檔案的作用,根據網上的說法,static-routes其實在被network這個指令碼呼叫的,開啟這個指令碼:

/etc/rc.d/init.d/network 

裡面有寫到:

# add non inte***ce-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

finetwork在執行的時候到static-routes裡面尋找any開頭的行,然後執行

/sbin/route add -$args 相當於手動執行了route add指令碼,那後面事情就簡單了,回到了手動執行的方式,根據前面的說明,正確的指令碼就是:

any host 10.0.0.10 gw 192.168.1.1

network執行的時候把any去掉,獲取後面的引數:host 10.0.0.10 gw 192.168.1.1

然後執行route add -host 10.0.0.10 gw 192.168.1.1

注意這裡host前面的-是network自帶的,不需要配置到static-routes檔案中。

公升級red hat 6 5核心

一 環境 系統 red hat6.5 核心 2.6.32 431.el6.x86 64 軟體包 kernel lt 4.4.130 1.el6.elrepo.x86 64.rpm 二 準備工作 1 檢視當前作業系統 uname a linux localhost.localdomain 2.6.32...

RedHat 6 5離線安裝GCC方法

掛載iso檔案或者光碟機。如果是iso可以永久掛載到mnt下,方便以後隨時rpm 修改 etc fstab檔案,仿照結構新增iso檔案掛載。proc proc proc defaults 0 0 home yueyc sys iso rhel server 6.5 i386 iso mnt rhel...

REDHAT 6 5 配置本地YUM 源

由於redhat 6.5 安裝oracle 缺少安裝 compat libstdc 33 elfutils libelf devel gcc c ksh libaio devel libstdc devel numactl devel 需安裝這些包,用rpm ivh 可能存在依賴關係,較麻煩,用 y...