NEC IX ルータでstatic NAPT(ポートフォワード)を設定し、LAN内のサーバをWANに公開する方法を説明します。
設定まとめ
NAPT有効化
static NAPT(ポートフォワード)を使用するためには、まずNATPを有効にする必要があります。
Router(config)# interface GigaEthernet0.0 Router(config-GigaEthernet0.0)# ip napt enable
ポートフォワード
以下のコマンドでポートフォワードを定義します。
Router(config)# interface GigaEthernet0.0 Router(config-GigaEthernet0.0)# ip napt static <private_address> {tcp|udp} <port_num>
動作確認
動作確認の構成
以下の環境で動作確認を行います。検証の都合上、実際のインターネットではなく擬似的なインターネットを使用します。
+-----------------+ | Internet | | VyOS 1.4 | +-------+---------+ eth0 | .1 | | 200.0.0.0/24 | Gi0.0 | .200 +-------+---------+ | NEC IX 2015 | | R1 | +-------+---------+ Gi1.0 | .254 | | 192.168.1.0/24 | ens192 | .dhcp +-------+---------+ | Rocky Linux 8.4 | | host100 | +-----------------+
初期設定
IX2015の初期設定は以下の通りとします。設定はIPアドレスとデフォルトゲートウェイのみです。
動作確認 (1) NAPT設定
NAPTを設定します。
[R1:IX2015] interface GigaEthernet0.0 ip napt enable
NEC IXがtcp22, tcp80で受信したパケットをhost100(192.168.1.100)へ転送する設定を入れます。
[R1:IX2015] interface GigaEthernet0.0 ip napt static 192.168.1.100 tcp 22 ip napt static 192.168.1.100 tcp 80
NEC IX(200.0.0.200)宛の通信がhost100(192.168.1.100)へ転送される事を確認します。
[Internet:VyOS1.4] admin@vyos:~$ admin@vyos:~$ ssh 200.0.0.200 -l root root@200.0.0.200's password: Last login: Fri Nov 19 19:39:52 2021 from 200.0.0.1 [root@host100 ~]# exit logout Connection to 200.0.0.200 closed. admin@vyos:~$ admin@vyos:~$ admin@vyos:~$ admin@vyos:~$ curl -I http://200.0.0.200 HTTP/1.1 200 OK Date: Fri, 19 Nov 2021 10:41:56 GMT Server: Apache/2.4.37 (rocky) Last-Modified: Fri, 19 Nov 2021 10:37:50 GMT ETag: "3-5d121dde934cc" Accept-Ranges: bytes Content-Length: 3 Content-Type: text/html; charset=UTF-8 admin@vyos:~$
この疎通確認の様子をパケットキャプチャした結果は以下の通りです。
[host010:RockyLinux8.4] [root@host100 ~]# tcpdump -nnn host 200.0.0.1 dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes 19:41:51.180536 IP 200.0.0.1.46752 > 192.168.1.100.22: Flags [S], seq 2927712475, win 64240, options [mss 1460,sackOK,TS val 1732329345 ecr 0,nop,wscale 7], length 0 19:41:51.180604 IP 192.168.1.100.22 > 200.0.0.1.46752: Flags [S.], seq 4102855952, ack 2927712476, win 28960, options [mss 1460,sackOK,TS val 2888308001 ecr 1732329345,nop,wscale 7], length 0 19:41:51.181135 IP 200.0.0.1.46752 > 192.168.1.100.22: Flags [.], ack 1, win 502, options [nop,nop,TS val 1732329346 ecr 2888308001], length 0 19:41:51.181695 IP 200.0.0.1.46752 > 192.168.1.100.22: Flags [P.], seq 1:33, ack 1, win 502, options [nop,nop,TS val 1732329346 ecr 2888308001], length 32 19:41:51.181721 IP 192.168.1.100.22 > 200.0.0.1.46752: Flags [.], ack 33, win 227, options [nop,nop,TS val 2888308002 ecr 1732329346], length 0 19:41:51.201071 IP 192.168.1.100.22 > 200.0.0.1.46752: Flags [P.], seq 1:22, ack 33, win 227, options [nop,nop,TS val 2888308022 ecr 1732329346], length 21 19:41:51.201547 IP 200.0.0.1.46752 > 192.168.1.100.22: Flags [.], ack 22, win 502, options [nop,nop,TS val 1732329366 ecr 2888308022], length 0 <omitted> 19:41:56.966291 IP 200.0.0.1.51756 > 192.168.1.100.80: Flags [S], seq 2430144018, win 64240, options [mss 1460,sackOK,TS val 1732335131 ecr 0,nop,wscale 7], length 0 19:41:56.966349 IP 192.168.1.100.80 > 200.0.0.1.51756: Flags [S.], seq 4281736350, ack 2430144019, win 28960, options [mss 1460,sackOK,TS val 2888313787 ecr 1732335131,nop,wscale 7], length 0 19:41:56.966897 IP 200.0.0.1.51756 > 192.168.1.100.80: Flags [.], ack 1, win 502, options [nop,nop,TS val 1732335131 ecr 2888313787], length 0 19:41:56.966963 IP 200.0.0.1.51756 > 192.168.1.100.80: Flags [P.], seq 1:77, ack 1, win 502, options [nop,nop,TS val 1732335132 ecr 2888313787], length 76: HTTP: HEAD / HTTP/1.1 19:41:56.966997 IP 192.168.1.100.80 > 200.0.0.1.51756: Flags [.], ack 77, win 227, options [nop,nop,TS val 2888313788 ecr 1732335132], length 0 <omitted>