専用ルータと同等の機能を備える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も用意されている。もしサポートが必要であれば、こちらの利用も検討すると良いだろう。