SEIL/x86 FujiによるNAT設定例(その1:NAPT/IPマスカレード)
はじめに
NAPTは主にプライベートネットワークとグローバルネットワークをつなぐ際のアドレス変換に使用される技術です。
身近な例では、自宅のLANとインターネットを接続するブロードバンドルータの主な役割がこれにあたります。
IPマスカレードと言った方が、分かる方もいらっしゃると思います。
環境
下図は本稿の前提環境です。
SEIL/x86を挟んで左側(192.168.10.0/24)がプライベート側(LAN側)。
右側(10.1.0.0/16)がグローバル側(WAN側)を想定しています。
LAN側、WAN側の各ノード(PC)のネットワーク設定は以下の通りとします。
PC | IPアドレス | サブネット | ゲートウェイ |
---|---|---|---|
LAN側 | 192.168.10.10 | /24 | 192.168.10.254 |
WAN側 | 10.1.1.10 | /16 | 10.1.1.1 |
設定
最初に、上記通りにSEILのインタフェイス設定を行います。
interface lan0 add 192.168.10.254/24
interface lan1 add 10.1.1.1/16
LAN側(192.168.10.0/24)からWAN側へ通信する際に、相手先にインタフェイスLAN1のグローバルアドレス(10.1.1.1)からのアドレスであるようにアドレス変換します。
nat napt add private 192.168.10.0-192.168.10.255 interface lan1
以上で設定は完了です。
検証
LAN側のノードからWAN側のノードにPINGを実行して、その結果をパケットキャプチャ等を交えて検証します。
パケットキャプチャはSEILのtcpdumpコマンドを使用します。
PING実行結果
LAN側ノード(192.168.10.10)からPINGを3回実行。WAN側のノード(10.1.1.10)と通信できているのが分かります。
[root@LAN1 Desktop]# ping -c 3 10.1.1.10
PING 10.1.1.10 (10.1.1.10) 56(84) bytes of data.
64 bytes from 10.1.1.10: icmp_seq=1 ttl=63 time=1.96 ms
64 bytes from 10.1.1.10: icmp_seq=2 ttl=63 time=0.533 ms
64 bytes from 10.1.1.10: icmp_seq=3 ttl=63 time=0.543 ms
--- 10.1.1.10 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.533/1.013/1.965/0.673 ms
[root@LAN1 Desktop]#
SEIL/x86パケットキャプチャ結果(LAN側)
別セグメントとの通信なので、最初にゲートウェイ(192.168.10.254)のARPリクエストが飛び、その後PINGを3回実行しているのでICMPパケットが3往復しています。
宛先が別セグメント(10.1.1.10)のため、ゲートウェイのMACアドレスを確認するために最初にARPリクエストが発生しています。
SEILx86_02# tcpdump interface lan0
################################################################
tcpdump: when you want to exit this program, please type Ctrl-C.
################################################################
21:42:18.553204 ARP, Request who-has 192.168.10.254 tell 192.168.10.10, length 46
21:42:18.553297 ARP, Reply 192.168.10.254 is-at 00:0c:29:dd:ec:b3, length 28
21:42:18.553446 IP 192.168.10.10 > 10.1.1.10: ICMP echo request, id 30474, seq 1, length 64
21:42:18.553974 IP 10.1.1.10 > 192.168.10.10: ICMP echo reply, id 30474, seq 1, length 64
21:42:19.554172 IP 192.168.10.10 > 10.1.1.10: ICMP echo request, id 30474, seq 2, length 64
21:42:19.554518 IP 10.1.1.10 > 192.168.10.10: ICMP echo reply, id 30474, seq 2, length 64
21:42:20.554937 IP 192.168.10.10 > 10.1.1.10: ICMP echo request, id 30474, seq 3, length 64
21:42:20.555245 IP 10.1.1.10 > 192.168.10.10: ICMP echo reply, id 30474, seq 3, length 64
SEIL/x86パケットキャプチャ結果(WAN側)
LAN側のキャプチャ結果と比較して、ICMPパケットの発信元アドレスが10.1.1.1に変換されています。
これによりNAPTが動作している事が分かります。
SEILx86_02# tcpdump interface lan1
################################################################
tcpdump: when you want to exit this program, please type Ctrl-C.
################################################################
21:42:18.553503 ARP, Request who-has 10.1.1.10 tell 10.1.1.1, length 28
21:42:18.553713 ARP, Reply 10.1.1.10 is-at 00:0c:29:b5:77:65, length 46
21:42:18.553748 IP 10.1.1.1 > 10.1.1.10: ICMP echo request, id 30474, seq 1, length 64
21:42:18.553934 IP 10.1.1.10 > 10.1.1.1: ICMP echo reply, id 30474, seq 1, length 64
21:42:19.554263 IP 10.1.1.1 > 10.1.1.10: ICMP echo request, id 30474, seq 2, length 64
21:42:19.554454 IP 10.1.1.10 > 10.1.1.1: ICMP echo reply, id 30474, seq 2, length 64
21:42:20.555045 IP 10.1.1.1 > 10.1.1.10: ICMP echo request, id 30474, seq 3, length 64
21:42:20.555211 IP 10.1.1.10 > 10.1.1.1: ICMP echo reply, id 30474, seq 3, length 64
NAT動作状況の確認
SEILではshow status natコマンドでNATの動作状況を確認できます。
以下のように、NAPTで192.168.10.10が10.1.1.1にアドレス変換され、10.1.1.10と通信している事が分かります。
SEILx86_02# show status nat
upnp is currently unavailable
List of active IP mapping:
List of active sessions:
1:napt lan1 icmp 192.168.10.10 = 10.1.1.1 <-> 10.1.1.10 [00:00:00]
SEILx86_02#
さいごに
NAPTはNAT環境を構築する際に、最も基本となる事が多い設定です。
これをベースに必要な設定を追加する事で、ルータの設定の幅を増やしていくのが良いでしょう。
Author And Source
この問題について(SEIL/x86 FujiによるNAT設定例(その1:NAPT/IPマスカレード)), 我々は、より多くの情報をここで見つけました https://qiita.com/inarmo/items/2b630b6222c9e464bcf8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .