LoginSignup
4

More than 5 years have passed since last update.

EdgeRouter X で外部側のポートをLAN内サーバのポートへ転送する設定

Last updated at Posted at 2017-08-11

背景

WAN側に来たポート80,443のパケットをLAN内のサーバに転送する設定。
例のごとくCLIで設定を行う。
前回までの設定を前提としている。
サーバのIPアドレスは192.168.0.2/24。

Firewallの設定

# set firewall name WAN_IN rule 30 action accept
# set firewall name WAN_IN rule 30 destination address 192.168.0.2
# set firewall name WAN_IN rule 30 destination port 80,443
# set firewall name WAN_IN rule 30 protocol tcp

上記設定、ご指摘いただいたので修正した。

- # set firewall name WAN_IN rule 30 destination address 192.168.0.2/24
+ # set firewall name WAN_IN rule 30 destination address 192.168.0.2

特定のホストのネットマスクなんてルータからしたらどうでもよく、指定しなくてもよいそう。
ホスト単体を指定するなら、192.168.0.2/32が正しい。
ネットワーク範囲なら192.168.0.0/24が正しい。
今回の場合は、ホスト単体を指定しているがなしでもいけるので上記のようにした。

NATの設定

「vyOSと同じだろう」と思って試したが、NATがなかったので焦った。
よく見たらservice内にあったので解決。
ポート80と443の記述が冗長な気がする。
あと、ポートの指定も。

# set service nat rule 10 description "port forward to Server (http)"
# set service nat rule 10 destination port 80
# set service nat rule 10 inbound-interface pppoe0
# set service nat rule 10 inside-address address 192.168.0.2
# set service nat rule 10 inside-address port 80
# set service nat rule 10 protocol tcp
# set service nat rule 10 type destination
# set service nat rule 20 description "port forward to Server (https)"
# set service nat rule 20 destination port 443
# set service nat rule 20 inbound-interface pppoe0
# set service nat rule 20 inside-address address 192.168.0.2
# set service nat rule 20 inside-address port 443
# set service nat rule 20 protocol tcp
# set service nat rule 20 type destination

気になること

逆向きの設定(SNAT)はいらないのかな?
なんとなくで設定して、これでSSHやhttp使えてるけど。

ステートフルなNATなため要らない、とご指摘いただきました。
今回の設定で入ってきたパケットから始まるTCPセッションを追いかけていくので、戻りもTCPセッションが閉じるまで変換され続けるそう。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4