SEIL と Mac OS X Lion で IPv6

先週7月20日、Apple Inc.からMac OS X Lionがリリースされました。Lionにはマルチタッチジェスチャーやオートセーブなどさまざまな新機能が搭載されていますが、IPv6スタックも地味に強化されています。大きな改善点としては、ついにDHCPv6がサポートされました。そこで今回は、LionをインストールしたMacをSEILに接続してIPv6を利用する際の設定のポイントや注意点を解説します。

記事一覧

LionでIPv6を使うためのSEILの設定

Mac OSをSnow LeopardからLionにアップグレードしても、SEIL側の設定は特に変更の必要はありません。先日の「SEIL/x86でNGN IPv6接続を試す」や「NGN IPv6への接続の設定(dhcp6, rtadvd)」の記事で紹介した設定そのままで接続できます。

記事からLAN側の設定を抜き出して再掲します:

 8. dhcp6 server interface lan0 enable
 9. dhcp6 server interface lan0 dns add dhcp6
10. rtadvd enable
11. rtadvd interface lan0 enable
12. rtadvd interface lan0 other-flag on
13. rtadvd interface lan0 advertise auto

ただし、若干はまりどころがありますので、以下で説明してゆきます。

LionのDHCPv6クライアントとrtadvdのフラグの関係

Lionには新規にDHCPv6クライアントが搭載されました。ネットワークの設定パネルで「IPv6の構成」を「自動」にすると動作します。その状態で上述の設定をしたSEILの下に接続すると、LionはDHCPv6プロトコルの"Information-request"メッセージ(*1)を使って

  1. DNSサーバのIPv6アドレス
  2. DNSドメイン

の情報を取得します。

しかし、ここでひとつ注意が必要です。LionのDHCPv6クライアントは、IPv6ルータ広告(Router Advertisement)パケットのフラグに応じて動作を変えます。そのフラグとは

の二つのフラグで(*2)、LionをSEILの下に接続する場合は、"Managed address configuration"フラグは 0 に、"Other configuration"フラグは 1 に設定しておかなければなりません。それぞれ、rtadvdコマンドの "managed-flag" と "other-flag" パラメータで設定します。コンフィグに書き下すと

rtadvd interface lan0 managed-flag off
rtadvd interface lan0 other-flag on

となります。なお"managed-flag"の方はデフォルト値がoffなので、何も設定されていなければoffになっています。

ここでmanaged-flagをonに設定してしまうと、LionはDHCPv6プロトコルの"Solicit"メッセージでIPv6アドレスを取得しようと試みます(*3)。しかしSEILはDHCPv6による固定アドレスの配布をサポートしていないため、いつまでたってもつながらないことになります。

また、managed-flagとother-flagを両方ともoffに設定してしまうと、今度はLionはDHCPv6パケットをまったく投げなくなります。すなわちDNS情報の取得もできません。

結論としては、SEILの下にLionを接続する場合は、rtadvdの

の二点に注意してください。

SNTPサーバ情報は設定不要

SEILのDHCPv6サーバ機能では、DNSサーバやDNSドメイン名の他にSNTPサーバのアドレスも配布できます。

dhcp6 server interface lan0 sntp add 2001:db8::1:2:3

しかし、LionのDHCPv6クライアントはSNTPサーバの情報をSEILに要求してきません。したがって、上記の設定を書いても残念ながら使われません...

プライバシーアドレス

LionではIPv6アドレスの自動設定が強化され、デフォルトでプライバシーアドレス(*4)が利用可能になりました。こちらも特にSEILの設定は変更せず利用可能です。SEILがグローバルアドレスとULA (Unique Local Address)(*5)の二つのプレフィクスを同時に払い出しそれらを使い分けているような環境でも、それぞれのアドレスに対してプライバシーアドレスが生成されていることを確認しています。

おわりに

今回は、リリースされたばかりのMac OS X LionをSEILにつなぐための設定や注意点を紹介しました。一般向けIPv6接続サービスも各社から出揃いつつあります。ぜひお試しください。

*1: DHCPv6でDNSサーバ情報等の取得に使われるメッセージです。詳細についてはRFC3315を参照してください。

*2: 二つまとめて "M/Oビット" と呼ばれることもあります。詳細についてはRFC4861を参照してください。

*3: ルータ広告(Router Advertisement)による自動設定ではなく、DHCPv6を使って手動でIPv6アドレスを管理したい場合にそれをDHCPv6サーバに要求するメッセージです。先の"Information-request"メッセージはIPv6アドレスは要求せず、DNSサーバ等の情報だけを要求します。

*4: 正確には「一時アドレス (Temporary Address)」と呼ぶべきでしょうか。詳細についてはRFC4941を参照してください。

*5: 詳細についてはRFC4193を参照してください。