VyOSルータで使用できるNAT
主に下記の3つです
- ソースNAT(スタティック)
- 宛先NAT(スタティック)
- NAPT
それぞれ、下記の設定手順が必要となります。
VyOSルータでソースNATを設定する手順
- アウトバウンドインタフェースを指定する
- ソースアドレスを指定する
- 変換先アドレスを指定する
VyOSルータで宛先NATを設定する手順
- インバウンドインタフェースを指定する
- クライアントが指定する宛先アドレスを指定する
- 変換先アドレスを指定する
VyOSルータでソースNAPTを設定する手順
- アウトバウンドインタフェースを指定する
- ソース範囲を指定する
- 変換先アドレスを指定する
Ciscoでは設定の際に、インタフェースにインバウンド/アウトバウンドの指定をする必要がありましたが、VyOSでは、「ソースNAT関連ならアウトバウンド、宛先NAT関連ならインバウンド」を設定することとなります。
では、それぞれ詳しく見ていきます。
ソースNATを設定する
使用する手順及びコマンドは下記の通りです。
| 設定項目 | コマンド例 |
|---|---|
| アウトバウンドインタフェースを指定する | set nat source rule <ルール番号> outbound-interface name <インタフェース> |
| ソースアドレスを指定する | set nat source rule <ルール番号> source address <ソースアドレス> |
| 変換先アドレスを指定する | set nat source rule <ルール番号> translation address <IPアドレス | masquerade> //masqueradeは先程設定したアウトバウンドインタフェースとの紐付けを行う。←通常masqueradeを使用する。 |
では例題です。
| IPアドレス192.168.10.10を持つクライアントからの通信の送信元を200.0.0.1へ変換する。 ルータが持つインタフェースはそれぞれ、eth1:192.168.10.254/24、eth2:200.0.0.1/24とする。 |
コマンド
set interfaces ethernet eth1 address 192.168.10.254/24 set interfaces ethernet eth2 address 200.0.0.1/24 set nat source rule 100 outbound-interface name eth2 set nat source rule 100 source address 192.168.10.10 set nat source rule 100 translation address masquerade
解説
- 3行目:アウトバウンドインタフェースを指定しています。グローバルIPアドレス(厳密には変換先としたいアドレス)が設定されたインタフェースを指定します。
- 4行目:変換の対象としたいクライアントがもつIPアドレスを指定します。
- 5行目:変換の紐付けを行います。IPアドレスを直接指定しても良いですが、先程アウトバウンド指定したインタフェースがあるので、masqueradeを指定してあげたほうが管理がしやすくなるため、こちらをおすすめします。
・全体を通して、ルールには同じ値を使用する必要があります。
ですが例として今回の設定に192.168.10.20をもつクライアントも変換対象としたいと言った場合、このような場合は新たなルール番号を使用して定義する必要があります。
この場合の具体的なコマンドを記述します。
コマンド
set interfaces ethernet eth1 address 192.168.10.254/24 set interfaces ethernet eth2 address 200.0.0.1/24 set nat source rule 100 outbound-interface name eth2 set nat source rule 100 source address 192.168.10.10 set nat source rule 100 translation address masquerade set nat source rule 101 outbound-interface name eth2 set nat source rule 101 source address 192.168.10.20 set nat source rule 101 translation address masquerade
ルータの設定上、1つのルールには1つの変換しか記述できませんので、注意が必要です。
宛先NATを設定する
使用するコマンド
| 設定項目 | コマンド例 |
|---|---|
| インバウンドインタフェースを指定する | set nat destination rule <ルール番号> inbound-interface name <インタフェース> |
| クライアントが指定する宛先アドレスを指定する | set nat destination rule <ルール番号> destination address <アドレス> |
| 変換先アドレスを指定する | set nat destination rule <ルール番号> translation address <変換先アドレス> |
例題
| IPアドレス100.0.0.1を宛先とする通信の宛先を200.0.0.2へ変換する。 ルータが持つインタフェースはそれぞれ、eth1:192.168.10.254/24、eth2:200.0.0.1/24とする。 |
コマンド
set interfaces ethernet eth1 address 192.168.10.254/24 set interfaces ethernet eth2 address 200.0.0.1/24 set nat destination rule 100 inbound-interface name eth1 set nat destination rule 100 destination address 100.0.0.1 set nat destination rule 100 translation address 200.0.0.2
解説
- 3行目:インバウンドインタフェースを指定しています。インバウンドインタフェースは、クライアントからのパケットを受け取るインタフェースとなります。
- 4行目:変換の対象となるIPアドレスを指定しています。
- 5行目:変換先のアドレスを指定しています。なおソースNATではmasqueradeの指定ができましたが、宛先NATではmasqueradeを使用することが不可能です。
その他注意点はソースNATと同様です。
NAPTを設定する
使用するコマンド
| 設定項目 | コマンド例 |
|---|---|
| アウトバウンドインタフェースを指定する | set nat source rule <ルール番号> outbound-interface name <インタフェース> |
| ソース範囲を指定する | set nat source rule <ルール番号> source address <ソースアドレス範囲> |
| 変換先アドレスを指定する | set nat source rule <ルール番号> translation address <IPアドレス | masquerade> |
Ciscoでは、overload オプションを指定しなければNAPTの動作をしてくれませんが、VyOSではそのような特別なオプションを使用するのではなく、ソースアドレスとして、アドレス範囲を指定することでNAPTの動作とすることができます。
では設定例を見ていきましょう。
| NAPTの設定を行う。 送信元範囲192.168.10.0/24を変換対象とし、変換先アドレスは200.0.0.1とする。 ルータが持つインタフェースはそれぞれ、eth1:192.168.10.254/24、eth2:200.0.0.1/24とする。 |
コマンド
set interfaces ethernet eth1 address 192.168.10.254/24 set interfaces ethernet eth2 address 200.0.0.1/24 set nat source rule 100 outbound-interface name eth2 set nat source rule 100 source address 192.168.10.0/24 set nat source rule 100 translation address masquerade
解説
- 3行目:指定するアドレスはアドレス範囲にする必要があります。
このようにNAPTは基本的にはソースNATと設定方法が同じで、アドレス範囲にする必要があるだけです。
以上、VyOSでのNATの設定でした。次回はポート番号を追加したNATのルールについて拡張ドキュメントを作成したいと思います。
お疲れ様でした