さくらのクラウド やってみたシリーズ(9) ~スイッチ+ルータのスタティックルート機能を使う
今日は前回構築したスイッチ+ルータに対して追加でスタティックルートを追加していきます。
スタティックルート とは
スイッチ+ルータ が保有するIPアドレスブロックに対して追加で別のIPアドレスブロックを付与することができる機能です。
たとえばデフォルトのIPアドレスブロックが不足してきたときに、この機能で追加のIPアドレスブロックを利用可能になります。
そのほかにはデフォルトのIPアドレスブロックにNATサーバを立てIDS/IPSミドルウェアをインストールしておくことでDMZによる通信の検査を実現させることができます。
追加されたIPアドレスブロックからのみVPNやオンプレミスの通信を実現させる、といった複数ゲートウェイを持つネットワーク構成を作ることも可能です。
さっそくやってみる
0.環境確認
まず前回の手順でネットワークはこうなっています。


スイッチ+ルータ環境には133.125.89.192/28が登録されており133.125.89.193がゲートウェイとなっています。
1. スタティックルート用サーバの構築
この環境に1台サーバを構築します。次の手順で付与するスタティックルートつまり追加のIPアドレスブロックでは、必ず元のIPアドレスブロックをネクストホップとして指定する必要があります。そのサーバが通信をルーティングします。


ここで利用した133.125.89.196をスタティックルートのネクストホップに指定します。
2. スタティックルートの追加
スイッチの詳細画面からスタティックルートの追加をクリックします。

ネクストホップで先ほど作成したサーバのIPアドレスを指定して追加をクリックします。

スイッチのIPアドレス選択画面で2つのブロックが選択できるようになっています。

133.125.88.48/28が追加されたIPアドレスブロックです。


3. 追加されたIPアドレスブロックでサーバを起動
ではもう1台サーバを起動します。サーバ起動画面のIPアドレス指定で複数のIPアドレスブロックが指定できるようになっています。

ゲートウェイはデフォルトではなくスタティックルートで追加したIPアドレスブロックのネクストホップを指定します。

サーバおよびネットワーク構成はこのようになっています。


4. OutsideStaticRoute サーバのネットワーク設定
OutsideStaticRoute、InsideStaticRouteという2つのサーバが今までの手順で起動されています。この2つのサーバ間の疎通を行うためにOutsideStaticRouteのネットワーク設定を変更します。
sudo ip route add 133.125.88.48/28 via 133.125.89.196 dev eth0
こうすることで133.125.88.48/28向けの通信は133.125.89.196のeth0を経由するようになります。
5. InsideStaticRoute サーバのネットワーク設定
次に追加されたIPアドレスブロック内部のサーバでネクストホップへの経路を追加します。
sudo ip route add 133.125.89.196/32 dev eth0
sudo ip route add default via 133.125.89.196 dev eth0
ip route
default via 133.125.89.196 dev eth0 proto static
133.125.88.48/28 dev eth0 proto kernel scope link src 133.125.88.63
133.125.89.196 dev eth0 scope link
6. テスト
OutsideStaticRoute(133.125.89.196)からInsideStaticRoute(133.125.88.63)へ疎通を行います。
ping 133.125.88.63
PING 133.125.88.63 (133.125.88.63) 56(84) bytes of data.
64 bytes from 133.125.88.63: icmp_seq=1 ttl=64 time=0.524 ms
64 bytes from 133.125.88.63: icmp_seq=2 ttl=64 time=0.226 ms
64 bytes from 133.125.88.63: icmp_seq=3 ttl=64 time=0.277 ms
--- 133.125.88.63 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2039ms
rtt min/avg/max/mdev = 0.226/0.342/0.524/0.130 ms
逆方向も以下の通り届いていることが確認できます。
ping 133.125.89.196
PING 133.125.89.196 (133.125.89.196) 56(84) bytes of data.
64 bytes from 133.125.89.196: icmp_seq=1 ttl=64 time=0.717 ms
64 bytes from 133.125.89.196: icmp_seq=2 ttl=64 time=0.243 ms
64 bytes from 133.125.89.196: icmp_seq=3 ttl=64 time=0.228 ms
64 bytes from 133.125.89.196: icmp_seq=4 ttl=64 time=0.221 ms
--- 133.125.89.196 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 0.221/0.352/0.717/0.210 ms
Discussion