ネットワーク上に2つの「ルーター」タイプのデバイスをセットアップしています。
1つは私の実際のIPv6ルーターであるCisco2621(fe80::xxxx:3e60
)です。これは正しいデフォルトルーターです。
もう1つはDLINKDIR-615(fe80::xxxx:5760
)です。 IPv6に対応していますが、現時点ではWAPとしてのみ使用されているため、リンクローカルアドレス指定用にのみ構成されています。
両方のデバイスがICMPv6RAメッセージを送信しており、その結果、両方がクライアントのルーティングテーブルに追加されています。
$ ip -f inet6 route | grep default
default via fe80::xxxx:3e60 dev wlan0 proto kernel metric 1024 expires 1741sec mtu 1500 advmss 1440 hoplimit 64
default via fe80::xxxx:5760 dev wlan0 proto kernel metric 1024 expires 1791sec mtu 1500 advmss 1440 hoplimit 64
問題は、私のクライアントがデフォルトのルーターを選択できるようになったという事実から生じます。 1つは途中で陽気にパケットを送信し、もう1つは送信しません。間違ったルートを削除することはできますが、次のRAが発生したときに再度追加されます。
fe80::xxxx:3e60
(正しいルーター)は、2001:xxxx:xxxx ::/64(私のネットワーク)のプレフィックスをアドバタイズするRAを送信しています
fe80::xxxx:5760
(不正なルーター)がfe80 ::/64(リンクローカル)のプレフィックスをアドバタイズするRAを送信しています
それで…ここで誰が責任を負っていますか?
fe80::xxxx:5760
有効なプレフィックスを提供できない場合にRAを送信しますか?fe80::xxxx:5760
?fe80::xxxx:5760
を追加するためのクライアント?radvd(ルーターアドバタイズデーモン)は、少なくともCiscoルーターに面しているインターフェイスではDLinkで無効にする必要があります。
または、DLinkでCiscoルーターへの静的なデフォルトルートを設定することもできます。これにより、ルートが1ホップ長くなりますが、DLinkがインターフェイスからCiscoルーターにルーティングして戻ると仮定すると有効です。
WANポートがCiscoルーターに接続されているポートである場合、DLinkルーターはそのリンク上のルーティングをアドバタイズしないでください。
編集:Ciscoルーターのradvd構成でAdvRoutePreference high;
および/またはAdvDefaultPreference high;
を設定することにより、ルーティングに影響を与えることができる場合があります。
EDIT2:問題は、DLinkルーターにグローバルIPアドレスまたはルートがないことであるようです。ルーターのデフォルトルートは通常検出されないため、手動で設定する必要がある場合があります。
シスコのドキュメント からipv6ルータプリファレンスを設定する手順は次のとおりです。
D-Linkルーターに障害があります。
少なくともDIR-615のハードウェアバージョンC2(ルーターには、使用しているハードウェアバージョンを示すステッカーが貼られています)では、3.03WWファイアウェアのアップグレードにより、RAの送信が停止しているようです。とにかく、これは少なくともリンクローカルモードでは当てはまります(他のオプションはテストしていません)。
RFC2461§4.6.2によると:
ルーターはリンクローカルプレフィックスのプレフィックスオプションを送信すべきではなく、ホストはそのようなプレフィックスオプションを無視すべきです。
§6.2.1:
リンクローカルプレフィックスは、アドバタイズされたプレフィックスのリストに含めるべきではありません。
したがって、ルーターに提供する有効なプレフィックスがない場合、RAを送信するべきではないと考えるでしょう。同様に、ホストが有効なプレフィックスのないRAを検出した場合、おそらくそれを無視する必要があります。
障害には、fe80 ::からのプレフィックスアドバタイズメントの奇妙さ、インターネット接続がないときにデフォルトルートをアドバタイズするルーター、ファームウェアとドキュメントではまったく簡単にできないという事実が含まれていると思います。デフォルトルートを無効にする方法を理解します。
しかし、少なくともファームウェア5.1を搭載したDIR-615リビジョンE3には、適切な回避策があります。
Advanced/IPv6設定ページに移動します。
「ステートレスAUtoconfiguration」を選択します。
LANIPv6プレフィックスを使用しているものに設定します。
[自動構成を有効にする]を選択し、自動構成タイプとして[ステートレス]を選択し、(これは重要な部分です)[ルーターアドバタイズメントの有効期間]を0に設定します。
RAでルーターの有効期間を0に設定すると、「これはデフォルトルートではありません」という意味になります。
このルーターでルーターアドバタイズメントを無効にする方法は見つかりませんでしたが、既に使用しているプレフィックスに設定し、ルーターの有効期間を0に設定するだけで十分です。実際には、プレフィックスを同じに設定する必要はありませんが、設定しないと、インターフェイスとルーティングテーブルが、ほとんど何にも使用されない余分なアドレスとルートでいっぱいになります。