この記事は高知工科大 Advent Calendar 2017の4日目の記事です。
#概要
YAMAHAルータ(RTX1210)とVyOS(1.1.7)でClassless Static Route Optionを設定する方法。
#Classless Static Route Optionとは?
詳細はRFC3442を参考にしてください。
一般的なDHCPサーバが動いている環境ではクライアントは別のネットワークへのパケットはDHCPで配布されたデフォルトゲートウェイに投げます。
しかし状況によっては別のルータにパケットを直接投げたい場合があります。
この場合はクライアントごとに静的ルートを手動設定することで実現できますが、正直面倒です。
この様な時にDHCPサーバにClassless Static Route Optionを設定することでDHCPクライアントにDHCPサーバから静的ルートを配布することができます。
#用途
VPN接続などと組み合わせ、イントラネット向けパケットのみをVPN経由で送信できたりします。
(この場合インターネット向けパケットはVPNを通らない)
#設定方法
設定するにあたり、宛先ネットワークアドレスとサブネットマスク、ルータのIPアドレスなどの情報を16進数の書式にする必要があります。
例として以下のようなルートを配布したい場合を考えます。
|宛先ネットワーク|宛先サブネットマスク|ルータアドレス|
|:--:|:--:|:--:|:--:|
|198.51.100.0|/24|192.0.2.200|
|203.0.113.0|/24|192.0.2.200|
次に設定するときに使う16進数に置き換えます。各項目の末尾の0は省略してください。
宛先ネットワーク | 宛先サブネットマスク | ルータアドレス |
---|---|---|
C6:33:64 | 18 | C0:00:02:C8 |
CB:00:71 | 18 | C0:00:02:C8 |
次に`宛先サブネット` `宛先ネットワーク` `ルータアドレス`の順で並び替え、つなげます。
設定用文字列 |
---|
18:C6:33:64:C0:00:02:C8 |
18:CB:00:71:C0:00:02:C8 |
#YAMAHAルータに適用する方法
DHCPスコープ番号は各自の環境に合わせてください。
> dhcp scope option <スコープ番号> 121=18,C6,33,64,C0,00,02,C8,18,CB,00,71,C0,00,02,C8
#VyOSに適用する方法
一行目の設定はglobal-parameters
な事に注意してください。
shared-network-nameは各自の環境に合わせてください。
vyos@vyos# set service dhcp-server global-parameters "option rfc3442-classless-static-routes code 121 = string;"
vyos@vyos# set service dhcp-server shared-network-name <text> subnet 192.0.2.0/24 subnet-parameters "option rfc3442-classless-static-routes 18:C6:33:64:C0:00:02:C8:18:CB:00:71:C0:00:02:C8;"
#確認
Windows10で静的ルートが追加されているか確認。以下のような項目が追加されていれば成功。
>route print
IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先 ネットマスク ゲートウェイ インターフェイス メトリック
198.51.100.0 255.255.255.0 192.0.2.200 <各自の環境> 2
203.0.113.0 255.255.255.0 192.0.2.200 <各自の環境> 2
===========================================================================