Linux / Windows – Routing

這文章的前半段是透過手機就是要上網 – http://benjr.tw/74430 主要是討論如何透過改 Routing Table 修改網路走的路徑.

當你有多個網路埠的時候有什麼方式可以讓個人電腦同時可以自己選擇從哪一個埠出去.

window_routing01
這時候可以設定個人電腦的 Routing Table (告訴封包要從哪一個網路埠出去) 即可!

Windows

  • IPv4
    先來看一下目前的 IP 狀況

    C:\Users\Ben>ipconfig
    
    Windows IP 設定
    
    乙太網路卡 區域連線 4:
    
       連線特定 DNS 尾碼 . . . . . . . . :
       連結-本機 IPv6 位址 . . . . . . . : fe80::8059:a5ac:6971:43d3%18
       IPv4 位址 . . . . . . . . . . . . : 192.168.42.52
       子網路遮罩 . . . . . . . . . . . .: 255.255.255.0
       預設閘道 . . . . . . . . . . . . .: 192.168.42.129
    
    乙太網路卡 區域連線:
    
       連線特定 DNS 尾碼 . . . . . . . . : benjr.com
       連結-本機 IPv6 位址 . . . . . . . : fe80::e875:a079:72b3:c4f3%10
       IPv4 位址 . . . . . . . . . . . . : 10.32.78.136
       子網路遮罩 . . . . . . . . . . . .: 255.255.252.0
       預設閘道 . . . . . . . . . . . . .:
    

    假設你有兩個網段 10.32.78.136 (只有10.0.0.0的網路從這邊出去) 與 192.168.42.52 (其他的封包從這邊出去)

    將下列的 routing table 寫成一個 Windows 的 bat 檔案(xx.bat)

    route delete 0.0.0.0
    route add 0.0.0.0 mask 0.0.0.0 192.168.42.129
    route add 10.0.0.0 mask 255.0.0.0 10.32.76.1
    

    10.32.76.1 是 10.0.0.0 的 Gateway
    192.168.42.129 是 其他封包的 Gateway

    這指令需要透過系統管理員身分執行才可以.

    看一下 Routing Tables 的改變

    C:\Users\Ben>route print -4
    
    IPv4 路由表
    ===========================================================================
    使用中的路由:
    網路目的地       網路遮罩         閘道              介面               計量
    0.0.0.0         0.0.0.0         192.168.42.129    192.168.42.52     11
    10.0.0.0        255.0.0.0       10.32.76.1        10.32.78.136      11
    ===========================================================================
    

    你可以很清楚看到前兩行 大部分的網路是透過 192.168.42.129 出去的,如果遇到 10.0.0.0 (10 開頭的網段) 還是透過 10.32.76.1

    透過 tracert www.google.com 你可以很明顯看到網路是由 192.168.42.129 出去的.

    C:\Users\Ben>tracert www.google.com
    
    在上限 30 個躍點上
    追蹤 www.google.com [74.125.203.103] 的路由:
    
      1    <1 ms    <1 ms    <1 ms  192.168.42.129
      2     *        *        *     要求等候逾時。
      3    32 ms    30 ms    30 ms  10.156.65.1
      4    38 ms    23 ms    30 ms  10.156.67.42
      5   124 ms   211 ms    19 ms  10.156.67.6
      6    93 ms    31 ms    30 ms  10.156.67.18
      7    25 ms    20 ms    26 ms  210-65-126-98.HINET-IP.hinet.net [210.65.126.98]
    
      8    45 ms    28 ms    42 ms  r4005-s2.tp.hinet.net [220.128.3.162]
      9    36 ms    28 ms    31 ms  tyfo-3011.hinet.net [220.128.8.81]
     10    21 ms    23 ms    35 ms  220-128-8-169.HINET-IP.hinet.net [220.128.8.169]
    
     11    26 ms    30 ms    36 ms  74.125.49.158
     12    36 ms    35 ms    22 ms  209.85.243.26
     13    90 ms    66 ms    40 ms  209.85.252.167
     14     *        *        *     要求等候逾時。
     15    46 ms    36 ms    38 ms  74.125.203.103
  • IPv6
    一樣使用 route 指令多加上參數 -6 .

    C:\Users\Ben>route print -6
    ===========================================================================
    介面清單
     11...00 0c 29 58 eb e8 ......Intel(R) 82574L Gigabit Network Connection
      5...a4 83 e7 81 19 d5 ......Bluetooth Device (Personal Area Network)
      1...........................Software Loopback Interface 1
    ===========================================================================
    
    IPv6 路由表
    ===========================================================================
    使用中的路由:
     介面 計量 網路目的地               閘道
     11    281 ::/0                     fe80::18f1:f5cb:696a:b038
      1    331 ::1/128                  在連結上
     11    281 fd15:4ba5:5a2b:1008::/64 在連結上
     11    281 fd15:4ba5:5a2b:1008:2459:f8fe:a1fe:b792/128
                                        在連結上
     11    281 fd15:4ba5:5a2b:1008:90f8:5128:de7e:744e/128
                                        在連結上
     11    281 fe80::/64                在連結上
     11    281 fe80::90f8:5128:de7e:744e/128
                                        在連結上
      1    331 ff00::/8                 在連結上
     11    281 ff00::/8                 在連結上
    

    新增 IPv6 default Route (需 Administrator 權限).

    C:\Users\Ben> route add ::/0 fd15:4ba5:5a2b:1008:2459:f8fe:a1fe:b792
    

