ルーターで標準のLinksysファームウェアを使用すると、ネットワークデバイスはインターネットへのアクセスにのみIPv4を適切に使用します。
OpenWRT 15.05.1を使用すると、デバイスはIPv6アドレスを使用してさまざまなサイトに接続しようとします。これは、ISPが提供していないIPv6サービスを提供している場合に最適です。
DHCPv6をオフにし、dnsmasqのDNSキャッシングを無効にし、dnsmasqのDHCPサーバーを設定して静的DNSサーバーアドレスを提供する(8.8.8.8
)、およびOpenWRTの内部DNSサーバー設定をそのDNSサーバーを使用するように設定します。
OpenWRTにIPv6を使用してもよいことをデバイスに通知しないようにするにはどうすればよいですか?
の結果 ip addr
は:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope Host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope Host
valid_lft forever preferred_lft forever
2: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1a:80:7a:4e:47 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.107/24 brd 192.168.1.255 scope global dynamic enp6s0
valid_lft 42521sec preferred_lft 42521sec
inet6 fd7f:77c6:629f::9e8/128 scope global
valid_lft forever preferred_lft forever
inet6 fd7f:77c6:629f::4e3/128 scope global
valid_lft forever preferred_lft forever
inet6 fd7f:77c6:629f:0:21a:80ff:fe7a:4e47/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::21a:80ff:fe7a:4e47/64 scope link
valid_lft forever preferred_lft forever
3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:1d:e0:44:04:57 brd ff:ff:ff:ff:ff:ff
の結果 route -6
は:
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
fd7f:77c6:629f::4e3/128 :: U 256 0 0 enp6s0
fd7f:77c6:629f::9e8/128 :: U 256 0 0 enp6s0
fd7f:77c6:629f::/64 :: U 100 1 3 enp6s0
fd7f:77c6:629f::/48 fe80::c256:27ff:fe77:37a7 UG 100 0 0 enp6s0
fe80::/64 :: U 256 2 10 enp6s0
::/0 :: !n -1 1 729 lo
::1/128 :: Un 0 3 6 lo
fd7f:77c6:629f::4e3/128 :: Un 0 1 0 lo
fd7f:77c6:629f::9e8/128 :: Un 0 1 0 lo
fd7f:77c6:629f:0:21a:80ff:fe7a:4e47/128 :: Un 0 2 3 lo
fe80::21a:80ff:fe7a:4e47/128 :: Un 0 2 30 lo
ff00::/8 :: U 256 2 67 enp6s0
::/0 :: !n -1 1 729 lo
両方の結果ping6 google.com
およびping6 2607:f8b0:4008:808::200e
は:
connect: Network is unreachable
初期インストール(または設定のリセット)時に、OpenWrtは一意のローカルアドレスプレフィックスを生成し、ULAをネットワーク内のすべてのデバイスに割り当てます。これにより、グローバルIPv6接続がなくても、IPv6を介して内部的に通信できます。
これは、2つのシナリオを除いて、通常は正常に機能します。
明確にするために:ULAプレフィックスをアドバタイズすることにより、OpenWrtはnotであり、IPv6を介してインターネットにアクセスしてもよいことをデバイスに伝えます。 IPv6を介してホームネットワークにアクセスすることは問題ないということを伝えているだけです。
長期的な解決策は、問題のあるアプリケーションを修正することです。特定のアプリケーションでこの動作が発生した場合は、バグとしてその開発者に報告する必要があります。
短期的な回避策は、OpenWrtではなくULAプレフィックスを通知することです。 Network> Interfacesに移動し、IPv6 ULA-Prefixボックスを空白にして、Save&Applyをクリックします。 。これにより、OpenWrtがULAプレフィックスをアドバタイズできなくなります。ルーターの設定をデフォルトにリセットした場合は、再度これを行う必要がある場合があります。
より簡単な方法は、OpenWrtルーターにSSHで接続し、次のコマンドを実行することです。
uci set 'network.lan.ipv6=off'
uci set 'network.wan.ipv6=off'
uci set 'dhcp.lan.dhcpv6=disabled'
/etc/init.d/odhcpd disable
uci commit
最初のコマンドはIPv6 LANインターフェースを無効にし、2番目はIPv6 WANインターフェース、3番目と4番目はDHCPv6サーバーを無効にし、uci commit
は変更をコミットします。