SolarisからIPv6ルーターのようにRAを配信するUNIX処方箋

現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、Solaris 8でIPv6ルーターのようにRAを配信する方法を解説する。

» 2008年07月11日 14時40分 公開
[ITmedia]

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によって自動起動します。

/etc/inet/ndpd.confファイルの作成

 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 ndpd.confファイルの設定項目

 表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の送信元をデフォルトゲートウェイとして使用可能な有効期間(秒)
表2 ifdefault、ifエントリの設定値(if-variable-name)
設定名 初期値 説明
AdvValidLifetime 2592000 RAを受信したホストが、配信されたプレフィックスをIPv6アドレスの自動生成に使用できる期間(秒)
AdvOnLinkFlag on(存在する) RAで配信されるプレフィックスが同一リンク上に存在するかどうか
AdvPreferredLifetime 604800 RAを受信したホストが、配信されたプレフィックスをIPv6アドレスの自動生成に使用することが推奨される期間(秒)
AdvAutonomousFlag on(使用できる) RAを受信したホストが、IPv6アドレスを自動生成するために配信されたプレフィックス情報を使用できるかどうか
AdvValidExpiration 未設定 RAを受信したホストが、配信されたプレフィックスをIPv6アドレスの自動生成に使用できなくなる日時(年月日・時分)
AdvPreferredExpiration 未設定 RAを受信したホストが、配信されたプレフィックスをIPv6アドレスの自動生成に使用することが推奨されなくなる日時(年月日・時分)
表3 prefixdefault、prefixエントリの設定値(prefix-variable-name)

 リスト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


リスト1 ndpd.confファイル設定例(hme0インタフェースから、1:1:1:1::0/64というプレフィックス情報を含んだRAをネットワーク上に配信する)

in.ndpdデーモンの再起動

 /etc/inet/ndpd.confを作成したら、in.ndpdデーモンを再起動します。psコマンドでプロセスIDを調べ、「kill -HUP」コマンドで実行すると良いでしょう。これで、ndpd.confファイルに記述した設定が有効になり、hme0インタフェースからRAが配信されます。

RAによるアドレス自動作成

 きちんとRAが配信されているか、ほかのSolarisのホストを接続して確認してみましょう。接続したホスト上で「ifconfig -a6」コマンドを実行し、1:1:1:1::0/64のIPv6アドレスが自動的に生成されていれば、RAが正常に配信されていることが分かります(実行例1)

# ifconfig -a6

lo0: flags=2000849 mtu 8252 index 1

        inet6 ::1/128

hme0: flags=2000841 mtu 1500 index 2

        ether 8:0:20:a2:74:4

        inet6 fe80::a00:20ff:fea2:7404/10

hme0:1: flags=2080841 mtu 1500 index 2

        inet6 1:1:1:1:a00:20ff:fea2:7404/64


実行例1 接続したホスト上で「ifconfig -a6」コマンドを実行し、1:1:1:1::0/64のIPv6アドレスが自動的に生成されているか確認

このページで出てきた専門用語

RA

Router Advertisement。プレフィックスを同一リンク上のホストに通知(広告)するためのメッセージ。主にルーターが配信する。これを受け取ったホストは、プレフィックス情報と自身のMACアドレスを組み合わせて、IPアドレスを自動生成する。

NS(Neighbor Solicitation)

リンク層アドレス(MACアドレス)の問い合わせを行うメッセージ。IPv4でのARPの役割に相当する


関連キーワード

UNIX処方箋 | IPv6 | Solaris


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