Linux

  • IPv4
    Linux 下的 Routing Table 跟 Windows 是一樣的,指令也差不多, 一樣使用 route add 來新增 Routing 規則,

    # route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]] 
    

    常用的大概就這一些.
    add: 新增一條路由 Routing
    del: 刪除一條路由 Routing

    -net: 指定網段
    netmask: 網路遮罩
    gw: 路由 Routing table 閘道

    檢視當前路由表 Routing table

    # route
    # route -n
    

    新增一條路由+閘道

    # route add -net 172.16.0.0 netmask 255.255.255.0 gw 172.16.0.254
    

    刪除一條路由

    # route del -net 172.16.0.0 netmask 255.255.255.0 gw 172.16.0.254
    

    新增 default gateway

    # route add default gw 192.168.1.250
    
  • IPv6
    一樣使用 route 指令多加上參數 -6 .

    [root@localhost ~]# route -6 -n
    Kernel IPv6 routing table
    Destination                    Next Hop                   Flag Met Ref Use If
    ::1/128                        ::                         U    256 1      0 lo
    fd15:4ba5:5a2b:1008::/64       ::                         U    100 1      0 ens33
    fe80::/64                      ::                         U    100 2      0 ens33
    ::/0                           fe80::1076:e837:a757:e66d  UG   100 2      0 ens33
    ::1/128                        ::                         Un   0   4      0 lo
    fd15:4ba5:5a2b:1008:2534:caad:aa13:d5dc/128 ::                         Un   0   2      0 ens33
    fe80::32a6:f7d6:b492:4c36/128  ::                         Un   0   3      0 ens33
    ff00::/8                       ::                         U    256 5      0 ens33
    ::/0                           ::                         !n   -1  1      0 lo
    

    新增 IPv6 Route 並指定 metric

    [root@localhost ~]# route -6 add 2001:0002::/48 metric 1 dev ens33
    [root@localhost ~]# route -6 -n
    Kernel IPv6 routing table
    Destination                    Next Hop                   Flag Met Ref Use If
    ::1/128                        ::                         U    256 2      0 lo
    2001:2::/48                    ::                         U    1   1      0 ens33
    fd15:4ba5:5a2b:1008::/64       ::                         U    100 1      0 ens33
    fe80::/64                      ::                         U    100 2      0 ens33
    ::/0                           fe80::1076:e837:a757:e66d  UG   100 2      0 ens33
    ::1/128                        ::                         Un   0   4      0 lo
    fd15:4ba5:5a2b:1008:2534:caad:aa13:d5dc/128 ::                         Un   0   2      0 ens33
    fe80::32a6:f7d6:b492:4c36/128  ::                         Un   0   3      0 ens33
    ff00::/8                       ::                         U    256 5      0 ens33
    ::/0                           ::                         !n   -1  1      0 lo
    
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料