VirtualboxのNATネットワークでUDPホールのパンチングが失敗する

VirtualboxのNATネットワークでUDPホールのパンチングが失敗する

virutalboxのNATネットワークを使用してStrongswanのホールパンチング機能をテストしていますが、エラーが発生しました。

[sudo] password for bluven: 
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
10:02:55.430425 enp43s0 B   ARP, Request who-has 10.40.10.180 tell 10.40.10.168, length 46
10:02:55.430446 enp43s0 Out ARP, Reply 10.40.10.180 is-at c0:25:a5:3a:22:86, length 28
10:02:55.431092 enp43s0 In  IP 10.40.10.168.47648 > 10.40.10.180.48475: UDP, length 88
10:02:55.431147 enp43s0 Out IP 10.40.10.180 > 10.40.10.168: ICMP 10.40.10.180 udp port 48475 unreachable, length 124
10:02:55.433350 enp43s0 Out IP 10.40.10.180.33182 > 10.40.10.168.32768: UDP, length 88
10:02:55.435262 enp43s0 In  IP 10.40.10.168 > 10.40.10.180: ICMP 10.40.10.168 udp port 32768 unreachable, length 124
10:02:55.455493 enp43s0 In  IP 10.40.10.168.47648 > 10.40.10.180.48475: UDP, length 88
10:02:55.455494 enp43s0 In  IP 10.40.10.168.47680 > 10.40.10.180.48475: UDP, length 88
10:02:55.455557 enp43s0 Out IP 10.40.10.180 > 10.40.10.168: ICMP 10.40.10.180 udp port 48475 unreachable, length 124
10:02:55.455575 enp43s0 Out IP 10.40.10.180 > 10.40.10.168: ICMP 10.40.10.180 udp port 48475 unreachable, length 124
10:02:55.462016 enp43s0 Out IP 10.40.10.180.33182 > 10.40.10.168.32768: UDP, length 88
10:02:55.462293 enp43s0 Out IP 10.40.10.180.53372 > 10.40.10.168.32768: UDP, length 88
10:02:55.463936 enp43s0 In  IP 10.40.10.168 > 10.40.10.180: ICMP 10.40.10.168 udp port 32768 unreachable, length 124
10:02:55.466452 enp43s0 In  IP 10.40.10.168 > 10.40.10.180: ICMP 10.40.10.168 udp port 32768 unreachable, length 124
10:02:55.481386 enp43s0 In  IP 10.40.10.168.47648 > 10.40.10.180.48475: UDP, length 88
10:02:55.481387 enp43s0 In  IP 10.40.10.168.47680 > 10.40.10.180.48475: UDP, length 88
10:02:55.481432 enp43s0 Out IP 10.40.10.180 > 10.40.10.168: ICMP 10.40.10.180 udp port 48475 unreachable, length 124
10:02:55.481442 enp43s0 Out IP 10.40.10.180 > 10.40.10.168: ICMP 10.40.10.180 udp port 48475 unreachable, length 124
10:02:55.490814 enp43s0 Out IP 10.40.10.180.33182 > 10.40.10.168.32768: UDP, length 88
10:02:55.490824 enp43s0 Out IP 10.40.10.180.53372 > 10.40.10.168.32768: UDP, length 88
10:02:55.492815 enp43s0 In  IP 10.40.10.168 > 10.40.10.180: ICMP 10.40.10.168 udp port 32768 unreachable, length 124
10:02:55.493639 enp43s0 In  IP 10.40.10.168 > 10.40.10.180: ICMP 10.40.10.168 udp port 32768 unreachable, length 124
10:02:55.507903 enp43s0 In  IP 10.40.10.168.47680 > 10.40.10.180.48475: UDP, length 88
10:02:55.507949 enp43s0 Out IP 10.40.10.180 > 10.40.10.168: ICMP 10.40.10.180 udp port 48475 unreachable, length 124
10:02:55.516542 enp43s0 Out IP 10.40.10.180.53372 > 10.40.10.168.32768: UDP, length 88
10:02:55.519175 enp43s0 In  IP 10.40.10.168 > 10.40.10.180: ICMP 10.40.10.168 udp port 32768 unreachable, length 124
10:02:55.526381 enp43s0 In  IP 10.40.10.168.47648 > 10.40.10.180.48475: UDP, length 88
10:02:55.538668 enp43s0 Out IP 10.40.10.180.33182 > 10.40.10.168.32768: UDP, length 88
10:02:55.551839 enp43s0 In  IP 10.40.10.168.47680 > 10.40.10.180.48475: UDP, length 88

しかし、確認してみると、このポート48475が開いていることがわかりました。

sudo ss -upn  
Recv-Q                      Send-Q                                             Local Address:Port                                              Peer Address:Port                      Process                      
0                           0                                                   10.40.10.180:48475                                             10.22.53.102:4500                       users:(("VBoxNetNAT",pid=738900,fd=26))

どうやってこれが起こったのですか?

ベストアンサー1

UDP ソケットが接続されていることを示します。例:connect(2)システムコールが使用されます。このマニュアルには次のようにconnect(2)記載されています。

ソケットの場合靴下タイプのSOCK_DGRAM場合住所
データグラムが送信されるベースアドレスです。
データグラムを受信するための一意のアドレス。

UDPソケットは、リモートアドレス10.22.53.102ポート4500から来ていないすべてのUDPデータグラムを無視します。したがって、これらのデータグラムは、通常どおり、ICMPエラーとともにオペレーティングシステムによって拒否されます。

したがって、ポート48475は技術的に開いていますが(ソケットが存在する)、任意のポートからポート80または443のWebサーバーに接続するなど、現在ピア以外のポートでは開いていません。すべてのクライアントTCP接続もオープンとは見なされません。


注:ステータスを表示する場合(ESTABたとえば、接続されている場合)、このコマンドを実行するとすべてのステータスが-a表示されるため、ステータスが前に追加されます。

ss -aunp state established

または

ss -aunp sport 48475
ss -aunp dport 4500

など。デフォルトでは接続状態のみが表示されるため、プレフィックスは追加されませんESTAB

オプションが使用されない場合、ss は開いているリストを表示します。聞かないで ソケット(例:TCP/UNIX/UDP) 接続設定

持つ

おすすめ記事