VyOSでNATを設定する

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のルールについて拡張ドキュメントを作成したいと思います。

 


お疲れ様でした