本文へジャンプします。

ルーター機能のルートテーブルを利用してみた

ニフティクラウドのネットワーク機能では、仮想的なルーターを利用することができます。ルーターではDHCP、NAT、Webプロキシなどの設定が可能です。また、複数のルーター同士を接続するためにルートテーブルの機能があります。
今回はそのルートテーブルを利用して、インターネットに接続するためのゲートウェイを作成してみました。

ゴール

ゴールの構成は以下の通りです。完成すれば、同じ構成図がニフティクラウドのコントロールパネル (以下コンパネ)のネットワークから確認することができます。

try_routetable_goal.png

また、今回の構成を実現するにあたっての想定の料金は以下の通りです。
今回の記事ではリージョンはwest-1として進めます。

  • プライベートLAN × 2 = 20円/時 × 2 = 40円/時
  • サーバー × 2 = 42円/時 × 2 = 84円/時
  • ファイアウォール × 1 = 0円/時
  • ルーター × 1 = 20円/時
  • ルートテーブル × 1 = 0円/時

上記の合計で144円/時となります(料金は2016/12/26時点のものとなります)。

プライベートLANの作成

まずはプライベートLANを作成します。
コンパネの左メニューから「ネットワーク」->「プライベートLAN作成」を選択します。

今回は2つのプライベートLAN(vlan1、vlan2)を作成します。
プライベートLAN名は好きなものを指定してください。
ゾーンは今回はwest-11を選択します。
1つ目のプライベートLANのCIDRを172.16.0.0/24、2つ目のプライベートLANのCIDRを192.168.0.0/24として作成します。
料金プランは従量を選択します。

try_routetable_addding_vlan1.png

try_routetable_addding_vlan2.png

ファイアウォールの作成

次にファイアウォールを作成します。
今回、ニフティクラウド上に作成するリソースはすべて同じファイアウォールに所属させるので、サーバー間で必要な設定は特にありません。ニフティクラウド上のサーバーにSSHログインするための許可を設定すればOKです。

VMの作成

2つVMを作成します。1つは先程作成したvlan1にのみに接続されたグローバルネットワークとは隔離されたVMで、もう1つはvlan2とグローバルネットワークに接続されたVyOSを作成します。

VyOSの作成

まず、VyOSを作成します。
ニフティクラウドにすでに公開されているパブリックイメージがあるのでそれを利用します。
料金は従量を選択します。
プライベート側は先程作成したvlan2を選択します。

try_routetable_addding_server2.png

サーバーが作成できたら、IPアドレスとインターネットに接続するためのNATの設定を行います。
VyOSにログインしコマンドを実行します。ユーザーはVyOSになるので注意してください。

  • ssh -i sshkey_private.pem vyos@xxx.xxx.xxx.xxx
  • configure

ここで編集モードになります。

  • del interfaces ethernet eth1 address dhcp
  • set interfaces ethernet eth1 address ‘192.168.0.10/24’

上記でプライベートIPの設定を行います。以下でvlan1に属するサーバーがインターネットに出るための設定を行います。

  • set nat source rule 1 source address 172.16.0.0/24
  • set nat source rule 1 translation address ‘masquerade’
  • set nat source rule 1 outbound-interface eth0
  • commit
  • save

また、vlan1へのルーティングも追加しておきます。
exitで編集モードを抜けて以下を実行します。
vlan1へのルーティングをOSレベルで設定しています。

  • ip r add 172.16.0.0/24 via 192.168.0.1 dev eth1

CentOS7の作成

次にグローバルネットワークとは隔離されたVMを作成します。
ゲストOSはCentOS7を選択します。
料金は従量を選択します。

try_routetable_addding_server1.png

サーバーが作成できたら、IPアドレスの設定をします。
c7サーバーにログインし、コマンドを実行します。

  • ssh -i sshkey_private.pem root@xxx.xxx.xxx.xxx
  • cat /etc/sysconfig/network-scripts/ifcfg-ens192
DEVICE=ens192
BOOTPROTO=static
IPADDR=172.16.0.10
NETWORK=172.16.0.0
NETMASK=255.255.255.0
GATEWAY=172.16.0.1
ONBOOT=yes
PEERDNS=no
EOF

この後、サーバーを再起動するので再起動した際にもvlan2へのルーティングが通るようにしておきます。

  • cat /etc/sysconfig/network-scripts/route-ens192
192.168.0.0/24 via 172.16.0.1

