2016年12月17日土曜日

ニフティクラウドのルーター機能を使って VLAN 同士を接続してみた

概要

ニフティクラウドのネットワークの機能にルータという機能があります
http://cloud.nifty.com/service/router.htm

異なる VLAN 同士を相互に接続することができる機能のようです
実際に動作試してみたので紹介します

環境

  • ニフティクラウド (2016/12/17 時点)
    • Region: east-1 (Zone: east-12)
  • ゲスト OS: CentOS6, 7

プライベート LAN の作成

今回は 2 つのプライベート LAN (vlan1 と vlan2) をルータを使って相互に接続してみます
ニフティクラウドのコントロールパネル (以下、コンパネ) から「ネットワーク」と進み「プライベート LAN の作成」から作成します

まず vlan1 は以下の通り
CIDR は 192.168.0.0/16 にしました
800

vlan2 は以下の通り
こちらは同じ CIDR だと疎通できた感がないので別の CIDR (172.10.0.0/16) にしました
try_niftycloud_router2.png

とりあえず作成できれば OK です

サーバの作成

作成した 2 つのプライベート LAN 上にサーバをそれぞれ 1 台ずつ作成します
特に理由はないですが、vlan1 には CentOS6 (c6) を vlan2 には CentOS7 (c7) をそれぞれ作成します
サーバを作成するときにプライベート側のネットワークは作成した VLAN をそれぞれ指定してください
IP アドレスはサーバが起動したあとに手動で設定します

サーバのスペックは好きなものに設定してください
ファイアウォールも自環境からアクセスできるように適宜設定してください
ただし、ファイアウォールは後々面倒になりそうなので各サーバには同じファイアウォールを設定してください

c6 -> vlan1
try_niftycloud_router3.png

c7 -> vlan2
try_niftycloud_router4.png

こんな感じで作成すれば OK です

サーバに IP アドレスを付与

eth0 側にはグローバル IP が振られているので eth1 側にプライベート IP を付与します
CentOS6 と CentOS7 で若干設定ファイルが異なるので注意してください
IP は「1」を振らなければ何番でも OK です
「1」は後で作成するルータが使用します

c6

  • vim /etc/sysconfig/network-scripts/ifcfg-eth1
  • ifup eth1
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.0.10
NETWORK=192.168.0.0
NETMASK=255.255.0.0
ONBOOT=yes
PEERDNS=no

c7

  • vim /etc/sysconfig/network-scripts/ifcfg-ens192
  • ifup ens192
EVICE=ens192
BOOTPROTO=static
IPADDR=172.10.0.10
NETWORK=172.10.0.0
NETMASK=255.255.0.0
ONBOOT=yes
PEERDNS=no

設定したら NIC を up してください
コンパネから確認すると以下のような感じになっていれば OK です
try_niftycloud_router5.png

ルータの作成

ではルータを作成していきます
左メニューから「ネットワーク」で「ルーター作成」を選択します
作成時のポイントは以下の通り

  • ネットワーク設定で作成した VLAN をそれぞれ設定します

追加ボタンからそれぞれ追加すれば OK です
ルータの IP は特に指定しないようにします
そうすることで「1」を勝手に降ってくれるようです
try_niftycloud_router6.png

  • ファイアウォールはサーバに設定したものと同じものを設定してください

別のファイアウォールを設定しても特に問題はないです
VLAN 同士で特にアクセス制限を設けない場合は同じファイアウォールにすればファイアウォール内のアクセスはすべて許可となります

ルータが作成できたら詳細を確認しましょう
以下のような感じなっていれば OK です

基本情報
try_niftycloud_router8

ネットワーク
try_niftycloud_router9.png

今回の構成が完成するとネットワーク構成図的には以下のようになります
( 関係ないサーバが 1 台いますが気にしないでください )
try_niftycloud_router7.png

ルーティングの追加と動作確認

あとは OS 上での設定となります
実施前に以下の ping を実行しておくと実際に疎通が通ったことがわかるので良いと思います

  • c6 # ping 172.10.0.10
  • c7 # ping 192.168.0.10

ルーティングを追加していない状態だと通信することができないと思います
ではまず c6 に以下の設定を実施します

route add -net 172.10.0.0/16 gw 192.168.0.1 eth1

次に c7 に以下の設定を実施します

route add -net 192.168.0.0 netmask 255.255.0.0 gw 172.10.0.1 ens192

すると ping が通るようになるのが確認できると思います
通った状態でルーティングを削除してみてください
例えば c6 だと route del -net 172.10.0.0/16 gw 192.168.0.1 eth1 という感じです
削除するとお互いが通信できなくなることがわかると思います

ちなみに再起動するとルーティングが削除されてしまうので /etc/sysconfig/network-scripts/route-eth1 とかに設定を書いておくと再起動しても消えません

最後に

ニフティクラウドのルータ機能を使って異なる VLAN を通信できるようにしてみました
VLAN が複数ある環境では便利な機能かもしれません
ルータには DHCP の機能もあるので VLAN 内のサーバに動的に IP を振ることもできると思います (今回紹介はしません)

また、別の機会で他の機能も紹介できればと思います

ハマりポイント

今回の作業でハマった点は以下の通り

  1. OS 上にルーティングの設定が必要なことに気づかなかった
  2. ドキュメントが少ない

1 つ目はネットワークの機能に「ルートテーブル」という機能がありこれで代用できるのかなとずっと勘違いしていました
ルートテーブルにいろいろとルートの追加をしてはルータにルートテーブルを設定して、外しては再度設定してと何度も試したのですが疎通できず素直に OS レベルでルーティングを設定してみたところすんなり通った感じです

2 つ目はそのまんまですが、Web 上に参考になるドキュメントが少なかったです
VPN 接続系の記事はちょくちょくあるのですが、ルータの記事が少ない感じでした

0 件のコメント:

コメントを投稿