私は、背後の LAN 上にあるマシンに IPv6 接続を提供する単純なルーターを構成しました。ルーターには 2 つのネットワーク インターフェイス (eth0、eth1) があり、マシンには 1 つのインターフェイス (eth0) があります。
ルーターの eth0 はローカル ネットワークにのみアクセスでき、eth1 はインターネットにアクセスできます。すべてのカーネル パラメータを構成しましたが、正常に動作します。
ルーターの IP はfd00::1
、ルーターに dhcpd をインストールし、範囲を設定しましたfd00::100 - fd00::fffe
。
このネットワーク上のマシンを起動すると、たとえば dhcpd から IP が割り当てられますfd00::fffa
が、明らかな理由 (ルートがない) によりインターネットにアクセスできません。
手動でルートを追加すると、sudo route -6 add 2000::/3 gw fd00::1
マシンを再起動するまでインターネットにアクセスできるようになります。
このルートを各マシンの init スクリプトに手動で追加することもできますが、このネットワーク上のマシンを起動したときに、他に何もしなくても IPv6 インターネットにアクセスできるように、自動構成にすることをお勧めします。
いくつかの提案に基づいて、ルーターにradvdもインストールし、このオプションを挿入しました。
route 2000::/3 {};
おそらく間違っていると思いますが、ドキュメントや例が見つかりませんでした。動作しません。IPv6 アドレスの割り当てに dhcpd の代わりに radvd を使用することはまったく機能しません。dhcpd を無効にすると、マシンはランダムな IPv6 アドレスを自動構成し、お互いを認識しなくなり、ルーターに ping することもできなくなります。
すべてのマシンで IPv6 を自動構成するように LAN を設定するにはどうすればよいでしょうか?
注: 各マシンにパブリック IPv6 を設定する必要はなく、NAT で十分です。
答え1
あなたの設定にはすぐに 2 つの問題があることがわかりました。RFC 4193 アドレスはグローバルにルーティングできません。つまり、これらのアドレスは外部と通信できません。
もちろん NAT を使用することもできますが、NAT はさまざまな問題を引き起こすことが知られています。NAT は、IP アドレスの不足を一時的に解決するための回避策です。IPv6 はその問題を解決します。NAT を使用して解決しようとした他のすべての問題には、NAT を使用しないより優れた解決策があります。
さらに、プレフィックスは明らかに RFC 4193 の仕様に従って生成されていません。関連する引用:
ローカルに割り当てられたグローバルIDは、疑似ランダムアルゴリズムで生成されなければならない。
ネットワーク構成のこれら 2 つの問題がクライアントの外部通信を妨げているかどうかは、テストしてみなければわかりません。最適ではない IPv6 構成を検出し、検出された場合は IPv6 の使用を完全に回避しようとするソフトウェアが存在します。一部のクライアント ソフトウェアが、セットアップで IPv6 接続の使用を拒否する可能性は十分にあります。
そうは言っても、RFC 4193 アドレスを使用してクライアントが外部と通信することは不可能ではありません。これはradvd.conf
、私が過去に簡単に使用したファイルです。この構成では、一部のクライアントは割り当てられた RFC 4193 アドレスを使用して外部と通信しようとしました。
interface wlan0 {
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
prefix fdbd:5df9:dca3::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
ただし、この構成はすべてのクライアントで機能するわけではありません。Android を実行しているクライアントで再度テストしました。電話機には IPv6 アドレスが設定されましたが、外部通信に IPv6 を使用しようとしませんでした。
次にプレフィックスを に変更した2001:db8:dca3::/64
ところ、電話機は IPv6 パケットをゲートウェイに送信し始めました。Android は、このように RFC 4193 アドレスの使用を拒否するプラットフォームの一例です。