Macのスタティックルート設定について説明します。ネットワーク機器だけではなく、PC等の端末についてもスタティックルートの設定が可能です。
Windowsのスタティックルート設定については下記を参照してください。
ルーティングテーブルの確認
ルーティングテーブルを確認するには下記のコマンドを実行します。(“-f inet”オプションを指定して、IPv4のみを表示しています。)
netstat -rnf inet
Terminal[~]: netstat -rnf inet
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.1.1 UGSc en0
192.168.1.2/32 link#6 UCS en0 !
192.168.1.2 XX:XX:XX:XX:XX:XX UHLWI lo0
routeコマンド(一時的な変更)
一時的な追加・変更の場合は、routeコマンドを利用して、スタティックルートの設定を行います。
routeコマンドで追加したスタティックルートは、再起動されると削除されます。再起動後も有効にするには、networksetupコマンドを利用してください。
スタティックルートの追加
スタティックルートを追加するには下記のコマンドを実行します。
sudo route add -net [宛先アドレス][宛先サブネットマスク(CIDR)] [ゲートウェイアドレス]
「宛先:172.16.1.0/24、ゲートウェイ:192.168.1.1」のスタティックルートを追加するには下記のコマンドを実行します。
sudo route add -net 172.16.1.0/24 192.168.1.1
Terminal[~]: sudo route add -net 172.16.1.0/24 192.168.1.1
add net 172.16.1.0: gateway 192.168.1.1
Terminal[~]: netstat -rnf inet
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.1.1 UGSc en0
172.16.1/24 192.168.1.1 UGSc en0
192.168.1.2/32 link#6 UCS en0 !
192.168.1.2 XX:XX:XX:XX:XX:XX UHLWI lo0
スタティックルートの変更
設定済みのスタティックルートを変更するには下記のコマンドを実行します。
sudo route change -net [宛先アドレス][宛先サブネットマスク(CIDR)] [ゲートウェイアドレス]
「宛先:172.16.1.0/24、ゲートウェイ:192.168.1.1」のスタティックルートを追加するには下記のコマンドを実行します。
sudo route change -net 172.16.1.0/24 192.168.1.254
Terminal[~]: sudo route change -net 172.16.1.0/24 192.168.1.254
change net 172.16.1.0: gateway 192.168.1.254
Terminal[~]: netstat -rnf inet
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.1.1 UGSc en0
172.16.1/24 192.168.1.254 UGSc en0
192.168.1.2/32 link#6 UCS en0 !
192.168.1.2 XX:XX:XX:XX:XX:XX UHLWI lo0
スタティックルートの削除
スタティックルートを削除するには下記のコマンドを実行します。
sudo route delete -net [宛先アドレス][宛先サブネットマスク(CIDR)]
「宛先:172.16.1.0/24」のスタティックルートを削除するには下記のコマンドを実行します。
sudo route delete -net 172.16.1.0/24
Terminal[~]: sudo route delete -net 172.16.1.0/24
delete net 172.16.1.0
Terminal[~]: netstat -rnf inet
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.1.1 UGSc en0
192.168.1.2/32 link#6 UCS en0 !
192.168.1.2 XX:XX:XX:XX:XX:XX UHLWI lo0
networksetupコマンド(恒久的な変更)
恒久的な追加・変更の場合は、networksetupコマンドの”-setadditionalroutes”オプションを利用して、スタティックルートの設定を行います。
利用方法を確認します。
man networksetup
-setadditionalroutes networkservice [dest1 mask1 gate1] [dest2 mask2 gate2] ... [destN maskN gateN]
Use this command to set the list of IPv4 additional routes configured for the service. Each route is specified as a (destination
address, subnet mask, gateway address) tuple. Specifying no tuples clears the list of routes.
networkserviceの確認
networkserviceの指定が必要なため、下記のコマンドで確認します。(ネットワークインターフェースの確認です。)
networksetup -listallnetworkservices
Terminal[~]: networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
Wi-Fi
Bluetooth PAN
Thunderbolt Bridge
スタティックルートの追加(単一ルート)
スタティックルートを追加するには下記のコマンドを実行します。
networksetup -setadditionalroutes [networkservice] [宛先アドレス] [宛先サブネットマスク] [ゲートウェイアドレス]
「宛先:172.16.1.0/24、ゲートウェイ:192.168.1.1」のスタティックルートを追加するには下記のコマンドを実行します。
networksetup -setadditionalroutes Wi-Fi 172.16.1.0 255.255.255.0 192.168.1.1
Terminal[~]: networksetup -setadditionalroutes Wi-Fi 172.16.1.0 255.255.255.0 192.168.1.1
Terminal[~]: netstat -rnf inet
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.1.1 UGSc en0
172.16.1/24 192.168.1.1 UGSc en0
192.168.1.2/32 link#6 UCS en0 !
192.168.1.2 XX:XX:XX:XX:XX:XX UHLWI lo0
「networksetup -setadditionalroutes」については、最後に実行したコマンドのみ有効となります。2回目以降の実行は、それ以前の設定を上書きします。
スタティックルートの追加(複数ルート)
複数のスタティックルートを追加するには下記のコマンドを実行します。※コマンドの後ろに必要なルート分を追記していきます。
networksetup -setadditionalroutes [networkservice] [宛先アドレス1] [宛先サブネットマスク1] [ゲートウェイアドレス1] [宛先アドレス2] [宛先サブネットマスク2] [ゲートウェイアドレス2] [宛先アドレス3] [宛先サブネットマスク3] [ゲートウェイアドレス3] [宛先アドレス*] [宛先サブネットマスク*] [ゲートウェイアドレス*]
「宛先:172.16.1.0/24、ゲートウェイ:192.168.1.1」と「宛先:172.16.2.0/24、ゲートウェイ:192.168.1.2」と「宛先:172.16.3.0/24、ゲートウェイ:192.168.1.3」のスタティックルートを追加するには下記のコマンドを実行します。
networksetup -setadditionalroutes Wi-Fi 172.16.1.0 255.255.255.0 192.168.1.1 172.16.2.0 255.255.255.0 192.168.1.2 172.16.3.0 255.255.255.0 192.168.1.3
Terminal[~]: networksetup -setadditionalroutes Wi-Fi 172.16.1.0 255.255.255.0 192.168.1.1 172.16.2.0 255.255.255.0 192.168.1.2 172.16.3.0 255.255.255.0 192.168.1.3
Terminal[~]: netstat -rnf inet
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.1.1 UGSc en0
172.16.1/24 192.168.1.1 UGSc en0
172.16.2/24 192.168.1.2 UGSc en0
172.16.3/24 192.168.1.3 UGSc en0
192.168.1.2/32 link#6 UCS en0 !
192.168.1.2 XX:XX:XX:XX:XX:XX UHLWI lo0
スタティックルートの削除
networksetupコマンドで設定したスタティックルートを削除するには下記のコマンドを実行します。※引数無しで実行すると、これまで設定したスタティックルートが削除されます。
networksetup -setadditionalroutes [networkservice]
「networkservice:Wi-Fi」のスタティックルートを削除するには下記のコマンドを実行します。
networksetup -setadditionalroutes Wi-Fi
Terminal[~]: networksetup -setadditionalroutes Wi-Fi
Terminal[~]: netstat -rnf inet
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.1.1 UGSc en0
192.168.1.2/32 link#6 UCS en0 !
192.168.1.2 XX:XX:XX:XX:XX:XX UHLWI lo0
以上で、Macのスタティックルート設定の説明は完了です!