vyattaのNATの設定

公開日:2013/08/31 更新日:2013/08/31
vyattaのNATの設定のサムネイル

これまでにKVMを使って図1のような仮想環境を構築してきました。図1の仮想環境において、各仮想マシンubuntu1、ubuntu2がインターネットへ接続するには、vyattaBにおいて、NATの設定を行う必要があります。よってここでは、vyattaのNATの設定方法をメモします。

virtual_net_configure.png 図1 KVMによる仮想環境イメージ図

状況としては、図1のようにKVM上で動作している仮想マシンubuntu1を、vyattaA ---> vyattaBを経由してインターネットにつなぎたいという場合です。なお、ubuntu2についてもvyattaC ---> vyattaBを経由してインターネットに接続できるようにします。

ちなみに、KVMでは、デフォルトで用意されている仮想ネットワーク「default」に接続された仮想マシンはインターネットへ接続することができます。そして「default」のネットワークアドレスは「192.168.122.0/24」です。この仮想ネットワーク「default」に属する仮想マシンのトラフィックは、KVMが動作するホストマシンのiptablesのNATの設定によってホストマシンのトラフィックに変換されます。これにより「default」に属する仮想マシンのインターネット接続を実現しています。なお、この仮想ネットワーク「default」やiptablesの設定についてはKVM (Kernel-based Virtual Machine) による仮想環境の構築手順(KVMのインストールと仮想ネットワーク作成手順)を参照下さい。

よって、図1において「default」に属するvyattaBはすでにインターネットへ接続することができます。そこで、ubuntu1、ubuntu2の通信を、vyattaBにおいてNATを使って「default」に属する仮想マシンのトラフィックに変換することで、ubuntu1、ubuntu2をインターネットに接続できるようにします。

vyattaのNATの設定

vyattaBにNATの設定を行うことで、vyattaBのeth6に入ってきたトラフィックのIPアドレスをvyattaBのeth7のIPアドレス192.168.122.3に変換します。これにより、ubuntu1、ubuntu2のトラフィックがあたかも仮想ネットワーク「default」に属するvyattaBのeth7からのトラフィックとして扱われ、ubuntu1、ubuntu2がインターネットへ接続できるようになります。そしてこれを実現するためには、vyattaBにおいて、以下のコマンドを実行し、NATを設定します。

vyatta@vyatta# set nat source rule 1 source address 0.0.0.0/0
vyatta@vyatta# set nat source rule 1 translation address 192.168.122.3
vyatta@vyatta# set nat source rule 1 outbound-interface eth1

・1行目 NATによって変換する送信元IPアドレスを「0.0.0.0/0」に指定しています。「0.0.0.0/0」はすべてのIPアドレスが対象になります。したがって、この場合は、送信元IPアドレスに関わらず全てのトラフィックが変換対象となります。ちなみに、「rule」の後に続く数字の「1」は、任意の番号です。

・2行目 1行目で指定した送信元IPアドレスを「192.168.122.3」に変換しています。

・3行目 1行目、2行目で変換したトラフィックが出て行くインターフェースを「eth7」に指定しています。

以上により、送信元IPアドレスに関わらずvyattaBに入ってきたトラフィックの送信元IPアドレスは「192.168.122.3」に変換され、eth7から出て行くことになります。 そして、NATの設定内容を確認すると、以下のようになっています。

vyatta@vyatta# show nat source rule 1
outbound-interface eth1
source {
   address 0.0.0.0/0
}
translation {
   address 192.168.122.3
}

開発アプリ

nanolog.app

毎日の小さな出来事をなんでも記録して、ログとして残すためのライフログアプリです。