Solaris10のIPMPをIPv6で設定してみる | ぼぶろぐ

ぼぶろぐ

以前は、あいらぶLinux♪というタイトルでしたが、
最近はLinux以外のことも書いているので、タイトルを変更しました。
ぼぶちゃんのぶろぐでぼぶろぐです。

■Solaris10のIPMPをIPv6で設定してみる


あいらぶLinuxと言っておきながらSolarisの設定変更をしています…


もともとIPv4でIPMPが設定されているインターフェースに
IPv6アドレスを追加して、IPv6でIPMPを設定しました。


参考サイト

IPv6 stacking for Sun Solaris9/10

http://negi.ipv6labs.jp/shared/ipv6-stacking.html


・変更前のifconfig


bash-3.00# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.11.203 netmask ffffff00 broadcast 192.168.11.255
ether 0:c:29:5d:35:12
e1000g1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.11.102 netmask ffffff00 broadcast 192.168.11.255
groupname IPMP
ether 0:c:29:5d:35:1c
e1000g1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 3
inet 192.168.11.100 netmask ffffff00 broadcast 192.168.11.255
e1000g2: flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY,INACTIVE> mtu 1500 index 4
inet 192.168.11.101 netmask ffffff00 broadcast 192.168.11.255
groupname IPMP
ether 0:c:29:5d:35:26



以下のコマンドを実行して、IPMPの設定をしました。

(e1000g1がactive、e1000g2がstandby)


bash-3.00# ifconfig e1000g1 inet6 plumb
bash-3.00# ifconfig e1000g1 inet6 up
bash-3.00# ifconfig e1000g2 inet6 plumb
bash-3.00# ifconfig e1000g2 inet6 up

bash-3.00# ifconfig e1000g1 inet6 -failover group IPMP addif 2001:cf8:xxxx:xxxx::35/64 up
Created new logical interface e1000g1:1
bash-3.00# ifconfig e1000g2 inet6 -failover group IPMP standby up


上記コマンド実行時に192.168.11.102に連続pingを実施したところ
私の環境ではパケットロスはありませんでした。

(192.168.11.102はIPv4のIPMPの通信用IPアドレスです)



・変更後のifconfig


bash-3.00# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.11.203 netmask ffffff00 broadcast 192.168.11.255
ether 0:c:29:5d:35:12
e1000g1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.11.102 netmask ffffff00 broadcast 192.168.11.255
groupname IPMP
ether 0:c:29:5d:35:1c
e1000g1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 3
inet 192.168.11.100 netmask ffffff00 broadcast 192.168.11.255
e1000g2: flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY,INACTIVE> mtu 1500 index 4
inet 192.168.11.101 netmask ffffff00 broadcast 192.168.11.255
groupname IPMP
ether 0:c:29:5d:35:26
e1000g1: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 3
inet6 fe80::20c:29ff:fe5d:351c/10
groupname IPMP
ether 0:c:29:5d:35:1c
e1000g1:1: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 3
inet6 2001:cf8:xxxx:xxxx::35/64
e1000g2: flags=6a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER,STANDBY,INACTIVE> mtu 1500 index 4
inet6 fe80::20c:29ff:fe5d:3526/10
groupname IPMP
ether 0:c:29:5d:35:26


※以下は実行しなかったけど、実行した方がいいですね。
bash-3.00# ifconfig lo0 inet6 plumb
bash-3.00# ifconfig lo0 inet6 up


これで、2001:cf8:xxxx:xxxx::35/64宛にpingは通るようになります。



・windows7端末より


C:\Users\bobchan>ping 2001:cf8:xxxx:xxxx::35

2001:cf8:xxxx:xxxx::35 に ping を送信しています 32 バイトのデータ:
2001:cf8:xxxx:xxxx::35 からの応答: 時間 <1ms
2001:cf8:xxxx:xxxx::35 からの応答: 時間 <1ms
2001:cf8:xxxx:xxxx::35 からの応答: 時間 <1ms
2001:cf8:xxxx:xxxx::35 からの応答: 時間 <1ms

2001:cf8:xxxx:xxxx::35 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 0ms、平均 = 0ms



恒久的に設定変更するために、以下のファイルを作成しました。


bash-3.00# cat /etc/hostname6.e1000g1
-failover group IPMP up addif 2001:cf8:xxxx:xxxx::35/64 up

bash-3.00# cat /etc/hostname6.e1000g2
-failover group IPMP standby up



・再起動して再度ifconfigを確認


bash-3.00# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.11.203 netmask ffffff00 broadcast 192.168.11.255
ether 0:c:29:5d:35:12
e1000g1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.11.102 netmask ffffff00 broadcast 192.168.11.255
groupname IPMP
ether 0:c:29:5d:35:1c
e1000g1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 3
inet 192.168.11.100 netmask ffffff00 broadcast 192.168.11.255
e1000g2: flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY,INACTIVE> mtu 1500 index 4
inet 192.168.11.101 netmask ffffff00 broadcast 192.168.11.255
groupname IPMP
ether 0:c:29:5d:35:26
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
inet6 ::1/128
e1000g1: flags=a004841<UP,RUNNING,MULTICAST,DHCP,IPv6,NOFAILOVER> mtu 1500 index 3
inet6 fe80::20c:29ff:fe5d:351c/10
groupname IPMP
ether 0:c:29:5d:35:1c
e1000g1:1: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 3
inet6 2001:cf8:xxxx:xxxx::35/64
e1000g2: flags=6a004841<UP,RUNNING,MULTICAST,DHCP,IPv6,NOFAILOVER,STANDBY,INACTIVE> mtu 1500 index 4
inet6 fe80::20c:29ff:fe5d:3526/10
groupname IPMP
ether 0:c:29:5d:35:26


※再起動したらlo0のIPv6が出力されました。


これでIPMPの設定は完了です。



たったこれだけの確認をするために結構てこずりました。
以下、つまったところを簡単に書き出しておきます。


VMware ESXiにSolaris10をインストールして行っていたのですが、
仮想インターフェースを増やすことができることを知らずに
論理インターフェースでIPMPを設定しようとしていました…


また、IPv6のIPMPは検査IPはリンクローカルアドレスを使うようで
色々とグローバルユニキャストアドレスをアサインできないか
試していました…