プログラミング
プログラマーがLANについて信じている誤解
Falsehoods Programmers Believe About LANs (dreamstation.systems)
要約
この記事では、プログラマーがローカルエリアネットワーク(LAN)について抱きがちな、誤った前提や誤解をリストアップしています。NAT、プロトコル、MACアドレス、到達可能性、DHCP、IPアドレスといったネットワークの基本的な概念に関する一般的な誤解を、具体的な例を挙げて解説しています。
全文翻訳
プログラマーがLANについて信じている誤解
各項目は誤解として記述されています。これらのうちいくつかは、時には正しく、時には間違っている可能性があります。
NAT
私のLANはNATの後ろにある。
私はNATの後ろに一つだけいる。
私のLANはNATの後ろにない。
私のIPv6ホストはNATの後ろにない。
RFC 1918アドレスを持っている場合、私はNATの後ろにいる。
RFC 1918アドレスを持っていない場合、私はNATの後ろにいない。
NATはアドレスのみを変換する。
NATはアドレスとポートのみを変換する。
NATはヘッダーの外側を変更しない。
NATはLANにのみ存在する。
プロトコル
私のLANではIPv4のみが実行されている。
私のLANではIPのみが実行されている。
よし、私のLANではIP、IPX/SPX、Phase IV、AppleTalk、VINES、NetBEUI、またはSNAのみが実行されている。
真面目に?
私のLANでの特定の種類のトラフィックの使用を停止できる。
私のLANで何が実行されているかを知っている。
MACアドレス
MACアドレスはグローバルに一意である。
(そうなるはずだが、そうではない。)
MACアドレスはローカルに一意である。
異なるMACは異なるデバイスである。
よし、異なるMACは異なるネットワークインターフェースである。
MACアドレスは変更できない。
MACアドレスは変更できる。
MACアドレスは48ビットである。
最初の3バイトはベンダー固有である。
最初の3バイトは、MA-Lブロックの場合、ベンダー固有である。
MACアドレスはユニキャストである。
特定のIPに対するARPリクエストには、一つのホストのみが応答する。
ARPエントリは正確である。
到達可能性とパフォーマンス
LANは速い。
LANはインターネットより速い。
同じサブネット上の2つのホストは、LANを出ることなく互いに到達できる。
同じサブネットは、2つのホストが通信できることを意味する。
Wi-FiとEthernetクライアントは、LAN上の同等のピアである。
Wi-FiとEthernetクライアントは、LAN上の同等のピアではない。
私のLAN上のすべてのデバイスは同じMTUを持つ。
ホスト名はローカルに一意である。
mDNSは機能する。
DHCP
DHCPサーバーが存在する。
DHCPサーバーは一つだけ存在する。
使用中にアドレスは変更されない。
DHCPサーバーとゲートウェイは同じデバイスである。
DHCPはゲートウェイを提供する。
DHCPはDNSサーバーを提供する。
169.254.0.0/16はDHCPが失敗したことを意味する。
IPアドレス
すべてのホストは一つのIPアドレスを持つ。
私のLANはRFC 1918 IPアドレスを使用する。
私のLANはプライベートIPアドレスを使用する。
私のLANはIPアドレスを使用する。