1. 程式人生 > >CentOS6 Linux系統添加永久靜態路由的方法

CentOS6 Linux系統添加永久靜態路由的方法

ipv4 什麽 pan sysconf 靜態路由 mil system 又是 內容

一、使用route命令添加route 命令

設置和查看路由表都可以用 route 命令,設置內核路由表的命令格式是:

# route  [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

其中:

  • add : 添加一條路由規則
  • del : 刪除一條路由規則
  • -net : 目的地址是一個網絡
  • -host : 目的地址是一個主機
  • target : 目的網絡或主機
  • netmask : 目的地址的網絡掩碼
  • gw : 路由數據包通過的網關
  • route 命令的輸出項說明 輸出項 說明
    Destination 目標網段或者主機
    Gateway 網關地址,”*” 表示目標是本主機所屬的網絡,不需要路由
    Genmask 網絡掩碼
    Flags 標記。一些可能的標記如下:
    U — 路由是活動的
    H — 目標是一個主機
    G — 路由指向網關
    R — 恢復動態路由產生的表項
    D — 由路由的後臺程序動態地安裝
    M — 由路由的後臺程序修改
    ! — 拒絕路由
    Metric 路由距離,到達指定網絡所需的中轉數(linux 內核中沒有使用)
    Ref 路由項引用次數(linux 內核中沒有使用)
    Use 此路由項被路由軟件查找的次數
    Iface 該路由表項對應的輸出接口
  • dev : 為路由指定的網絡接口
  • 使用route 命令添加的路由,機器重啟或者網卡重啟後路由就失效了,方法:
    A、添加到主機的路由
    # route add –host 192.168.1.10 dev eth0
    # route add –host 192.168.1.10 gw 192.168.1.1
    B、添加到網絡的路由
    # route add –net 192.168.1.0 netmask 255.255.255.0 eth0
    # route add –net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
    # route add –net 192.168.1.0/24 eth1
    C、添加默認網關
    # route add default gw 192.168.1.1
    D、刪除路由
    # route del –host 192.168.1.10 dev eth0

    二、添加永久路由

    A、# vi /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

    B、# vi /etc/sysconfig/network (添加到末尾)
    語句:GATEWAY=gw-ip 或者 GATEWAY=gw-dev

    C、# vi /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

    D、開啟 IP 轉發:
    # echo "1" >/proc/sys/net/ipv4/ip_forward (臨時)
    # vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久開啟)

    如果在rc.local中添加路由會造成NFS無法自動掛載問題,所以使用static-routes的方法是最好的。無論重啟系統和service network restart 都會生效。

    按照linux啟動的順序,rc.local裏面的內容是在linux所有服務都啟動完畢,最後才被執行的,也就是說,這裏面的內容是在netfs之後才被執行的,那也就是說在netfs啟動的時候,服務器上的靜態路由是沒有被添加的,所以netfs掛載不能成功。static-routes文件又是什麽呢,這個是network腳本執行時調用的一個文件,這個文件的放在/etc/sysconfig目錄下,在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

    從這段腳本可以看到,這個就是添加靜態路由的方法,static-routes的寫法是:

    any net 192.168.1.0/16 gw 網關ip

    這樣的話,在啟動network腳本的時候路由就自動添加上了,又因為network是在netfs前面啟動的,自然在掛載nfs的時候就正常了。這樣看來,如果需要添加靜態路由,使用static-routes文件要比使用rc.local好,而且當改變了網絡配置,需要重啟network腳本的時候,相應的靜態路由是可以自動添加上的,但這時如果使用rc.local的話,在重啟network服務的時候,原本添加好的靜態路由就消失了。

本篇文章來源於 Linux公社網站(www.linuxidc.com) 原文鏈接:http://www.linuxidc.com/Linux/2012-05/61253.htm

CentOS6 Linux系統添加永久靜態路由的方法