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
     }