この章では、ホストやルーターで IPv6 を設定する方法について説明します。主な内容を以下に示します。
内容 |
参照先 |
---|---|
IPv6 の概要 | |
この章で説明する IPv6 作業に関連した詳しい概念情報 | |
IPv4 から IPv6 への移行方法の詳細 |
この節では、IPv6 ノードをネットワークで設定するときに必要な手順について説明します。
この節で「ノード」という用語は、Solaris サーバーまたはクライアントホストを指します。
作業 |
説明 |
参照先 |
---|---|---|
ノード上の IPv6 を有効にする |
hostname6.interface ファイルの操作、アドレスの表示、/etc/inet/ipnodes ファイルへのアドレスの入力。この表の「注」参照。 | |
Solaris IPv6 ルーターの設定 |
indp.conf ファイルへのエントリの追加 | |
6to4 ルーターの設定 |
/etc/hostname6.ip.6to4tun0 ファイルを使用して 6to4 インタフェースを設定する | |
IPv6 アドレスを NIS と NIS+ に追加 |
/etc/ipnodes ファイルへのエントリ追加 | |
IPv6 アドレスを DNS に追加 |
DNS ゾーンと逆ゾーンファイルに対する AAAA レコードの追加 |
IPv6 は、Solaris ソフトウェアをインストールするときにシステムで有効にできます。インストールプロセスで yes と応答して IPv6 を有効にすると、あとの IPv6 を有効にする手順を省略できます。
IPv6 を有効にしたいシステム上でスーパーユーザーになります。
各インタフェースに対して次のように入力します。
# touch /etc/hostname6.interface |
interface |
le0、le1 などのインタフェース名 |
ノードをリブートする
リブートすると、ルーターに検索パケットが送信されます。ルーターがプレフィックスを応答することにより、ノードが IPv6 アドレスでインタフェースを設定できるようになります。リブートすると、主なネットワークデーモンも IPv6 モードで再起動します。
全インタフェースの IPv6 アドレスを表示します。
# ifconfig -a6 |
IPv4 アドレスと IPv6 アドレスを表示するには、-a オプションだけを使用します。
適切なネームサービスに、IPv6 アドレスを次のように追加します。
NIS と NIS+ については、NIS と NIS+ に対する IPv6 アドレスの追加方法を参照してください。
DNS については、DNS に対する IPv6 アドレスの追加方法を参照してください。
ルーターとして機能するシステム上で、スーパーユーザーになります。
/etc/inet/ndpd.conf ファイルを編集して、サブネットプレフィックスを使用して次のエントリを 1 つまたは複数追加します。
変数と使用できる値のリストについては、in.ndpd(1M) のマニュアルページを参照してください。ndpd.conf ファイルについては、ndpd.conf(4) のマニュアルページを参照してください。
システムをリブートします。
ホストのサブネットアドレスプレフィックスが、近傍検索 (in.ndpd) からホストにリレーされます。また、次世代 RIP ルーティングプロトコル (in.ripngd) が自動的に実行されます。
# Send router advertisements out all NICs ifdefault AdvSendAdvertisements on # Advertise a global prefix and a # site local prefix on three interfaces. # 0x9255 = 146.85 prefix 2:0:0:9255::0/64 hme0 prefix fec0:0:0:9255::0/64 hme0 # 0x9256 = 146.86 prefix 2:0:0:9256::0/64 hme1 prefix fec0:0:0:9256::0/64 hme1 # 0x9259 = 146.89 prefix 2:0:0:9259::0/64 hme2 prefix fec0:0:0:9259::0/64 hme2 |
IPv6 ネットワーク上で 6to4 ルーティングを設定する前に、以下の作業をすませておく必要があります。
ノード上の IPv6 を有効にする方法で説明しているように、予定されている 6to4 サイトですべての必要なノードで IPv6 を設定する
6to4 ルーターとして使用するため、IPv4 ネットワークに接続された 1 台以上のルーターを選択する
IPv4 ネットワークに対して使用する 6to4 ルーターのインタフェースに一意の (全世界に 1 つしかない) IPv4 アドレスを設定する。この IPv4 アドレスは静的なものでなければならない。動的に割り当てられる IPv4 アドレスは使用できない。IPv4 インタフェースの設定方法については、『Solaris のシステム管理 (IP サービス)』の「ネットワーク構成手順」を参照してください。
予定されている 6to4 ルーター上で、スーパーユーザーになります。
/etc/hostname6.ip.6to4tun0 ファイルを作成することにより、そのルーター上で 6to4 擬似インタフェースを設定します。
サブネット ID が 0 でホスト ID が 1 の推奨されている規則を使用する場合は、 /etc/hostname6.ip.6to4tun0 では次に示す短い形式を使用してください。
tsrc IPv4 address up |
サブネット ID とホスト ID にほかの規則を使用する場合は、/etc/hostname6.ip.6to4tun0 では次に示す長い形式を使用してください。
tsrc IPv4 address 2002:IPv4 address:subnet ID:host ID:/64 up |
次の表は、この作業で使用される /etc/hostname6.ip.6to4tun0 のパラメータを説明したものです。
tsrc |
このインタフェースがトンネルソースとして使用されることを示す |
IPv4 address |
6to4 擬似インタフェースとなる物理インタフェース上で設定される IPv4 アドレスを ドット付きの 10 進数形式で指定する |
2002 |
(省略可能) 6to4 プレフィックスを指定する |
IPv4 address |
(省略可能) 擬似インタフェースの IPv4 アドレスを 16 進で指定する |
subnet ID |
(省略可能) 0 以外のサブネット ID を16 進表記で指定する |
host ID |
(省略可能) 1 以外のホスト ID を指定する |
/64 |
アドレスの長さが 64 ビットであることを示す |
up |
インタフェースを “up” として設定するように ifconfig に指示する |
2 つの IPv6 トンネルに同じソースアドレスと宛先アドレスを指定することはできません。同じアドレスを指定するとパケットは削除されます。このような状況は、6to4 ルーターが atun を通してトンネリングも実施する場合に発生する可能性があります。
(省略可能) ルーター上でさらに 6to4 擬似インタフェースを作成します。
予定されている各 6to4 擬似インタフェースには、すでに設定された一意の (全世界に 1 つしかない) IPv4 アドレスが必要です。
インタフェースの状態を確認するために ifconfig を実行します。
# ifconfig ip.6to4tun0 inet6 |
インタフェースが正しく設定されている場合は、次のようなメッセージが表示されます。
ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6>mtu 1480 index 11 inet tunnel src 129.146.87.188 tunnel hop limit 60 inet6 2002:8192:56bb:56bb::1/64 |
6to4 ルーティングを通知するために /etc/inet/ndpd.conf を編集します。
詳細は、ndpd.conf(4) のマニュアルページを参照してください。
最初の行で、通知を受け取るサブネットを指定します。
if エントリを次の書式で作成してください。
if subnet-interface AdvSendAdvertisements 1 |
たとえば、インタフェース hme0 に接続しているサブネットに対して 6to4 ルーティングを通知するには、subnet-interface を hme0 に置き換えます。
if hme0 AdvSendAdvertisements 1 |
通知の 2 行目として 6to4 プレフィックスを追加します。
prefix エントリを次の書式で作成してください。
prefix 2002:IPv4-address:subnet ID::/64 subnet-interface |
prefix 2002 |
6to4 プレフィックスを示す |
IPv4-address |
6to4 擬似インタフェースの一意の IPv4 アドレスを 16 進表記で指定する |
subnet ID |
サブネット ID を 16 進で指定する |
subnet-interface |
サブネットが接続しているルーターインタフェース |
ルーターをリブートします。
リブートするかわりに、/etc/inet/in.ndpd に対して sighup を発行してルーター通知の送信を開始することもできます。これにより、6to4 プレフィックスを受け取る各サブネット上の IPv6 ノードは、6to4 から派生した新しいアドレスを使用して自動設定を行います。
ノードに使用される 6to4 派生の新しいアドレスを 6to4 サイトで使用されるネームサービスに追加します。
手順については、DNS に対する IPv6 アドレスの追加方法またはNIS と NIS+ に対する IPv6 アドレスの追加方法を参照してください。
サイトに複数のルーターが存在する場合は、6to4 をサポートするために 6to4 ルーターの背後のルーターをさらに設定しなければならないことがあります。サイトで RIP を使用している場合は、6to4 以外の各ルーター上で 6to4 ルーターとの間の静的な経路を設定する必要があります。市販のルーティングプロトコルを使用する場合は、6to4 ルーターとの間の静的な経路を構築する必要はありません。
次に、/etc/hostname6.ip.6to4tun0 の短い形式の例を示します。
# cat /etc/hostname6.ip.6to4tun0 tsrc 129.146.87.188 up |
次に、/etc/hostname6.ip.6to4tun0 の長い形式の例を示します。
# cat /etc/hostname6.ip.6to4tun0 tsrc 129.146.87.188 2002:8192:56bb::1/64 up |
次に、6to4 擬似インタフェースの ifconfig の出力例を示します。
# ifconfig ip.6to4tun0 inet6 ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6> mtu 1480 index 11 inet tunnel src 129.146.87.188 tunnel hop limit 60 inet6 2002:8192:56bb::1/64 |
次の /etc/inet/ndpd.conf ファイル例は、2 つのサブネット上の 6to4 ルーティングを通知します。
if qfe0 AdvSendAdvertisements 1 prefix 2002:8192:56bb:1::/64 qfe0 if qfe1 AdvSendAdvertisements 1 prefix 2002:8192:56bb:2::/64 qfe1 |
NIS+ 用に ipnodes.org_dir という新しいテーブルが追加されました。このテーブルには、ホスト用の IPv4 アドレスと IPv6 アドレスの両方が保存されています。既存の IPv4 情報だけを保持している hosts.org_dir テーブルは、既存のアプリケーションを円滑に実行するために残しておきます。hosts.org_dir テーブルと ipnodes.org_dir テーブルはどちらも IPv4 アドレスと整合させておく必要があります。概要については、Solaris ネームサービスに対する IPv6 拡張機能を参照してください。
新しい ipnodes.org_dir テーブルの管理方法は、hosts.org_dir の管理方法と似ています。従来の NIS+ テーブルの管理に使用したのと同じツールとユーティリティは、ipnodes.org_dir にも有効です。NIS+ テーブルの操作についての詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。
次のコマンドは、/etc/inet/ipnodes のエントリを ipnodes.org_dir テーブルに冗長モードでマージします。NIS+ テーブルは、nistbladm(1)、nissetup(1M)、または nisserver(1M) のどれかで作成されたものとします。
コマンド行で、次のコマンドを入力します。
% nisaddent -mv -f /etc/inet/ipnodes ipnodes |
ipnodes.org_dir テーブルを表示するには、次のように操作します。
コマンド行で、次のコマンドを入力します。
% nisaddent -d ipnodes |
NIS 用に、新しいマップ ipnodes.byname と ipnodes.byaddr の 2 つが追加されました。 これらのマップは、いずれも IPv4 と IPv6 のホスト名とアドレスの関連付けを保存しています。hosts.byname マップと hosts.byaddr マップは、IPv4 のホスト名とアドレスの関連情報だけを保存していますが、既存のアプリケーションが動作できるように変更されていません。しいマップの管理は、以前の hosts.byname マップと hosts.byaddr マップの管理方法と同様です。hosts マップを IPv4 アドレスで更新すると、新しい ipnode マップも同じ情報で更新されることに注意してください。
IPv6 対応ツールは、新しい NIS マップと新しい NIS+ テーブルを使用します。
IPv6 ネットワークのプライマリまたはセカンダリ DNS サーバー上でスーパーユーザーになります。
DNS ゾーンファイルに、各 IPv6 有効化ホストの AAAA レコードを次のフォーマットで追加して編集します。
host-name IN AAAA host-address |
DNS 逆ゾーンファイルを編集し、次のフォーマットで PTR レコードを追加します。
host-address IN PTR host-name |
DNS 管理の詳細については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』の「DNS の管理 (参照情報)」を参照してください。
vallejo IN AAAA 2::9256:a00:20ff:fe12 IN AAAA fec0::9256:a00:20ff:fe12:528 |
$ORIGIN ip6.int. 8.2.5.0.2.1.e.f.f.f.9.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0 \ IN PTR vallejo.Eng.apex.COM. 8.2.5.0.2.1.e.f.f.f.9.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.0.c.e.f \ IN PTR vallejo.Eng.apex.COM. |
次のコマンドは IPv6 の Solaris 実装に対応するように変更されています。
ifconfig(1M)
netstat(1M)
snoop(1M)
ping(1M)
traceroute(1M)
追加コマンドを使用すると診断を実行できます。これらのコマンドの考え方については、ifconfig ユーティリティに対する IPv6 拡張機能と 既存のユーティリティに対する IPv6 拡張機能を参照してください。
作業 |
説明 |
参照先 |
---|---|---|
インタフェースアドレス割り当ての表示 |
ifconfig コマンドで、すべてのアドレス割り当て、あるいは IPv4、IPv6、または 6to4 派生アドレス割り当てだけを表示 | |
ネットワーク状態の表示 |
すべてのソケットとルーティングテーブルエントリ、IPv4 用の inet アドレスファミリー、IPv6 用の inet6 アドレスファミリー、netstat コマンドによるインタフェースの IPv6 または ICMPv6 カウンタの統計を表示 | |
IPv6 関連コマンドの出力表示の制御 |
ping コマンド、netstat コマンド、 ifconfig コマンド、traceroute コマンドの出力の制御。inet_type という名前のファイルの作成と、そのファイル内の DEFAULT_IP 変数の設定 | |
IPv6 ネットワークトラフィックだけの監視 |
snoop コマンドによるすべての IPv6 パケットの表示 | |
すべてのマルチホームホストアドレスの探査 |
ping コマンドによるすべてのアドレスの確認 | |
すべてのルートのトレース |
traceroute コマンドの使用 |
IPv4 や IPv6 のアドレス割り当ての場合だけでなく、すべてのアドレス割り当てを表示する場合も ifconfig コマンドを使用します。
コマンド行で次のコマンドを入力します。
% ifconfig [option] |
ifconfig コマンドの詳細については、ifconfig(1M) のマニュアルページを参照してください。
% ifconfig -a lo0: flags=1000849 mtu 8232 index 1 inet 120.10.0.1 netmask ff000000 le0: flags=1000843 mtu 1500 index 2 inet 120.46.86.54 netmask ffffff00 broadcast 120.146.86.255 ether 8:0:73:56:a8 lo0: flags=2000849 mtu 8252 index 1 inet6 ::1/128 le0: flags=2000841 mtu 1500 index 2 ether 8:0:20:56:a8 inet6 fe80::a00:fe73:56a8/10 le0:1: flags=2080841 mtu 1500 index 2 inet6 fec0::56:20ff:fe73:56a8/64 le0:2: flags=2080841 mtu 1500 index 2 inet6 2::56:a00:fe73:56a8/64 |
% ifconfig -a4 lo0: flags=1000849 mtu 8232 index 1 inet 120.10.0.1 netmask ff000000 le0: flags=1000843 mtu 1500 index 2 inet 120.46.86.54 netmask ffffff00 broadcast 120.46.86.255 ether 8:0:20:56:a8 |
% ifconfig -a6 lo0: flags=2000849 mtu 8252 index 1 inet6 ::1/128 le0: flags=2000841 mtu 1500 index 2 ether 8:0:20:56:a8 inet6 fe80::a00:fe73:56a8/10 le0:1: flags=2080841 mtu 1500 index 2 inet6 fec0::56:20ff:fe73:56a8/64 le0:2: flags=2080841 mtu 1500 index 2 inet6 2::56:a00:fe73:56a8/64 ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6> mtu 1480 index 11 inet tunnel src 129.146.86.187 tunnel hop limit 60 inet6 2002:8192:56bb::1/64 |
% ifconfig ip.6to4tun0 inet6 6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6. mtu 1480 index 11 inet tunnel src 172.16.213.81 tunnel hop limit 60 inet6 2002:ac10:d551::1/64 |
次の手順では、 netstat コマンドで、次に示すネットワークデータ構造フォーマットを表示できます。
すべてのソケットとルーティングテーブルのエントリ
IPv4 用の inet アドレスファミリ
IPv6 用の inet6 アドレスファミリ
インタフェース別統計 – IPv6/ICMPv6 カウンタ
netstat コマンドの詳細については、netstat(1M) のマニュアルページを参照してください。
% netstat -a UDP: IPv4 Local Address Remote Address State -------------------- -------------------- ------- *.* Unbound *.apexrpc Idle *.* Unbound . . UDP: IPv6 Local Address Remote Address State If --------------------------------- --------------------------------- ------- *.* Unbound *.time Idle *.echo Idle *.discard Idle *.daytime Idle *.chargen Idle TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ------- *.* *.* 0 0 0 0 IDLE *.apexrpc *.* 0 0 0 0 LISTEN *.* *.* 0 0 0 0 IDLE *.ftp *.* 0 0 0 0 LISTEN localhost.427 *.* 0 0 0 0 LISTEN *.telnet *.* 0 0 0 0 LISTEN tn.apex.COM.telnet is.Eng.apex.COM 8760 0 8760 0 ESTABLISHED tn.apex.COM.33528 np.apex.COM.46637 8760 0 8760 0 TIME_WAIT tn.apex.COM.33529 np.apex.COM.apexrpc 8760 0 8760 0 TIME_WAIT TCP: IPv6 Local Address Remote Address Swind Send-Q Rwind Recv-Q State If ----------------- ----------------- ----- ------ ----- ------ ----- *.* *.* 0 0 0 0 IDLE *.ftp *.* 0 0 0 0 LISTEN *.telnet *.* 0 0 0 0 LISTEN *.shell *.* 0 0 0 0 LISTEN *.smtp *.* 0 0 0 0 LISTEN . . 2::56:8.login something.1023 8640 0 8640 0 ESTABLISHED fe80::a:a8.echo fe80::a:89 8640 0 8640 0 ESTABLISHED fe80::a:a8.ftp fe80::a:90 8640 0 8640 0 ESTABLISHED |
% netstat -f inet TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ------- tn.apex.COM.telnet is.apex.COM.35388 8760 0 8760 0 ESTABLISHED tn.apex.COM.1022 alive-v4.nfsd 8760 0 8760 0 ESTABLISHED tn.apex.COM.1021 sl.apex.COM.nfsd 8760 0 8760 0 ESTABLISHED . . tn.apex.COM.33539 np.apex.COM.apexrpc 8760 0 8760 0 TIME_WAIT |
% netstat -f inet6 TCP: IPv6 Local Address Remote Address Swind Send-Q Rwind Recv-Q State If -------------------- --------------------- ----- ------ ----- ------ ----------- ----- 2::56:a8.login something.1023 8640 0 8640 0 ESTABLISHED fe80::a0:a8.echo fe80::a0:de.35389 8640 0 8640 0 ESTABLISHED . . fe80::a0:a8.ftp-data fe80::a0:de.35394 25920 0 25920 0 TIME_WAIT |
% netstat -sa RAWIP rawipInDatagrams = 1407 rawipInErrors = 0 rawipInCksumErrs = 0 rawipOutDatagrams = 5 rawipOutErrors = 0 UDP udpInDatagrams = 7900 udpInErrors = 0 udpOutDatagrams = 7725 udpOutErrors = 0 TCP tcpRtoAlgorithm = 4 tcpRtoMin = 200 tcpRtoMax = 60000 tcpMaxConn = -1 . . IPv4 ipForwarding = 2 ipDefaultTTL = 255 ipInReceives =406345 ipInHdrErrors = 0 ipInAddrErrors = 0 ipInCksumErrs = 0 . . IPv6 for lo0 ipv6Forwarding = 2 ipv6DefaultHopLimit = 0 ipv6InReceives = 0 ipv6InHdrErrors = 0 . . IPv6 for le0 ipv6Forwarding = 2 ipv6DefaultHopLimit = 255 ipv6InReceives = 885 ipv6InHdrErrors = 0 . . IPv6 ipv6Forwarding = 2 ipv6DefaultHopLimit = 255 ipv6InReceives = 885 ipv6InHdrErrors = 0 . . ICMPv4 icmpInMsgs = 618 icmpInErrors = 0 icmpInCksumErrs = 0 icmpInUnknowns = 0 icmpInDestUnreachs = 5 icmpInTimeExcds = 0 . . ICMPv6 for lo0 icmp6InMsgs = 0 icmp6InErrors = 0 icmp6InDestUnreachs = 0 icmp6InAdminProhibs = 0 . . ICMPv6 for le0 icmp6InMsgs = 796 icmp6InErrors = 0 icmp6InDestUnreachs = 0 icmp6InAdminProhibs = 0 icmp6InTimeExcds = 0 icmp6InParmProblems = 0 . . ICMPv6 icmp6InMsgs = 796 icmp6InErrors = 0 icmp6InDestUnreachs = 0 icmp6InAdminProhibs = 0 . . ICMPv6 for ip.6to4tun0 icmp6InMsgs = 57 icmp6InErrors = 0 icmp6InDestUnreachs = 57 icmp6InAdminProhibs = 0 icmp6InTimeExcds = 0 icmp6InParmProblems = 0 icmp6InPktTooBigs = 0 icmp6InEchos = 0 icmp6InEchoReplies = 0 icmp6InRouterSols = 0 icmp6InRouterAds = 0 icmp6InNeighborSols = 0 icmp6InNeighborAds = 0 icmp6InRedirects = 0 icmp6InBadRedirects = 0 icmp6InGroupQueries = 0 icmp6InGroupResps = 0 icmp6InGroupReds = 0 icmp6InOverflows = 0 icmp6OutMsgs = 57 icmp6OutErrors = 0 icmp6OutDestUnreachs= 57 icmp6OutAdminProhibs= 0 icmp6OutTimeExcds = 0 icmp6OutParmProblems= 0 icmp6OutPktTooBigs = 0 icmp6OutEchos = 0 icmp6OutEchoReplies = 0 icmp6OutRouterSols = 0 icmp6OutRouterAds = 0 icmp6OutNeighborSols= 0 icmp6OutNeighborAds = 0 icmp6OutRedirects = 0 icmp6OutGroupQueries= 0 icmp6OutGroupResps = 0 icmp6OutGroupReds = 0 IGMP: 2542 messages received 0 messages received with too few bytes 0 messages received with bad checksum 2542 membership queries received . . |
netstat コマンドと ifconfig コマンドの出力は制御できます。まず、/etc/default ディレクトリで inet_type という名のファイルを作成します。次に、DEFAULT_IP 変数の値を指定します。inet_type の詳細については、inet_type(4) のマニュアルページを参照してください。
/etc/default/inet_type ファイルを作成します。
必要に応じて、次のどれかのエントリを作成します。
IPv4 情報だけを表示するには、次のように入力します。
DEFAULT_IP=IP_VERSION4 |
IPv4 情報と IPv6 情報を表示するには、次のいずれかを入力します。
DEFAULT_IP=BOTH |
または
DEFAULT_IP=IP_VERSION6 |
ifconfig の -4 フラグと -6 フラグの設定は、inet_type ファイルに設定された値より優先します。また、netstat の -f フラグの設定も、inet_type ファイルに設定された値より優先します。
DEFAULT_IP=BOTH または DEFAULT_IP=IP_VERSION6 変数を inet_type ファイルで設定する場合、次の結果が得られます。
% ifconfig -a lo0: flags=1000849 mtu 8232 index 1 inet 120.10.0.1 netmask ff000000 le0: flags=1000843 mtu 1500 index 2 inet 120.46.86.54 netmask ffffff00 broadcast 120.46.86.255 ether 8:0:20:56:a8 lo0: flags=2000849 mtu 8252 index 1 inet6 ::1/128 le0: flags=2000841 mtu 1500 index 2 ether 8:0:20:56:a8 inet6 fe80::a00:fe73:56a8/10 le0:1: flags=2080841 mtu 1500 index 2 inet6 fec0::56:a00:fe73:56a8/64 le0:2: flags=2080841 mtu 1500 index 2 inet6 2::56:a00:fe73:56a8/64 |
DEFAULT_IP=IP_VERSION4 変数を inet_type ファイルで設定する場合、次の結果が得られます。
% ifconfig -a lo0: flags=849 mtu 8232 inet 120.10.0.1 netmask ff000000 le0: flags=843 mtu 1500 inet 120.46.86.54 netmask ffffff00 broadcast 120.46.86.255 ether 8:0:20:56:a8 |
すべての IPv6 パケットを表示するためには、次のように snoop コマンドを実行します。
snoop コマンドの詳細については、snoop(1M) のマニュアルページを参照してください。
# snoop ip6 Using device /dev/le (promiscuous mode) fe80::a0:a1 -> ff02::9 IPv6 S=fe80::a0:a1 D=ff02::9 LEN=892 fe80::a0:de -> fe80::a0:a8 IPv6 S=fe80::a0:de D=fe80::a0:a8 LEN=104 fe80::a0:a8 -> fe80::a0:de IPv6 S=fe80::a0:a8 D=fe80::a0:de LEN=104 fe80::a0:a1 -> ff02::9 IPv6 S=fe80::a0:a1 D=ff02::9 LEN=892 fe80::a0:de -> fe80::a0:a8 IPv6 S=fe80::a0:de D=fe80::a0:a8 LEN=104 ping -afe80::a0:a8 -> fe80::a0:de IPv6 S=fe80::a0:a8 D=fe80::a0:de LEN=152 fe80::a0:a1 -> ff02::9 IPv6 S=fe80::a0:a1 D=ff02::9 LEN=892 fe80::a0:de -> fe80::a0:a8 IPv6 S=fe80::a0:de D=fe80::a0:a8 LEN=72 fe80::a0:a8 -> fe80::a0:de IPv6 S=fe80::a0:a8 D=fe80::a0:de LEN=72 fe80::a0:a8 -> fe80::a0:de IPv6 S=fe80::a0:a8 D=fe80::a0:de LEN=72 fe80::a0:de -> fe80::a0:a8 IPv6 S=fe80::a0:de D=fe80::a0:a8 LEN=72 |
この操作では、ping コマンドですべてのアドレスを調べます。
コマンド行で次のコマンドを入力します。
% ping -a ipng11 ipng11 (2::102:a00:fe79:19b0) is alive ipng11 (fec0::102:a00:fe79:19b0) is alive ipng11 (190.68.10.75) is alive |
ping コマンドについての詳細は、ping(1M) のマニュアルページを参照してください。
この操作では、traceroute コマンドですべてのルーターを調べます。
コマンド行で次のコマンドを入力します。
% traceroute -a <hostname> |
traceroute コマンドの詳細については、traceroute(1M) のマニュアルページを参照してください。
% traceroute -a ipng11 traceroute: Warning: Multiple interfaces found; using 2::56:a0:a8 @ le0:2 traceroute to ipng11 (2::102:a00:fe79:19b0),30 hops max, 60 byte packets 1 ipng-rout86 (2::56:a00:fe1f:59a1) 35.534 ms 56.998 ms * 2 2::255:0:c0a8:717 32.659 ms 39.444 ms * 3 ipng61.Eng.apex.COM (2::103:a00:fe9a:ce7b) 401.518 ms 7.143 ms * 4 ipng12-00 (2::100:a00:fe7c:cf35) 113.034 ms 7.949 ms * 5 ipng11 (2::102:a00:fe79:19b0) 66.111 ms * 36.965 ms traceroute: Warning: Multiple interfaces found; using fec0::56:a8 @ le0:1 traceroute to ipng11 (fec0::10:b0), 30 hops max, 60 byte packets 1 ipng-rout86 (fec0::56:a00:fe1f:59a1) 96.342 ms 78.282 ms 88.327 ms 2 ipng8-tun1 (fec0::25:0:0:c0a8:717) 268.614 ms 508.416 ms 438.774 ms 3 ipng61.Eng.apex.COM (fec0::103:a00:fe9a:ce7b) 6.356 ms * 713.166 ms 4 ipng12-00 (fec0::100:a00:fe7c:cf35) 7.409 ms * 122.094 ms 5 ipng11 (fec0::102:a00:fe79:19b0) 10.620 ms * * traceroute to ipng11.eng.apex.com (190.68.10.75),30 hops max,40 byte packets 1 rmpj17c-086.Eng.apex.COM (120.46.86.1) 4.360 ms 3.452 ms 3.479 ms 2 flrmpj17u.Eng.apex.COM (120.46.17.131) 4.062 ms 3.848 ms 3.505 ms 3 ipng8.Eng.apex.COM (120.68.7.23) 4.773 ms * 4.294 ms 4 ipng61.Eng.apex.COM (120.68.10.104) 5.128 ms 5.362 ms * 5 ipng12-20.Eng.apex.COM (120.68.10.62) 7.298 ms 5.444 ms * 6 ipng11.Eng.apex.COM (120.68.10.75) 8.053 ms 6.394 ms * |
ここでは、IP 内 IP トンネルを手動で設定する方法について説明します。自動 6to4 トンネルを設定する方法については、6to4 ルーターの設定方法を参照してください。
IPv6 は、以下に示すトンネルのカプセル化をサポートします。
IPv4 トンネル経由の IPv4
IPv4 トンネル経由の IPv6 (ネイティブ IPv6 と 6to4)
IPv6 トンネル経由の IPv6
IPv6 トンネル経由の IPv4
6to4 トンネル経由で IPv6 から IPv6 へ
6to4 サイトトンネルから 6to4 リレールーターを経由してネイティブ IPv6 サイトへ
トンネルの概念については、IPv6 の Solaris トンネルインタフェースと トンネル機構を参照してください。
作業 |
説明 |
参照先 |
---|---|---|
IPv4 トンネル経由の IPv6 の手動設定 |
hostname6.ip.tun n ファイルに必要なエントリの説明 | |
IPv4 トンネル (6to4 トンネル) 経由の IPv6 の自動設定 |
hostname6.ip.6to4tun ファイルに必要なエントリの説明 | |
IPv6 経由の IPv6 トンネルの設定 |
hostname6.ip.6.tun n ファイルに必要なエントリの説明 | |
IPv6 経由の IPv4 トンネルの設定 |
hostname.ip6.tun n ファイルに必要なエントリの説明 | |
IPv4 経由の IPv4 トンネルの設定 |
hostname.ip.tun n ファイルに必要なエントリの説明 | |
6to4 ルーターと 6to4 リレールーター間のトンネルの設定 |
6to4relay コマンドを使用して 6to4 リレールーターとの間のトンネルを有効にする方法の説明 | |
トンネルインタフェースに通知するルーターの設定 |
/etc/inet/ndpd.conf ファイルに必要なエントリの説明 |
IPv4 ネットワーク経由で IPv6 パケットを引き渡す方法としてもっとも望ましいのは、自動 6to4 トンネルを使用することです。サイトで 6to4 ルーティングを実装する手順は、6to4 ルーターの設定方法を参照してください。
トンネルを設定したあと、リブートしてください。
双方向通信を実現するには、トンネルのもう一方の端についても同じ手順を行う必要があります。
使用するシステムをルーターとして設定する場合、リブートする前にトンネルインタフェースに通知するようにルーターを設定する必要もあります。トンネルインタフェースで通知するためのルーターの設定方法 を参照してください。
次に、すべての IPv6 アドレスが自動設定されるトンネルの例を示します。
tsrc 129.146.86.138 tdst 192.168.7.19 up |
次に、グローバルソースアドレスとグローバル宛先アドレスが手動で設定されるトンネルの例を示します。サイトローカルソースアドレスとサイトローカル宛先アドレスも手動で設定されます。
tsrc 120.46.86.138 tdst 190.68.7.19 up addif fec0::1234:a00:fe12:528 fec0::5678:a00:20ff:fe12:1234 up addif 2::1234:a00:fe12:528 2::5678:a00:20ff:fe12:1234 up |
スーパーユーザーになります。
/etc/hostname6.ip6.tun n ファイルを作成します。n には 0、1、2 などの値を使用します。次に、以下の手順に従って、エントリを追加します。
トンネルソースアドレスとトンネル宛先アドレスを追加します。
tsrc IPv6-source-address tdst IPv6-destination-address IPv6-packet-source-address IPv6-packet-destination-address up |
(省略可能) ソース IPv6 アドレスと宛先 IPv6 アドレスの論理インタフェースを追加します。
addif IPv6-source-address IPv6-destination-address up |
このインタフェースに対してアドレスを自動設定したい場合は、この手順を省きます。各トンネルに対するリンクローカルアドレスを設定する必要はありません。リンクローカルアドレスは自動的に設定されます。
トンネルを設定したあと、リブートしてください。
双方向通信を実現するには、トンネルのもう一方の端についても同じ手順を行う必要があります。
使用するシステムをルーターとして設定する場合、リブートする前にトンネルインタフェースに通知するようにルーターを設定する必要もあります。トンネルインタフェースで通知するためのルーターの設定方法 を参照してください。
次に、IPv6 トンネルによる IPv6 のエントリの例を示します。
tsrc 2000::114:a00:20ff:fe72:668c tdst 2000::103:a00:20ff:fe9b:a1c3 fe80::4 fe80::61 up |
トンネルを設定したあと、リブートしてください。
双方向通信を実現するには、トンネルのもう一方の端についても同じ手順を行う必要があります。
使用するシステムをルーターとして設定する場合、リブートする前にトンネルインタフェースに通知するようにルーターを設定する必要もあります。トンネルインタフェースで通知するためのルーターの設定方法 を参照してください。
次に、IPv6 トンネル経由の IPv4 のエントリの例を示します。
tsrc 2000::114:a00:20ff:fe72:668c tdst 2000::103:a00:20ff:fe9b:a1c3 10.0.0.4 10.0.0.61 up |
トンネルを設定したあと、リブートしてください。
双方向通信を実現するには、トンネルのもう一方の端についても同じ手順を行う必要があります。
使用するシステムをルーターとして設定する場合、リブートする前にトンネルインタフェースに通知するようにルーターを設定する必要もあります。トンネルインタフェースで通知するためのルーターの設定方法 を参照してください。
次に、IPv4 トンネル経由の IPv4 のエントリの例を示します。
tsrc 120.46.86.158 tdst 120.46.86.122 10.0.0.4 10.0.0.61 up |
トンネルごとに次の操作をします。
主要なセキュリティ問題を考慮して、Solaris オペレーティングシステムのデフォルト設定では 6to4 リレールーターサポートは無効になっています。6to4 リレールーターとの間のトンネルについての考慮事項とインターネット文書『Security Considerations for 6to4』を参照してください。
6to4 リレールーターとの間のトンネルを有効にする前に、以下の作業をすませておく必要があります。
6to4 ルーターの設定方法 の説明に従い、サイトで 6to4 ルーターを構成する
6to4 リレールーターとの間のトンネリングに伴うセキュリティ問題を検討する
6to4 ルーター上でスーパーユーザーになります。
以下のどちらか一方を使用し、6to4 リレールーターとの間のトンネルを有効にします。
エニーキャスト 6to4 リレールーターとの間のトンネルを有効にします。
# /usr/sbin/6to4relay -e |
-eオプションは、 6to4 ルーターとエニーキャスト 6to4 リレールーター間にトンネルを設定します。エニーキャスト 6to4 リレールーターには、IPv4 アドレス 192.88.99.1 が割りあてられています。サイトに物理的にもっとも近いエニーキャストリレールーターが、6to4 トンネルのエンドポイントになります。このリレールーターは、6to4 サイトとネイティブ IPv6 サイト間のパケット転送を処理します。
エニーキャスト 6to4 リレールーターの詳細は、RFC 3068、『An Anycast Prefix for 6to4 Relay Routers』を参照してください。
特定の 6to4 リレールーターとの間のトンネルを有効にします。
# /usr/sbin/6to4relay -e -a relay-router-address |
-a オプションは、特定のルーターアドレスが続くことを示します。relay-router-address には、トンネルを有効にするために使用する特定の 6to4 リレールーターの IPv4 アドレスを指定してください。
6to4 リレールーターとの間のトンネルは、6to4 トンネル擬似インタフェースが削除されるまでアクティブな状態を維持します。
このトンネルは、不要になった時点で次のように入力して削除してください。
# /usr/sbin/6to4relay -d |
(省略可能) リブートを行なっても 6to4 リレールーターとの間のトンネルが持続するように設定します。
サイトによっては、6to4 ルーターがリブートするたびに 6to4 リレールーターとの間のトンネルを元に戻さざるをえない場合があるでしょう。このような状況に対応するためには、以下の作業を行う必要があります。
/usr/bin/6to4relay を使用し、6to4 リレールーターのサポートが有効になっているかどうかを確認できます。次の例は、6to4 リレールーターのサポートを無効にした場合 (これが Solaris オペレーティングシステムのデフォルト) の出力です。
# /usr/sbin/6to4relay 6to4relay: 6to4 Relay Router communication support is disabled. |
6to4 リレールーターのサポートを有効にすると、次のメッセージが表示されます。
# /usr/sbin/6to4relay 6to4relay: 6to4 Relay Router communication support is enabled. IPv4 destination address of Relay Router=192.88.99.1 |
ここでは、IPv6 ネームサービス情報を表示する手順について説明します。
作業 |
説明 |
参照先 |
---|---|---|
IPv6 ネームサービス情報の表示 |
nslookup コマンドで、IPv6 ネームサービス情報を表示する | |
DNS IPv6 PTR レコードの正確な更新の確認 |
nslookup コマンドで DNS IPv6 PTR レコードを表示する。また、set q=PTR パラメータを使用する | |
NIS+ による IPv6 情報の表示 |
ypmatch コマンドで、IPv6 情報を NIS から表示する | |
NIS+ による IPv6 情報の表示 |
nismatch コマンドを実行して NIS+ で IPv6 情報を表示する | |
ネームサービスに依存しない IPv6 情報の表示 |
getent コマンドで IPv6 情報を表示する |
nslookup コマンドで IPv6 ネームサービス情報を表示するには、次のように操作します。
コマンド行で次のコマンドを入力します。
% /usr/sbin/nslookup |
デフォルトサーバー名とアドレスが表示され、nslookup コマンドの山括弧 (>) プロンプトが表示されます。
特定のホストの情報を表示するには、山括弧プロンプトに次のコマンドを入力します。
>set q=any >host-name |
AAAA レコードだけを表示するには、山括弧プロンプトに次のコマンドを入力します。
>set q=AAAA |
exit を入力して、コマンドを終了します。
% /usr/sbin/nslookup Default Server: space1999.Eng.apex.COM Address: 120.46.168.78 > set q=any > vallejo Server: space1999.Eng.apex.COM Address: 120.46.168.78 vallejo.ipv6.eng.apex.com IPv6 address = fec0::9256:a00:fe12:528 vallejo.ipv6.eng.apex.com IPv6 address = 2::9256:a00:fe12:528 > exit |
nslookup コマンドを使用して DNS IPv6 PTR レコードを表示します。
コマンド行で次のコマンドを入力します。
% /usr/sbin/nslookup |
デフォルトサーバー名とアドレスが表示され、nslookup コマンドの山括弧プロンプトが表示されます。
PTR レコードを表示するには、山括弧プロンプトに次のコマンドを入力します。
>set q=PTR |
exit を入力して、コマンドを終了します。
% /usr/sbin/nslookup Default Server: space1999.Eng.apex.COM Address: 120.46.168.78 > set q=PTR > 8.2.5.0.2.1.e.f.f.f.0.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0.ip6.int 8.2.5.0.2.1.e.f.f.f.0.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0.ip6.int name = vallejo.ipv6.Eng.apex.COM ip6.int nameserver = space1999.Eng.apex.COM > exit |
ypmatch コマンドを実行して NIS で IPv6 情報を表示するには、次のように操作します。
コマンド行で次のコマンドを入力します。
% ypmatch host-name ipnodes.byname |
host-name に関する情報が表示されます。
% ypmatch vallejo ipnodes.byname fec0::9256:a00:20ff:fe12:528 vallejo 2::9256:a00:20ff:fe12:528 vallejo |
nismatch コマンドを実行して NIS で IPv6 情報を表示するには、次のように操作します。
コマンド行で次のコマンドを入力します。
% nismatch host-name ipnodes.org-dir |
host-name に関する情報が表示されます。
% nismatch vallejo ipnodes.org_dir vallejo vallejo fec0::9256:a00:20ff:fe12:528 vallejo vallejo 2::9256:a00:20ff:fe12:528 |
コマンド行で次のコマンドを入力します。
% getent ipnodes host-name |
host-name に関する情報が表示されます。
% getent ipnodes vallejo 2::56:a00:fe87:9aba vallejo vallejo fec0::56:a00:fe87:9aba vallejo vallejo |