ルーターが作成されていないので、まだVM同士の通信はできません。
CentOS7の方はプライベートIPを設定できたら、グローバル側のインタフェースを外しておきましょう。外さなくても問題ないですが、外した方が料金も若干安くなるのでおすすめです。

ルーターの作成

VMの作成が完了したらルーターを作成します。
左メニューの「ネットワーク」から「ルーター作成」を選択します。
ルーターには作成した2つのプライベートLANを接続します。
各プライベートLANにIPアドレスを指定しない場合は、.1がルーターのIPとして利用されます。
ファイアウォールはサーバーと同じファイアウォールを設定します。
タイプは一番小さい「router.small (10ルール)」で作成します。

try_routetable_addding_server2.png

ルーター作成後のc7サーバーへのプライベートIPでのログインはvyos経由で行えます。
vyos上にSSHキーを配置してログインしてください。先程、実施したOSレベルでのルーティング追加がうまくできていないと通信できません。

ルートテーブルの作成と設定

ルートテーブルは今回ゲートウェイとしての役割となります。
そのため、作成前にc7サーバーでpingでも実行してみます。まだ、疎通できていないことが確認できると思います。

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 172.16.0.1 icmp_seq=1 Destination Net Unreachable

この状態でルートテーブルを作成し、ルーターに設定してみます。
ルートテーブルは左メニューの「ルートテーブル」から作成できます。
「ディスティネーション」に0.0.0.0/0を設定し、ターゲットは「IPアドレス」を設定し、192.168.0.10を入力します。192.168.0.10はvyosに割り振ったプライベート側のIPとなります。

try_routetable_addding_routetable.png

要するにインターネット(0.0.0.0/0)に出る場合には、次のルーター(vyos)の192.168.0.10のインタフェースをホップします。という設定を作成します。

ルートテーブルが作成できたら、ルーターにルートテーブルを設定します。
ルートテーブルは作成しただけではダメでルーターに設定する必要があります。
作成したルーターを選択し、「ルーターの操作」から「ルートテーブルの設定」を選択します。
そして、事前に作成したルートテーブルを選択します。

try_routetable_setting_routetable.png

動作確認

ここまでできれば、c7がインターネットに接続できるようになっていると思います。
先程のpingがどうなっているかを確認してみてください。

# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=10.5 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=55 time=10.8 ms

上記のようにc7サーバーから外部に通信できていることが確認できると思います。
tracetouteを見てもルートテーブルで設定した通り、192.168.0.10 -> VyOSの共通グローバルのGatewayを通って通信していると思います。
VyOSの共通グローバル側をモニタしてみても良いと思います。
以下はVyOSで編集モードになりeth0 をモニタリングしている状況です。

  • run monitor interfaces ethernet eth0

try_routetable_ret_monitoring_eth0.png

大きなファイルをダウンロードしてる時にRX Rateが大幅に増加することが確認できると思います。

【おまけ】なぜこの構成にしたのか

2016/12/26時点のニフティクラウドでルーターのみを使用してルートテーブルを使用する場合はこの構成しかできません。理由は以下の通りです。

  • 1つのプライベートLANが複数の「ルーター」に所属することができないため、同一プライベートLAN内でのルーター同士の通信ができない。
  • そのため、パブリックイメージからVyOSを構築したが、ニフティクラウドの「インスタンス」には複数のプライベートネットワークが接続できない。
  • なので、ルーター同士の通信は実現できるが、ルーティング先が共通グローバルしかない。

という理由になります。

基本的にルートテーブルは、VPNゲートウェイと連動して使用するのがメインの使い方となります。
VPNゲートウェイについては、ほかに紹介している記事が多数ありますので、こちらをご確認ください。

また、今回は隔離されたネットワークにあるサーバーをインターネットに接続しただけなので、ルーター機能のSNATを利用しても実現可能です。
ルートテーブルの紹介も兼ねて、今回の構成を紹介いたしました。

ニフティクラウド 導入相談窓口
ニフティクラウド 無料セミナー

閉じる

閉じる

クラウドブログ編集部

クラウドブログ編集部

ニフティクラウド ユーザーブログ編集部のアカウントです。 編集部からのお知らせや、レギュラーライター以外のゲストによる寄稿記事を掲載していきます。

浜中 慶

浜中 慶

