VYATTA CORE 6.6R1 の RA + DHCPv6 Client のバグを修正する
VYATTA CORE 6.6R1 で、IPv6を試していたら、バグを踏んでしまいずっと悩んでました。これって、誰も踏み抜いていなかったのでしょうか・・・。
状況: IPv6を使用する際、RA+DHCPv6Client(dhcpv6-options parameters-only)に設定にしても、DNSサーバが設定されない。
対処: dhcpv6-clientのスクリプトを修正する。コンフィグをチェックする関数の呼び出しパラメータを変更するとDNSが取得できるようになります。
コンソールで、sudo -i と入力すると、Linuxのシェルが現れますので、エディタで修正します。
●/opt/vyatta/sbin/vyatta-dhcpv6-client.pl の 75行目あたり
変更前 before
$args .= " -T" if ($config->exists("dhcpv6-options/temporary")); $args .= " -S" if ($config->exists("dhcpv6-options/parameters-only"));
変更後 after
$args .= " -T" if ($config->exists("dhcpv6-options temporary")); $args .= " -S" if ($config->exists("dhcpv6-options parameters-only"));
おそらく、関数のAPIを変更した際の、修正漏れでしょう・・・。
■Vyattaを、IPv6のブロードバンドルータにする等の場合の、RA+DHCPv6のインタフェース設定のコンフィグ例。
・フレッツv6オプションとかでも大丈夫かと。※試していません。
・eth1がWAN側の想定です。
・IPv6アドレスのインタフェースIDは、EUI64で設定されます。MACアドレスは手動で設定できるので、ある程度コントロールできます。以下の例だと、(prefix):02yy:yyFF:FEyy:yyyy になります。
・フレッツ・v6オプションの「ネーム」を使う場合、機器交換などで、MACアドレスが変わると再登録作業の憂き目にあうので、手動で設定をしておくと良いと思います。NTTのサポートに確認したところ、NTT都合でPrefixを変更した場合は、「ネーム」のプリフィックスも併せて追従するように書き換えてくれるそうです。
ethernet eth1 { address dhcpv6 dhcpv6-options { parameters-only } duplex auto hw-id xx:xx:xx:xx:xx:xx ipv6 { address { autoconf } disable-forwarding dup-addr-detect-transmits 1 } mac 02:yy:yy:yy:yy:yy smp_affinity auto speed auto }