TCPは「3Wayハンドシェイクによるコネクションの確立」と「ACKによる応答確認」の機能を備えていますが、UDP自体にはその機能は備えていないため、『UDPの戻り通信とは?』という疑問を抱くことがあると思います。
今回は、NTPとTFTPを例に説明します。
ネットワーク環境
CMLで下記の環境を構築します。ExternalConnectorはBRIDGEモードで外部接続しています。
CMLでの外部接続の詳細は下記を参照してください。
CMLを始めよう!(11.外部ネットワーク接続)
NTP通信
NTP設定
ルーターにNTPサーバーを設定し、NTP通信を発生させます。
ntp server 61.205.120.130
パケットキャプチャの確認
ルーターからNTPサーバーへの通信に関しては、UDPを利用し送信元/送信先ポート番号ともに「123」を利用していることがわかります。
この通信に対して、時刻情報を含むパケットが、NTPサーバーから返答されます。UDPを利用し送信元/送信先ポート番号ともに「123」を利用していることがわかります。
TFTP通信
簡易的なTFTPサーバーの起動方法は下記を参照してください。
TFTPサーバーの起動方法(Windows編 – TFTPD64)
TFTPサーバーの起動方法(Mac編)
TFTPによるファイル転送
ルーターからTFTPサーバーにコンフィグ情報を転送します。
copy running-config tftp:
Router#copy running-config tftp:
Address or name of remote host []? 192.168.1.2
Destination filename [router-confg]? Router_config
!!
3222 bytes copied in 1.546 secs (2084 bytes/sec)
パケットキャプチャの確認
ルーターからTFTPサーバーへの初回通信に関しては、UDPを利用し送信元ポート番号は「56470(ランダム)」、送信先ポート番号は「69(規定)」を利用していることがわかります。
TFTPサーバからの応答については、送信元ポート番号は「51531(ランダム)」、送信先ポート番号は「56470(初回通信のルーターの送信元)」を利用していることがわかります。
以降の通信は、「56470」と「51531」を利用しファイル転送が行われます。
UDPの戻り通信とアクセス制御の注意点
UDPを利用するアプリケーションレベルでの戻り通信
上述の通り、UDPというプロトコル自体にTCPのような戻り通信はありませんが、NTPやTFTPというアプリケーションレベルでは戻り通信が発生します。
アクセス制御の注意点
通信経路のルーターのアクセスリスト等で通信制御をしている場合は、注意が必要です。(ステートフルインスペクション機能のあるFirewall等であれば問題ありません。)
例えばTFTPの場合、以下のようなアクセスリストでは、最初の通信は許可されますが、ランダムなポート番号を利用した2回目以降の通信は拒否されてしまいます。
access-list 100 permit udp host 192.168.1.100 host 192.168.1.2 eq tftp
access-list 100 deny ip any any
interface GigabitEthernet0/0
ip access-group 100 out
以上で、UDPの戻り通信の説明は完了です!