Ubuntu多網路界面route設定


像是我電腦有兩個ethernet和一個wifi界面,就很需要設定多界面route

參考IP address的一些資訊
https://en.wikipedia.org/wiki/IP_address

Private network有三個網段可用
第一個10.0.0.0/8 從10.0.0.0 到10.255.255.255
第二個172.16.0.0/12 從172.16.0.0 到 172.31.255.255
第三個192.168.0.0/16 從 192.168.0.0 到 192.168.255.255
一般分享器都是用第三個網段,我就是透過wifi連接Internet的,所以預設gateway就設定給wlan0,讓所有連線預設連Internet。

實驗時需要測試廣播封包,廣播封包用的IP網段是從 224.0.0.0 到 239.255.255.255,而為了方便觀察行為是用eth1作為實驗用網域,為了增加查網路封包的方便性,所以我決定三個界面都用不同的網段,廣播封包的介面卡IP用10.0.1.100。而最後是eth0的IP用172.16.1.100連接到我自己使用,不會對外連線的git server 172.16.1.101,所以我設定多接面的網路route 就會像下面這樣

#清除所有route的規則
sudo ip route flush table main

使用route指令設定路由

# eth1 for experiments
sudo route add -net 224.0.0.0 netmask 240.0.0.0 metric 1 dev eth1

# eth0 for private git server
sudo route add -net 172.16.0.0 netmask 255.240.0.0 metric 1 dev eth0

# 預設gateway,讓不是上面條件的都走wifi界面跑internet
sudo route add default gw 192.168.1.1

# 顯示最後設定的結果
route -n

使用ip指令設定路由(2020-02-10加入)

# eth1 for experiments
sudo ip route add 224.0.0.0/4 metric 1 dev eth1

# eth0 for private git server
sudo ip route add 172.16.0.0/12 metric 1 dev eth0 via 172.16.1.254
# 預設gateway,讓不是上面條件的都走wifi界面跑internet
sudo ip route add default dev wlan0 via 192.168.1.254

# 顯示最後設定的結果
ip route

其他ip指令

# 顯示使用說明
ip route help

# 清除route
sudo ip route del default
sudo ip route del 0/0 # default route
sudo ip route del 172.16.0.0/12
sudo ip route del 224.0.0.0/4

# 清除cache
sudo ip route flush cache

# 測試route結果
ip route get 230.1.1.1
multicast 230.1.1,1 via 10.0.1.254 dev eth1  src 10.0.1.100
    cache  



留言