- NAT設定が正しくできているか不安
- 通信が失敗するのでNATされているか確認したい
この記事では、そんな方にNATのアドレス変換を確認する方法を紹介します。
この記事を読めば、NATの成功例と失敗例を載せているので、状態がすぐに分かります。
NAT条件
NAT変換の条件は大きく2種類
- 送信元IPのNAT
- 送信先IPのNAT
それぞれの設定例を紹介します。
送信元IPのNAT
interface channel0
rule src-nat 400 192.168.1.1 to 10.1.1.1 set-org-ip
- src-natはIPCOMで指定したインタフェースから出る時にNATされます。
送信先IPのNAT
interface channel0
rule dst-nat 500 10.1.1.1 to 192.168.1.1
- dst-natはIPCOMで指定したインタフェースへ入る時にNATされます。
NATを見る2つの方法
NAT変換の情報を見る方法は2つあります。
- IPCOM実機
- ログサーバ ※ログ出力の設定をしている場合
IPCOMにこちらの設定があればNATのログがサーバに転送されます。
転送ログ指定いずれか1つ ※指定なしの場合は全て転送されるのでそれでもOK
filter session
filter session nat
filter message
filter message nat
転送先サーバ情報(必須)
syslog 192.168.1.100 interface channel1 protocol 514/tcp
※192.168.1.100(ログサーバのIP)
※channel1(ログサーバが接続されているインタフェース)
ログサーバ側でログ受信と保存用の設定が別途必要です。
IPCOM実機は現時点の情報しか確認できません。
ログサーバであれば過去の情報も確認できます。
現在の変換情報 | 過去の変換情報 | |
---|---|---|
IPCOM実機 | ○ | × |
ログサーバ | ○ | ○ |
【IPCOM】確認コマンド
変換前・後のIPやポートを指定して検索できます。
コマンド①:変換前IP
show nat address original 192.168.1.1
コマンド②:変換後IP
show nat address translated 10.1.1.1
コマンド③:変換前+変換後IP
show nat address original 192.168.1.1 translated 10.1.1.1
コマンド④:変換前+変換後IP+ポート
show nat address original 192.168.1.1 59000 translated 10.1.1.1 59000
結果(NAT成功)
The translation address list.
Time:xxxx/xx/xx(aaa)hh:mm:dd
----------- --------------------------------------
interface channel0 ・・・①
rule 400 ・・・②
type src-nat ・・・③
protocol tcp ・・・④
original 192.168.1.1:59000 ・・・⑤
translated 10.1.1.1:59000 ・・・⑥
peer 10.1.1.10:21 ・・・⑦
----------- --------------------------------------
- IPが変換されたインタフェースです。
src-natならIPCOMから出ていくインタフェースで、dst-natならIPCOMに入るインタフェースになります。
コンフィグの「interface channel0」にあたります。 - NATルール番号です。
この例の場合コンフィグを見るとinterface channel0の中に「rule src-nat 400 192.168.1.1 to 10.1.1.1 set-org-ip」と書かれているはずです。 - 送信元・送信先どちらのIPを変換するか書かれています。
この例の場合コンフィグを見るとinterface channel0の中に「rule src-nat 400 192.168.1.1 to 10.1.1.1 set-org-ip」と書かれているはずです。 - 実際に送られてきたパケットのプロトコルタイプです。
- 変換前のIPアドレスとそのポート番号です。
src-natの場合は送信元のポート番号が表示されるので、1024より大きい値になっていることがほとんどです。 - 変換後のIPアドレスとそのポート番号です。
src-natやdst-natの場合はポート変換は行わないので⑤と同じポート番号になります。 - 実際に送られてきたパケットの宛先IPアドレスです。
NAT変換に直接影響はありません。
結果(NAT失敗例)
The translation address list.
Time:xxxx/xx/xx(aaa)hh:mm:dd
----------- --------------------------------------
no information
----------- --------------------------------------
【ログサーバ】確認コマンド
ログはLinux系のサーバにテキストで保存されることが多いので、その例を紹介します。
ログサーバの例
- サーバOS ・・Linux系
- ログファイル形式 ・・テキスト
確認コマンド
cat filename | grep mapping | grep 192.168.1.1
Linuxのコマンドを組み合わせています。
- cat ・・テキストファイルの内容を表示
- | ・・パイプ(条件を追加する)
- grep ・・指定文字の行を検索
結果(送信元NAT成功)
Mar dd hh:mm:ss hostname IPCOM: nat: INFO[00606002]: Address mapping src=192.168.1.1:51000->10.1.1.1:51000 dst=10.1.1.10:21 proto=tcp interface=channel1 rule=400
結果(送信先NAT成功)
Mar dd hh:mm:ss hostname IPCOM: nat: INFO[00606002]: Address mapping src=10.1.1.10:21 dst=10.1.1.1:51000->192.168.1.1:51000 proto=tcp interface=channel1 rule=400
NAT失敗の原因・対策
NATを含む通信失敗の原因は大きく4つです。
- インタフェースの誤り
- 変換前IPの重複
- ファイアウォール設定の誤り
- ルーティングの誤り
①インタフェースの誤り
NATのインタフェースは下記ルールで設定します。
- src-natはIPCOMから出ていくインタフェース
- dst-natはIPCOMに入るインタフェース
この図はsrc-natしています。この時は●がある方、パケットが出ていくインタフェースになります。
②変換前IPの重複
こんな設定をしたとします。
interface channel0
rule src-nat 400 192.168.1.1 to 10.1.1.1 set-org-ip
rule src-nat 410 192.168.1.1 to 10.1.1.2 set-org-ip
変換前のIPが同じです。
この場合はNAT番号が若い方が優先されます。
送信元IPが同じなので400の方が適用されてNATのチェックは終わります。410は使われません。
interface channel0
rule src-nat 400 192.168.1.1 to 10.1.1.1 set-org-ip ←こっちが適用
rule src-nat 410 192.168.1.1 to 10.1.1.2 set-org-ip ←使われない
④ルーティングの誤り
送信元IPの変換を行う場合、ルーティングによる影響が出る可能性があります。
ルーティング誤りによる失敗原因
送信元IPの変換を行なってもルーティングには影響しません。なので行きの通信は送信先に届きます。
そして戻ってくる時は、送信元と送信先が入れ替わります。10.1.1.1が送信先IPになります。
この10.1.1.1がIPCOMに届くように経路のルーティング装置の設定をしましょう。
まとめ
NATのアドレス変換を確認する方法を紹介しました。
NATは送信元・送信先と2つ変換ポイントがあるので整理が難しい仕組みです。何を確認するのか明確にしてから情報を確認しましょう。
PowerAutomateのおすすめ記事
人気ページ
Apply to eachの使い方
アレイのフィルター処理の使い方
日付関数の使い方
エラーを無視する方法
メールの内容をExcelへ転記
メール本文から名前を抽出
>>PowerAutomateの記事一覧を見る<<
お気に入り必須!公式ページ
Microsoft Power Automate
式関数のリファレンス
コネクタのリファレンス
Excel Online (Business)のリファレンス