「BIND」の版間の差分
提供: Wikinote
細 (→UDP と TCP) |
(→動作・仕様) |
||
行3: | 行3: | ||
=== UDP と TCP === | === UDP と TCP === | ||
DNS の通信には、通常 UDP が用いられる。 | DNS の通信には、通常 UDP が用いられる。 | ||
− | ただし、UDP | + | ただし、UDP パケットが 512 バイト |
+ | <ref>UDP にてデータ分割が行われないことが保証される最大サイズ。 | ||
+ | UDP にてデータが分割されると、TCP と違ってデータの順序が保証されていないため、問題が生じる。 | ||
+ | ただし、近年の現実のネットワークでは、もっと大きなパケットでも分割せずに送信されるため、後述の EDNS0 が提案された。</ref> | ||
+ | を超えるような通信 (応答) が必要となった場合、TCP による通信が行われる。 | ||
# クライアントは UDP にてクエリをサーバへ送信する。 | # クライアントは UDP にてクエリをサーバへ送信する。 | ||
行14: | 行18: | ||
==== EDNS0 ==== | ==== EDNS0 ==== | ||
BIND 8.3 以降、BIND 9 以降は [http://www.nic.ad.jp/ja/translation/rfc/2671.html EDNS0] (Extension Mechanisms for DNS version 0) に対応している。 | BIND 8.3 以降、BIND 9 以降は [http://www.nic.ad.jp/ja/translation/rfc/2671.html EDNS0] (Extension Mechanisms for DNS version 0) に対応している。 | ||
+ | |||
+ | == 脚注 == | ||
+ | <references /> |
2009年5月10日 (日) 14:23時点における版
動作・仕様
UDP と TCP
DNS の通信には、通常 UDP が用いられる。 ただし、UDP パケットが 512 バイト [1] を超えるような通信 (応答) が必要となった場合、TCP による通信が行われる。
- クライアントは UDP にてクエリをサーバへ送信する。
- (512 バイトを超える場合) サーバは UDP にて、ヘッダ部の TC ビットを 1 にセットした回答をクライアントへ送信する。
- クライアントは、TCP にてサーバへ接続し、クエリを送信する。
- サーバは、回答をクライアントへ送信する。
したがって、iptables などでパケットをフィルタリングしている場合、UDP/TCP ともに 53 番ポートを通す必要がある。
EDNS0
BIND 8.3 以降、BIND 9 以降は EDNS0 (Extension Mechanisms for DNS version 0) に対応している。
脚注
- ↑ UDP にてデータ分割が行われないことが保証される最大サイズ。 UDP にてデータが分割されると、TCP と違ってデータの順序が保証されていないため、問題が生じる。 ただし、近年の現実のネットワークでは、もっと大きなパケットでも分割せずに送信されるため、後述の EDNS0 が提案された。