本ドキュメントでは、TCP/UDPのNAT通信に失敗する場合の発生原因とソリューションについてご案内します。
1. 障害内容
NATを有効にしている際に下記のPortを使用した通信に対してNAT変換が行われず、TCP connectionの確立に失敗、またはUDP通信が破棄されることがございます。
Protocol |
Port番号 |
H323 |
1720/1718/1719 |
SCCP |
2000 |
PPTP |
1723 |
CUSEEME |
7648 |
RTSP |
554 |
ILS(LDAP) |
389 |
Real Audio |
7070 |
VXtreme |
12468 |
SIP |
5060 |
Streamworks |
1558 |
MGCP |
2427 |
VDOLive |
7000 |
DNS |
53 |
NBNS |
137 |
NBDS |
138 |
FTP |
20/21 |
TFTP |
69 |
RShell |
514 |
2. 解説と回避策
解説
通常NATはLayer3で動作し、送信元および宛先IPアドレスを変換します。IPペイロード内のLayer4~7のIPアドレスは変換しません。ただし、Application Layer Gateway(ALG)を有効にすることで、IPペイロード内のIPアドレスを変換することができるようになります。ただし、上記 プロトコルに対応したPortに対して、それ以外のプロトコルを使用して通信を行おうとすると、NAT変換が行われない問題が顕著に発生します。
回避策
IANAでPort番号ごとに使用するプロトコルを割り当てております。
Service Name and Transport Protocol Port Number Registry
アプリケーションで使用する送信元/宛先Portはプライベートポート番号(49152 - 65535)にすることをお勧めします。