EdgeRouter-Xでポリシーベースルーティング(PBR)を使ってリモートデスクトップやSSHだけ経路を変更する

透過型プロキシの設定方法とほとんど一緒ですが、、、
AzureやAWS等のクラウド上のVMにリモートデスクトップ(RDP)接続したりSSH接続するときだけ、静的IPアドレスを持っているPPPoEセッション経由で通信させるように設定してみました。

前提として、通常のインターネット接続は動的NATになるDS-Lite接続側に流しておいて、RDP/SSHだけ固定IPアドレスを持っているPPPoE接続に流したいものとします。
# DS-LiteはIIJmio、PPPoEはi-revoを使ってます。

Fig.1 今回設定するネットワークの概念図

PPPoE接続の追加

set interfaces ethernet eth0 pppoe 0 default-route none
set interfaces ethernet eth0 pppoe 0 mtu 1492
set interfaces ethernet eth0 pppoe 0 name-server auto
set interfaces ethernet eth0 pppoe 0 password PASSWORD
set interfaces ethernet eth0 pppoe 0 user-id USER@i-revonet.jp

ここで重要なのは、default-route noneの記述。
これを書いていないとPPPoE接続がデフォルトルートとしてルートテーブルに載ってしまって、DS-Lite側にトラフィックを流せなくなります。

あとは適当にIPマスカレード(NAPT)の設定とか。

set service nat rule 5003 description 'masquerade for WAN'
set service nat rule 5003 log disable
set service nat rule 5003 outbound-interface pppoe0
set service nat rule 5003 protocol all
set service nat rule 5003 type masquerade

PBR用にルートテーブルを用意する

set protocols static table 10 interface-route 0.0.0.0/0 next-hop-interface pppoe0

後述するPBRで利用するルートテーブル10番を作成して、ネクストホップをPPPoE接続にしたデフォルトルートを持つようにします。

PBRで引っかける通信のフィルタ条件を用意する

set firewall modify PBR1 description 'PBR route for RDP/SSH'
set firewall modify PBR1 rule 100 action modify
set firewall modify PBR1 rule 100 destination address '!192.168.0.0/16'
set firewall modify PBR1 rule 100 destination port 22,3389
set firewall modify PBR1 rule 100 modify table 10
set firewall modify PBR1 rule 100 protocol tcp
set firewall modify PBR1 rule 101 action modify
set firewall modify PBR1 rule 101 destination address '!192.168.0.0/16'
set firewall modify PBR1 rule 101 destination port 3389
set firewall modify PBR1 rule 101 modify table 10
set firewall modify PBR1 rule 101 protocol udp

ルール100番は、自宅で使っているアドレス空間(192.168.0.0/16)以外の宛先に対する、TCP 22 (SSH)とTCP 3389 (RDP)の通信を引っかけて、ルートテーブル10番を利用するようにしています。

ルール110番は、同じくUDP 3389 (RDP)の通信を引っかけています。
# リモートデスクトップ接続はTCP/UDP 3389を両方セットで通信出来るようにしておくと、最初の認証系の通信以外はほぼUDPのみで通信してくれるようになって、応答性やロバスト性が向上することが多い。

PBRをインターフェースに適用する

set interfaces switch switch0 firewall in modify PBR1

リモートデスクトップ接続やSSH接続を利用するクライアントが所属するインターフェースに対して、PBRを設定する

実際に動いているか確認する

設定先のインターフェースを間違えると全然動かない!みたいなことになるので、そのときは統計ログを見てみると良い。

show firewall modify PBR1 statistics

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です