古之成大事者,不唯有超世之才,亦唯有堅韌不拔之志也!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            3 隨筆 :: 44 文章 :: 1 評論 :: 0 Trackbacks

          路由表和靜態路由

          內容提要

          1. 查看 Linux 內核路由表
          2. 使用 route 命令設置靜態路由
          3. 設置包轉發

          Linux 內核路由表

          查看 Linux 內核路由表

          使用下面的 route 命令可以查看 Linux 內核路由表。

          # route
          Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
          192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
          169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
          default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

          route 命令的輸出項說明

          輸出項 說明
          Destination 目標網段或者主機
          Gateway 網關地址,”*” 表示目標是本主機所屬的網絡,不需要路由
          Genmask 網絡掩碼
          Flags 標記。一些可能的標記如下:

          U — 路由是活動的

          H — 目標是一個主機

          G — 路由指向網關

          R — 恢復動態路由產生的表項

          D — 由路由的后臺程序動態地安裝

          M — 由路由的后臺程序修改

          ! — 拒絕路由
          Metric 路由距離,到達指定網絡所需的中轉數(linux 內核中沒有使用)
          Ref 路由項引用次數(linux 內核中沒有使用)
          Use 此路由項被路由軟件查找的次數
          Iface 該路由表項對應的輸出接口

          3 種路由類型

          主機路由

          主機路由是路由選擇表中指向單個IP地址或主機名的路由記錄。主機路由的Flags字段為H。例如,在下面的示例中,本地主機通過IP地址192.168.1.1的路由器到達IP地址為10.0.0.10的主機。

          Destination    Gateway       Genmask        Flags     Metric    Ref    Use    Iface
          ----------- ------- ------- ----- ------ --- --- -----
          10.0.0.10 192.168.1.1 255.255.255.255 UH 0 0 0 eth0

          網絡路由

          網絡路由是代表主機可以到達的網絡。網絡路由的Flags字段為N。例如,在下面的示例中,本地主機將發送到網絡192.19.12的數據包轉發到IP地址為192.168.1.1的路由器。

          Destination    Gateway       Genmask      Flags    Metric    Ref     Use    Iface
          ----------- ------- ------- ----- ----- --- --- -----
          192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0

          默認路由

          當主機不能在路由表中查找到目標主機的IP地址或網絡路由時,數據包就被發送到默認路由(默認網關)上。默認路由的Flags字段為G。例如,在下面的示例中,默認路由是IP地址為192.168.1.1的路由器。

          Destination    Gateway       Genmask    Flags     Metric    Ref    Use    Iface
          ----------- ------- ------- ----- ------ --- --- -----
          default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

          配置靜態路由

          route 命令

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

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

          其中:

          • add : 添加一條路由規則
          • del : 刪除一條路由規則
          • -net : 目的地址是一個網絡
          • -host : 目的地址是一個主機
          • target : 目的網絡或主機
          • netmask : 目的地址的網絡掩碼
          • gw : 路由數據包通過的網關
          • dev : 為路由指定的網絡接口

          route 命令使用舉例

          添加到主機的路由

          # route add -host 192.168.1.2 dev eth0:0
          # route add -host 10.20.30.148 gw 10.20.30.40

          添加到網絡的路由

          # route add -net 10.20.30.40 netmask 255.255.255.248 eth0
          # route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
          # route add -net 192.168.1.0/24 eth1

          添加默認路由

          # route add default gw 192.168.1.1

          刪除路由

          # route del -host 192.168.1.2 dev eth0:0
          # route del -host 10.20.30.148 gw 10.20.30.40
          # route del -net 10.20.30.40 netmask 255.255.255.248 eth0
          # route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
          # route del -net 192.168.1.0/24 eth1
          # route del default gw 192.168.1.1

          設置包轉發

          在 CentOS 中默認的內核配置已經包含了路由功能,但默認并沒有在系統啟動時啟用此功能。開啟 Linux 的路由功能可以通過調整內核的網絡參數來實現。要配置和調整內核參數可以使用 sysctl 命令。例如:要開啟 Linux 內核的數據包轉發功能可以使用如下的命令。

          # sysctl -w net.ipv4.ip_forward=1

          這樣設置之后,當前系統就能實現包轉發,但下次啟動計算機時將失效。為了使在下次啟動計算機時仍然有效,需要將下面的行寫入配置文件/etc/sysctl.conf。

          # vi /etc/sysctl.conf
          net.ipv4.ip_forward = 1

          用戶還可以使用如下的命令查看當前系統是否支持包轉發。

          # sysctl  net.ipv4.ip_forward
          posted on 2009-04-03 08:52 goto 閱讀(2611) 評論(0)  編輯  收藏 所屬分類: 網絡

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 辉南县| 佛坪县| 美姑县| 肇州县| 丹东市| 台中县| 当涂县| 施甸县| 精河县| 舞钢市| 北碚区| 临西县| 满城县| 鄱阳县| 抚远县| 屏东市| 同仁县| 元氏县| 伽师县| 祥云县| 永定县| 明光市| 玉山县| 靖州| 凯里市| 池州市| 大化| 浦江县| 攀枝花市| 白城市| 雷波县| 天气| 象山县| 邵阳县| 宜宾县| 岚皋县| 泾川县| 苗栗县| 静宁县| 乌鲁木齐县| 衡阳县|