APIPA
(link-local address から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/11/17 14:28 UTC 版)
APIPA(Automatic Private IP Addressing, エーピーアイピーエー)は、人手を介さず、ネットワーク機器間の交渉のみでリンクローカルアドレスを自動的に割り当てる技術である。
通常、ネットワーク機器は手動でIPアドレスを設定するかもしくはDHCPサーバより自動的に割り振られたアドレスが設定される。しかし、これらを管理する人がいない、あるいは知識がない場合、自身のアドレスを設定する技術として開発された。この技術は小規模な閉じたネットワークを対象としている。
リンクローカルアドレス
リンクローカルアドレス(英: link-local address)とは、ローカルネットワークの範囲内の通信または1対1のコネクションにおいてのみ使用することを意図されているIPアドレスである。ルーターはリンクローカルアドレスのついたパケットを転送しない。
リンクローカルアドレスは管理者が人手で割り当てるか、オペレーティングシステムの手続きによって割り当てる。ほとんどの場合、「ステートレスアドレス自動設定」を使って割り当てる。IPv4では[1]、外部に Dynamic Host Configuration Protocol (DHCP) などのアドレス割り当て機構が存在しない場合や、そういった割り当て機構が失敗した場合にのみ、リンクローカルアドレスを割り当てる。IPv6では[2]リンクローカルアドレスは必須であり、各種プロトコル部品の内部の動作で必要とされる。
IPv4のリンクローカルアドレスはアドレスブロック 169.254.0.0/16 に定義されている。RFC 5735 の中にLink Local Address Blockとして、このアドレスに関する規定がある。IPv6では、プレフィックス fe80::/64 が割り当てられている。
IPv4の場合: APIPA
RFC 3927 において、 Internet Engineering Task Force は 169.254.1.0 から 169.254.254.255 までのアドレスブロックをIPv4でのリンクローカル用アドレスとして予約していた[注 1]。リンクローカルアドレスは他のアドレス割り当て手段が利用可能でない場合、ホスト内部で「ステートレスアドレス自動設定」によってインタフェースに割り当てられる[1]。
RFC 3927 では例えば、リンクローカルアドレスとグローバルなルーター通過可能なアドレスを同一ホストに同時に設定するなど、異なるスコープ[3]での複数アドレスの同時使用に対して警告している。そのため、ホストはリンクローカルアドレスを割り当てる前にネットワーク上にDHCPサーバがないか、問い合わせる。Windowsの実装ではAPIPAによる割り当ての前にDHCPでの接続を試みるため、起動に時間を要する場合がある。
自動アドレス設定処理 (APIPA) では、予約された範囲からランダムに候補アドレスを選択し、Address Resolution Protocol (ARP) 要求をブロードキャストしてネットワーク上の他の機器に同じアドレスが使われていないか、確認する。ARPに応答があれば、候補IPアドレスがすでに使われていることがわかる。その場合、再びランダムに候補IPアドレスを選択し、同じことを繰り返す。この処理はARPパケットに応答がない場合に終了し、候補IPアドレスが使用可能となる。
リンクローカルアドレスが割り当てられた後、グローバルなルーター通過可能なアドレスやプライベートなアドレスが利用可能になった際、新たなコネクションにはリンクローカルアドレスよりもそれらの新しいアドレスを使うことが推奨されているが、リンクローカルアドレスによる通信が突然不可能になるわけではない[4]。
マイクロソフトは、このアドレス自動設定技術を Automatic Private IP Addressing (APIPA) と呼んでいる[5]。一般にはAutoIPと呼ばれることも多い。
IPv6の場合
IPv6では、アドレスブロック fe80::/10 がリンクローカル・アドレッシング向けに予約されている[2]。実際にリンクローカルアドレスとして使われているのは、プレフィックス fe80::/64 のアドレス群である[6][注 2]。それらは、自動(ステートレス)機構かステートフル(例えば、DHCPv6)機構で割り当てられる[注 3]。
IPv4とは異なり、IPv6では使用中のネットワークインタフェースについて必ずリンクローカルアドレスを必要とし、別にルーター通過可能なアドレスなどが割り当てられていてもリンクローカルアドレスが必須である[7]。つまり、IPv6を使用するネットワークインタフェースには必ず複数のIPv6アドレスが割り当てられている。リンクローカルアドレスは、近隣探索プロトコルのIPv6サブレイヤーやDHCPv6などのIPv6ベースのプロトコルで必要とされる。
IPv6では RFC 4862 に規定されている通り、「ステートレスアドレス自動設定」を近隣探索プロトコル (NDP) の一部として実行する[8]。そのアドレスは、そのインタフェースのMACアドレスとルーティングプレフィックスから構成される。
IPv6のリンクローカルアドレスの割り当てでは、他のスコープのアドレスとは異なり、このルーティングプレフィックスがリンク上に存在することが暗黙に前提とされている。
IPv6では追加のアドレス割り当て手段が提供されている。NDPのルーティングプレフィックス広告を通し、ルーターまたは専用サーバがそのリンクに接続している全インタフェースに設定情報を通知し、それによって受信した各インタフェースで追加のIPアドレス割り当てがなされ、ローカルまたはグローバルのルーティングに使われる。この場合、プレフィックスサーバは個々のホストでの割り当てをいちいち受信したり記録したりしないので、この処理もある意味でステートレスである。アドレスの一意性は、アドレス選択方式( RFC 4862 の場合はMACアドレス方式、 RFC 4941 の場合はランダム方式)と重複アドレス検出 (DAD) アルゴリズムの組合わせにより、自動的に保証される。
脚注
注釈
- ^ 169.254/16 のブロックの最初と最後の256個のアドレスは後に RFC 3927 で使うために予約された。
- ^ アドレス範囲 fe80::/10 がリンクローカルアドレス向けに予約されているものの、そのうち54ビットはゼロに設定しなければならないので、実際のプレフィックスは fe80::/64 となる ( RFC 4291, section 2.5.6.)。
- ^ しかし、あるホストのインタフェースがリンクローカルアドレスを既に持っている場合、そのホストがそのインタフェースのためにDHCPメッセージを送ってアドレスを得ようとするのは、そのリンクローカルアドレスを別の手段で割り当てた場合に限る( RFC 3315, sections 1.1 and 16 を参照)。
出典
- ^ a b RFC 3927, Dynamic Configuration of IPv4 Link-Local Addresses, S. Cheshire, B. Aboba, E. Guttman, The Internet Society (May 2005)
- ^ a b RFC 4291,IP Version 6 Addressing Architecture, R. Hinden, S. Deering, The Internet Society (February 2006)
- ^ RFC 3927 section 1.9
- ^ RFC 3927 section 2.6.1
- ^ “APIPA”. Microsoft. 2010年8月2日閲覧。
- ^ RFC 4291, section 2.5.6. Link-Local IPv6 Unicast Addresses
- ^ RFC 4291, section 2.8. A Node's Required Addresses
- ^ RFC 4862, IPv6 Stateless Address Autoconfiguration, S. Thompson, T. Narten, T. Jinmei (September 2007)
関連項目
リンクローカルアドレス
(link-local address から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/12/04 22:10 UTC 版)
|
|
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 (2025年12月)
|
コンピュータネットワークにおいて、リンクローカルアドレス(英語: link-local address)とは、ホストが接続されているネットワークセグメント(リンク)またはブロードキャストドメイン内の通信に対してのみ有効なネットワークのアドレスである。
リンクローカルアドレスは、ネットワークセグメントを超えてユニークであることが保証されていない。そのため、ルーターはリンクローカルアドレスを使用したパケットを転送しない。
リンクローカルアドレスのみを持つプロトコル(イーサネットなど)では、ベンダーIDとシリアルIDで構成されたハードウェアアドレスがネットワーク機器の製造元によって割り当てられており、これはユニークである。
IPv4のリンクローカルアドレスは、アドレスブロック 169.254.0.0/16(CIDR表記)で定義されている。 IPv6では、ブロック fe80::/10 として定義され、プリフィックス fe80::/64 が割り当てられている[1]。
アドレス割当
リンクローカルアドレスは、管理者によって手動で割り当てられるほか、自動的に割り当てる方法もある。IPネットワークでは、ステートレスアドレス自動設定を使用して割り当てるのが一般的である。 IPv4では[2]、DHCPなどのアドレス構成の外部のステートフルなメカニズムが存在しない場合、または別のプライマリな設定が失敗した場合にのみ、IPアドレスをネットワークインタフェースに割り当てるためリンクローカルアドレスが使用される。IPv6では[3]、リンクローカルアドレスは必須であり、さまざまなプロトコル要素の内部機能で必要となる。
IPv4におけるリンクローカルアドレスの自動アドレス設定は、ほとんどの場合非決定論的であり、生成されるアドレスが予測できない。IPv6では通常、MACアドレスから一定に規則に基づいて自動的に生成される。
IPv4
RFC 3927 に基づき、Internet Engineering Task Force(IETF)はアドレスブロック 169.254.0.0/16 を予約している。このブロックのうち、169.254.1.0 - 169.254.254.255 をIPv4のリンクローカルアドレスに使用することができる。リンクローカルアドレスは、他のアドレス割り当てが利用できない時に、ホスト内部のステートレスなアドレス自動設定によってインタフェースに割り当てられる[2]。
RFC 3927では、同じインタフェース上で異なるスコープのIPv4アドレス(例えばグローバルにルーティング可能なアドレスとリンクローカルアドレス)を同時に使用しないよう警告している[4]。そのため、ホストは、リンクローカルアドレスを割り当てる前に、ネットワーク上のDHCPサーバーを検索する。
アドレス自動設定処理では、ネットワークホストは予約された範囲内から候補アドレスをランダムに選択し、アドレス解決プロトコル(ARP)によってそのアドレスがネットワーク上で使用されていないことを確認する。ARPが応答を受信した場合、候補IPアドレスがすでに使用中なので新しい候補IPアドレスが作成され、処理が繰り返される。この処理は、ARPへの応答がなく、候補IPアドレスが利用可能であることが示されたときに終了する。
リンクローカルアドレスが割り当てられた後にグローバルにルーティング可能なアドレスまたはプライベートアドレスが使用可能になったら、新しい接続に使用するアドレスは、一般に新しいアドレスがリンクローカルアドレスよりも優先されるべきだが、リンクローカルアドレスによる通信は引き続き可能である[5]。
マイクロソフトは、このアドレス自動設定の方法を Automatic Private IP Addressing (APIPA)と呼んでいる[6]。これは、auto-IPと呼ばれることもある。
IPv6
IPv6では、アドレスブロック fe80::/10 がリンクローカルユニキャストアドレス用に予約されている[3]。サブネット上の標準の/64アドレッシングに準拠するため、実際のリンクローカルアドレスにはプレフィックス fe80::/64 が割り当てられる[7]。最上位の10ビットの後の54ビットはゼロでなければならない。
IPv4と異なり、IPv6ではIPv6プロトコルが有効になっている全てのネットワークインタフェースに、ルーティング可能なアドレスが割り当てられていても、リンクローカルアドレスが必要である[8]。そのため、通常、IPv6ホストは、IPv6対応の各ネットワークインタフェースに複数のIPv6アドレスが割り当てられる。リンクローカルアドレスは、近隣探索プロトコル (NDP) のIPv6サブレイヤ操作や、その他のIPv6ベースのプロトコル(DHCPv6など)に必要となる。
IPv6リンクローカルアドレスを使用してホストに接続するときは、正しいインタフェースでパケットを送信できるように、ゾーンインデックスをアドレスに追加する必要がある。
IPv6では、アドレスは、自動(ステートレス)またはステートフル(手動)メカニズムによって割り当てられる。ステートレスアドレス自動設定は、 RFC 4862 で規定されている近隣探索プロトコル(NDP)の一部として実行される[9]。アドレスは、ルーティングプレフィックスとインタフェースのMACアドレスから生成される。
ルーターまたはサーバホストは、NDPルーティングプレフィックス広告によって、全てのリンク接続インタフェースに対し設定情報を通知し、ローカルまたはグローバルルーティングために受信インタフェースに追加のIPアドレスを割り当てる。このプロセスは、プレフィックスサーバがホストへの個々の割り当てを受信したりログに記録したりしないため、ステートレスと見なされる場合もある。アドレスの選択方法によって、アドレスの一意性が自動的に保証される。それは、 RFC 4862 に基づいたMACアドレスでも、 RFC 4941 に従ってランダム化されていても良い。自動重複アドレス検出アルゴリズムは、割り当てエラーを防止する。
MACアドレス
ローカルブロードキャストネットワーク(イーサネットなど)で使用されるMACアドレスは、リンクローカルアドレスである。そのようなデバイスは、製造業者によってハードウェア内のアドレスで設定される。ただし、ifconfigなどのオペレーティングシステム (OS) のユーティリティを使用して、これらのアドレスを割り当てたり変更したりすることができる。これは、OSが仮想マシン環境で実行されている場合に不可欠である。
関連項目
- Zeroconf
- プライベートネットワーク
- ユニークローカルアドレス
- 媒体アクセス制御 (Media Access Control)
出典
- ^ https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.6
- ^ a b RFC 3927, Dynamic Configuration of IPv4 Link-Local Addresses, S. Cheshire, B. Aboba, E. Guttman, The Internet Society (May 2005)
- ^ a b RFC 4291,IP Version 6 Addressing Architecture, R. Hinden, S. Deering, The Internet Society (February 2006)
- ^ RFC 3927 section 1.9
- ^ RFC 3927 section 2.6.1
- ^ “APIPA”. マイクロソフト. 2010年8月2日閲覧。
- ^ RFC 4291, section 2.5.6. Link-Local IPv6 Unicast Addresses
- ^ RFC 4291, section 2.8. A Node's Required Addresses
- ^ RFC 4862, IPv6 Stateless Address Autoconfiguration, S. Thompson, T. Narten, T. Jinmei (September 2007)
外部リンク
- link-local addressのページへのリンク