1980年、神奈川県生まれ。2003年ニフティ入社。 ポータルサイト開発を中心に、音楽配信サービス、CGMサービスなど様々なプロジェクトに企画/デザイン/システム担当として参加。現在は@niftyのポータルサービス向けコンテンツ管理システムの企画/開発/運用を担当。

吉田 雄哉

吉田 雄哉

株式会社co-meetingの創業メンバー。「取締役&External- facing Technologist」と名乗り新しいIT技術を広く伝える活動とWebアプリケーション開発を行う毎日。パッケージベンダーでのSaaS立上げ・製造業の情報システム部門で企画やPM・受託開発と従事してきたため、ベンダーサイドとユーザサイド の両方の視点を持ち合わせる。

石田 健亮

石田 健亮

株式会社ドリーム・アーツで小売事業者向けSaaS「Shopらん」を企画、開発。メインの仕事はプログラマーだがサーバー管理や営業もこなすユーティリティプレイヤー。最近好きな事はパフォーマンスチューニング。特に並列化プログラミングがマイブーム。キライなことはデータセンターでの作業。騒音と乾燥が弱点。ニフティクラウドでデータセンターに行く必要が無くなったことが本当の利点だ と思っている。

五月女 雄一

五月女 雄一

ニフティでは「インフラを守る簡単な様で奥が深いお仕事」をしています。 夢はインフラの気持ちが読めるエンジニアになること。

わたなべ かずひろ

わたなべ かずひろ

専門学校卒業後、ソフトウェア開発会社で電力系統制御システムの開発に従事。その後、CD-ROM等マルチメディア系PCソフトの開発を経て、1998年フリーランスに。 2000年8月に株式会社イーツーの設立に参画。携帯を含む様々なWeb系のシステム開発に携わる。現在はiPhone/Androidアプリなどの開発も手がけている。

市角

市角

ニフティクラウドのコントロールパネル設計・開発をメインに、たまにインフラの運用やお手伝いもやっていたりします。コントロールパネルや新機能の活用方法、アイデアなどを中心に書いていく予定です。

仲山 昌宏

仲山 昌宏

歌って踊れるインフラエンジニア兼、PHPもRubyもJavaも書くPerl使い。 物理サーバの運用に飽きて、フルラックに格安サーバ詰めて自宅プライベートクラウドを構築中。 今年は個人的には分散処理を攻めていきます。

猪飼 賢広

猪飼 賢広

1984年、愛知県名古屋市生まれ。大学は福島県にある某大学。2008年ニフティに入社。 開発系部署に配属後、主に各種テーマサイト開発のシステム面調整、開発進行管理役などとして参加。 現在もPC・ガラケーサイトの開発まわりを担当。インフラまわりを触る案件にも携わっており、日々修行中。 好きな芸人はなかやまきんに君とレイザーラモンRG。

久江 裕之

久江 裕之

ニフティクラウドのインフラ運用、OS提供の仕事をしています。 新しいOSやイメージが出る時にこのブログでご紹介いたします。入社5年目。一流のインフラエンジニアを目指して日々勉強中。

竹内 豪

竹内 豪

ニフティクラウド エンジニア

山口

山口

ニフティクラウドの基盤設計、新サービス/アライアンス/インフラ企画、その他雑用全般を担当しています。 クラウドに欲しい機能や、こんなふうに使ってほしいという想いが共有できれば良いですね。

芳中 隆幸

芳中 隆幸

ニフティクラウドの開発、運用を担当しています。

酒井 浩平

酒井 浩平

ニフティクラウドの中にいます。 ネットワークまわりの運用・開発や自動化などに取り組んでいます。 すべてのエンジニアを幸せにすることを目指しています。

higebu

higebu

ニフティクラウド IaaSのエンジニアです。 ネットワーク、DRサービス with VMware vCloud® Air™ Technology辺りの担当をしています。

武田

武田

ニフティクラウドの開発・運用を担当しています。 各種機能の内容についてなどで執筆させていただく予定です。

森藤 大地

森藤 大地

データに関する仕事が好きです。

宮原徹

宮原徹

日本仮想化技術株式会社 代表取締役社長兼CEO。仮想化技術に関するコンサルタントとして長年活動しており、特にベンチマークテストによる性能評価を得意としている。

荒谷翔

荒谷翔

株式会社はてなでMackerelのセールスデベロッパーとして勤務しています

東條 望

東條 望

2014年にニフティへ中途入社。 入社後から現在まで、ニフティクラウドのサービス企画・開発を担当しています。 各サービスの紹介を執筆させていただく予定です。