現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、Solaris 8でIPv6ルーターのようにRAを配信する方法を解説する。
Solaris 8を導入したマシンを数台用意し、IPv6ネットワークを構築しようとしています。1台ずつIPアドレスを設定するのが面倒なため、RA*を利用したいのですが、手元にRAを配信できるIPv6ルーターがありません。Solaris 8を使って、IPv6ルーターのようにRAを配信できませんか?
IPv6に対応しているSolaris(バージョン8以上)であれば、RAを配信できます。この動作は、in.ndpdというIPv6の自動設定用のデーモンが行います。in.ndpdデーモンは、Solaris 8ではシステムの起動時に/etc/rc2.d/S69inetによって自動起動します。
RAを配信するには、/etc/inet/ndpd.confを作成する必要があります。/etc/inet/ndpd.confでは、RAの配信方法に関するさまざまな項目を設定します。設定項目には、ifdefault、if、prefixdefault、prefixエントリの4種類があります。各項目の詳細は表1を参照してください。
項目 | 書式 | 説明 |
---|---|---|
ifdefault | ifdefault <if-variable-name><value> | ホスト上のすべてのネットワークインタフェースの動作を指定する |
if | if <interface><if-variable-name><value> | ネットワークインタフェースごとの動作を指定する |
prefixdefault | prefixdefault <prefix-variable-name><value> | 通知するプレフィックスの動作を指定する(すべてのネットワークインタフェースに共通) |
prefix | prefix <prefix>/<prefix_length><interface><prefix-variable-name><value> | 通知するプレフィックスの動作を指定する(ネットワークインタフェースごとに設定) |
表1のifdefault、ifはインタフェース関連の設定を行うエントリで、prefixdefault、prefixはプレフィックス関連の設定を行うエントリです。ifdefault、ifエントリの設定値は表2を、prefixdefault、prefixエントリの設定値は表3を参照してください。注意点は、ifdefaultはifより前の行に、prefixdefaultはprefixより前の行に定義する必要があることです。
設定名 | 初期値 | 説明 |
---|---|---|
DupAddrDetectTransmits | 1 | DAD(IPv6アドレスの重複を検出する機能)の実行回数 |
AdvSendAdvertisements | off(送信しない) | ネットワークにRAを送信するかどうか |
MaxRtrAdvInterval | 600秒 | RAの最大送信間隔(秒) |
MinRtrAdvInterval | 200秒 | RAの最小送信間隔(秒) |
AdvManagedFlag | off(許可しない) | RAを受信したホストが、RA以外の方法(DHCPv6など)によって自動的にアドレスを設定されることを許可するかどうか |
AdvOtherConfigFlag | off(許可しない) | RAを受信したホストが、RA以外の方法によってアドレス以外の情報を自動的に設定されることを許可するかどうか |
AdvLinkMTU | 0(通知しない) | RAを受信するホストへ通知するMTU値 |
AdvReachableTime | 0(設定しない) | RAを受信したホストが持っている、隣接するIPv6ノードへの到達性の有効期間を指定する設定値(ミリ秒) |
AdvRetransTimer | 0(指定しない) | RAを受信したホストのNS*の再送間隔を指定する設定値(ミリ秒) |
AdvCurHopLimit | 0(指定しない) | RAを受信したホストのHop Limit値を指定する設定値 |
AdvDefaultLifetime | 1800秒 | RAを受信したホストがRAの送信元をデフォルトゲートウェイとして使用可能な有効期間(秒) |
設定名 | 初期値 | 説明 |
---|---|---|
AdvValidLifetime | 2592000 | RAを受信したホストが、配信されたプレフィックスをIPv6アドレスの自動生成に使用できる期間(秒) |
AdvOnLinkFlag | on(存在する) | RAで配信されるプレフィックスが同一リンク上に存在するかどうか |
AdvPreferredLifetime | 604800 | RAを受信したホストが、配信されたプレフィックスをIPv6アドレスの自動生成に使用することが推奨される期間(秒) |
AdvAutonomousFlag | on(使用できる) | RAを受信したホストが、IPv6アドレスを自動生成するために配信されたプレフィックス情報を使用できるかどうか |
AdvValidExpiration | 未設定 | RAを受信したホストが、配信されたプレフィックスをIPv6アドレスの自動生成に使用できなくなる日時(年月日・時分) |
AdvPreferredExpiration | 未設定 | RAを受信したホストが、配信されたプレフィックスをIPv6アドレスの自動生成に使用することが推奨されなくなる日時(年月日・時分) |
リスト1は、Solaris 8のhme0インタフェースから、1:1:1:1::0/64というプレフィックス情報を含んだRAをネットワーク上に配信する場合の記述例となります。
ifdefault AdvReachableTime 30000 AdvRetransTimer 2000
prefixdefault AdvValidLifetime 14400 AdvPreferredLifetime 7200
if hme0 AdvSendAdvertisements on
prefix 1:1:1:1::0/64 hme0
/etc/inet/ndpd.confを作成したら、in.ndpdデーモンを再起動します。psコマンドでプロセスIDを調べ、「kill -HUP」コマンドで実行すると良いでしょう。これで、ndpd.confファイルに記述した設定が有効になり、hme0インタフェースからRAが配信されます。
きちんとRAが配信されているか、ほかのSolarisのホストを接続して確認してみましょう。接続したホスト上で「ifconfig -a6」コマンドを実行し、1:1:1:1::0/64のIPv6アドレスが自動的に生成されていれば、RAが正常に配信されていることが分かります(実行例1)。
# ifconfig -a6
lo0: flags=2000849
inet6 ::1/128
hme0: flags=2000841
ether 8:0:20:a2:74:4
inet6 fe80::a00:20ff:fea2:7404/10
hme0:1: flags=2080841
inet6 1:1:1:1:a00:20ff:fea2:7404/64
Router Advertisement。プレフィックスを同一リンク上のホストに通知(広告)するためのメッセージ。主にルーターが配信する。これを受け取ったホストは、プレフィックス情報と自身のMACアドレスを組み合わせて、IPアドレスを自動生成する。
リンク層アドレス(MACアドレス)の問い合わせを行うメッセージ。IPv4でのARPの役割に相当する
Copyright © ITmedia, Inc. All Rights Reserved.