以下、単なる疑問で結論はないです。
Firewall では、ポートを閉じた時に、Drop か Reject を選べるものがあります。Drop は、本当にパケットを叩き落とすだけですが、Reject は、相手側にポートを落とした旨、通知します。
ずっと、そういう時には ICMP の Destination unreacable を返すもんだと思ってたんですが、
たまたま
PF: 実行時オプション
http://ftp.tuwien.ac.at/.vhost/www.openbsd.org/xxx/faq/pf/ja/options.html
を読んでたら、set block-policy の部分で
return - ブロックされた TCP パケットに対して TCP RST パケットが返され、 他の
すべてのパケットに対しては ICMP UNREACHABLE パケットが返されます。
ん? TCP RST?
実際試してみると、確かに PFで set block-policy return を設定していると、TCP の RST が返ってくる……
Wikipedia の
https://en.wikipedia.org/w/index.php?title=Internet_Control_Message_Protocol&redirect=no#Destination_unreachable
を読んでみても
A Destination Unreachable message may be generated as a result of
a TCP, UDP or another ICMP transmission. Unreachable TCP ports
notably respond with TCP RST rather than a Destination Unreachable
type 3 as might be expected.
とあり、TCP に関しては RSTパケットで返すことが期待されるとのこと。なんでだろ……(ICMPはフィルタリングされてることが多く、TCP だと届きやすいとかいう理由?)
関連する RFC があると思うんだけど、ちらっと探した限りでは見つけられなかった。モヤモヤ……
IPv4/IPv6 meter |
思ったより安い……時もある、Amazon |