電子計算記

個人的な検証を

IDCFクラウドの仮想マシンでMACアドレスを変えたいときに

IDCF Cloud Advent Calendar 2016 の12/14が埋まってないので個人的に責任(疲)をとって埋めておきますね。

突然ですが、サーバーのMACアドレスを変えたいときってありますよね!?

ないかもしれませんが、例えば、
IDCFの旧セルフクラウドからIDCFクラウドに移行するときにMACアドレスを変えたくない(ライセンス的に)とか・・・。

ちゃんとした話するなら、IDCFクラウドの特徴として、VRRPを使ったVirtual IP (VIP)が使えるので、VIPと合わせてMACアドレスも変えるとか。

Linuxなら簡単にできるので紹介します。

例えば、こんなNICがあったとします。

[root@test ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 02:00:4e:43:00:46 brd ff:ff:ff:ff:ff:ff
    inet 10.21.0.84/21 brd 10.21.7.255 scope global eth0
    inet6 fe80::4eff:fe43:46/64 scope link 
       valid_lft forever preferred_lft forever

この時点でeth0のMACアドレスは 02:00:4e:43:00:46 ですね。
これを aa:bb:cc:dd:ee:ff に変えます。

[root@test ~]# ip link set eth0 address aa:bb:cc:dd:ee:ff
[root@test ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
    inet 10.21.0.84/21 brd 10.21.7.255 scope global eth0
    inet6 fe80::4eff:fe43:46/64 scope link 
       valid_lft forever preferred_lft forever

この通り、eth0のMACアドレスが aa:bb:cc:dd:ee:ff に変わりました。

念の為、別のサーバーから疎通を確認しましょう。

[root@test2 ~]# ping 10.21.0.84
PING 10.21.0.84 (10.21.0.84) 56(84) bytes of data.
64 bytes from 10.21.0.84: icmp_seq=1 ttl=64 time=2.00 ms
64 bytes from 10.21.0.84: icmp_seq=2 ttl=64 time=0.249 ms
64 bytes from 10.21.0.84: icmp_seq=3 ttl=64 time=0.224 ms
〜略〜
[root@test2 ~]# arp -an
? (10.21.0.84) at aa:bb:cc:dd:ee:ff [ether] on eth0

pingが通ること、ARPテーブル上も書き換えたMACアドレスになっていることが確認できます。

以上のとおり、MACアドレス書き換えはOS上でさらりと設定できました。
ただ、クラウドの基盤側のセキュリティポリシーにも依存しそうな話なので、利用する前にしっかり事前試験はしてください。
もしクリティカルな場面で使用したいのであれば、サポートに聞いてみることをおすすめします。