透過型プロキシの設定方法とほとんど一緒ですが、、、
AzureやAWS等のクラウド上のVMにリモートデスクトップ(RDP)接続したりSSH接続するときだけ、静的IPアドレスを持っているPPPoEセッション経由で通信させるように設定してみました。
前提として、通常のインターネット接続は動的NATになるDS-Lite接続側に流しておいて、RDP/SSHだけ固定IPアドレスを持っているPPPoE接続に流したいものとします。
# DS-LiteはIIJmio、PPPoEはi-revoを使ってます。
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