専用ルータと同等の機能を備えるLinuxベースのソフトウェアルーター「Vyatta」を使う 5ページ
Vyattaの設定
Vyattaのコンソールはハードウェアルーターのコンソール画面を意識したものとなっており、それらと似たようなコマンドライン体系を持っている。また、Tabキーでの補完機能も用意されている。たとえば、プロンプトで何も表示されていない状態でTabキーを押すと、次のようにコマンド一覧が表示される。
$ Possible completions: add Add an object to a service clear Clear system information clone Clone an object configure Enter configure mode connect Establish a connection copy Copy an object delete Delete an object disconnect Take down a connection force Force an operation format Format a device generate Generate an object install Install a new system monitor Monitor system information ping Send IPv4 Internet Control Message Protocol (ICMP) echo request poweroff Poweroff the system reboot Reboot the system release Release specified variable rename Rename an object renew Renew specified variable reset Reset a service restart Restart a service set Set operational options show Show system information telnet Telnet to a node traceroute Track network path to node update Update data for a service
Vyattaのコンソールでは、各種情報の表示や管理コマンドを実行できるOperational mode(運用モード)と、各種設定を行うためのConfiguration mode(設定モード)の2つを適宜切り替えて操作を行うことになる。ログイン直後は運用モードになっているが、設定モードに切り替えるにはconfigureコマンドを実行する。
$ configure [edit] #
設定モードではプロンプトが「#」になり、またプロンプトの前に「[edit]」という文字列が表示され、実行できるコマンドも異なるものとなる。たとえば設定モードでTabキーを押して利用できるコマンド一覧を表示させると以下のようになる。
# Possible completions: confirm Confirm prior commit-confirm comment Add comment to this configuration element commit Commit the current set of changes commit-confirm Commit the current set of changes with 'confirm' required compare Compare configuration revisions copy Copy a configuration element delete Delete a configuration element discard Discard uncommitted changes edit Edit a sub-element exit Exit from this configuration level load Load configuration from a file and replace running configuration loadkey Load user SSH key from a file merge Load configuration from a file and merge running configuration rename Rename a configuration element rollback Rollback to a prior config revision (requires reboot) run Run an operational-mode command save Save configuration to a file set Set the value of a parameter or create a new element show Show the configuration (default values may be suppressed)
設定モードから運用モードに戻るには、exitコマンドを実行すれば良い。
# exit exit vyatta@vyatta:~$
NICの設定
ルーターの設定において、まず最低限必要なのがNICの設定だ。設定モードでは、ネットワークインターフェイス関連の設定をshow interfacesコマンドで確認できる。
# show interfaces interfaces { ethernet eth0 { hw-id 52:54:00:d8:dd:e9 } ethernet eth1 { hw-id 52:54:00:d8:dd:f0 } loopback lo { } }
ここではNICの認識はされているものの、そのIPアドレスについてはまだ設定されていないことが分かる。NICにIPアドレスなどを設定するには、設定モードでset interfacesコマンドを使用する。たとえばeth0に203.0.113.100/24というIPアドレスを指定するには、次のようにする。
# set interfaces ethernet eth0 address 203.0.113.100/24 [edit] # set system gateway-address 203.0.113.128 [edit] # set system name-server 203.0.113.2 [edit] # set system name-server 203.0.113.3 [edit]
実行例中で太字の部分は環境に応じて変更して欲しいが、まず最初の「set interfaces ethernet eth0 address」コマンドでは、eth0に割り当てるIPアドレスを指定している。続く「set system gateway-address」行ではデフォルトゲートウェイアドレスを、 「set system name-server」行では使用するネームサーバーを指定している。これらのコマンドを、使用するそれぞれのNICに対して実行しておく。
設定が完了したら、最後にcommitコマンドを実行して変更を反映される。また、saveコマンドを実行して変更した設定をファイルに保存しておく。これにより、再起動後もこの設定がロードされるようになる。
vyatta@vyatta# commit [edit] vyatta@vyatta# save Saving configuration to '/config/config.boot'... Done
NATの設定
Vyattaには標準でNATの機能が備えられており、簡単な設定でNATを実現できる。たとえば今回の例では以下のようにset nat sourceコマンドで設定を行えば良い。
set nat source rules <ルール番号> address <NAT元のアドレス> set nat source rules <ルール番号> translation addresss masquerade
ここでルール番号には適当な数値を、NAT元のアドレスはNATの対象とするIPアドレスを指定する。たとえば192.168.100.0/24というネットワークに所属するマシンからのIPパケットに対しNATを行うには、次のようにする。
# set nat source rule 50 source address 192.168.100.0/24 [edit] # set nat source rule 50 translation address masquerade [edit] # commit [edit] # save Saving configuration to '/config/config.boot'... Done [edit]
NAT設定を確認するには、show natコマンドを実行すれば良い。
# show nat source { rule 50 { outbound-interface eth0 source { address 192.168.100.0/24 } translation { address masquerade } } }
これだけで、ローカルネットワーク内のマシンからインターネットへのNATを介した接続が可能になる。
静的NATを行う
インターネットからローカルネットワーク内のマシンで稼働させているサービスへの接続を行いたい場合、ルーターで静的なNATを設定するのが一般的だ。たとえばルーターのIPアドレスが203.0.113.100で、サービスを稼働させているマシンのIPアドレスが192.168.100.21、稼働させているサービスのポート番号が80番だった場合、203.0.113.100の80番ポート宛のパケットを192.168.100.21の80番ポートに転送することで、インターネットからの接続が可能になる。このような設定は、以下のようにset nat destinationコマンドで行える。
# set nat destination rule 60 inbound-interface eth0 [edit] # set nat destination rule 60 destination address 203.0.113.100 [edit] # set nat destination rule 60 destination port 80 [edit] # set nat destination rule 60 protocol tcp [edit] # set nat destination rule 60 translation address 192.168.100.21 [edit] # set nat destination rule 60 translation port 80 [edit]
なお、実行例中太字の部分は環境に応じて適宜変更してほしい。行った設定はshow natコマンドで確認できる。
# show nat +destination { + rule 60 { + destination { + address 133.242.98.142 + port 80 + } + inbound-interface eth0 + protocol tcp + translation { + address 192.168.100.21 + port 80 + } + } +} source { rule 50 { outbound-interface eth0 source { address 192.168.100.0/24 } translation { address masquerade } } }
ここで問題がなければcommitコマンドで設定を反映させ、saveコマンドで保存しておく。
# commit [edit] # save Saving configuration to '/config/config.boot'... Done [edit]
ハードウェアルーターが持つ一通りの機能を備えるVyatta、Debian GNU/Linuxのパッケージも利用可能
今回はVyattaの基本的な使い方のみを説明したが、Vyattaにはこのほかファイアウォール(パケットフィルタ)やVPNなどの機能も用意されている。また、VyattaはDebian GNU/Linuxをベースとしており、apt-getコマンドを使って任意のソフトウェアパッケージをインストールして利用することも可能だ。そのため、さまざまな応用例が期待できる。複数台の専用サーバーを利用している場合だけでなく、仮想化ソフトウェアを使ってサーバー上で複数台の仮想マシンを運用している場合などにも活用できるだろう。
なお、Vyattaは商用サポート付きのVyatta Subscription Editionも用意されている。もしサポートが必要であれば、こちらの利用も検討すると良いだろう。