■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はリンクローカルアドレスを使うようで
色々とグローバルユニキャストアドレスをアサインできないか
試していました…