downさせた実NICのIPアドレスを削除したい

最初はSolarisのunplumb的な動きをしてくれるオプションをifconfigで探したんだけれど、どうもなさそう。
調べてみるとLinuxではipコマンドで削除するのが良さそうなのでメモ。

■まずはIPアドレスを設定

普通にifconfigコマンドで設定してみる。
当然ながらIPアドレス設定に成功してステータスもUPとなっている。

$ ifconfig eth1 172.16.100.100
$ ifconfig eth1
eth1      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:172.16.100.100  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::226:2dff:fe0b:34db/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:480 (480.0 b)  TX bytes:1802 (1.7 KiB)
          Memory:cd1c0000-cd1e0000 

■NICをdownさせる

本当は、ここでIPアドレスも解放してほしい...しかし、してくれない。
もちろんステータス的にはUPが消えてdown状態となっている。
※IPエイリアス(eth0:N)は、down時に解放しているみたい。

$ ifconfig eth1 down
$ ifconfig eth1
eth1      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:172.16.100.100  Bcast:172.16.255.255  Mask:255.255.0.0
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:480 (480.0 b)  TX bytes:2298 (2.2 KiB)
          Memory:cd1c0000-cd1e0000 

■ipコマンドで削除する

これでキレイになった。

$ ip addr del 172.16.100.100/16 dev eth1
$ ifconfig eth1
eth1      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:480 (480.0 b)  TX bytes:2298 (2.2 KiB)
          Memory:cd1c0000-cd1e0000 

ifconfigコマンドでも、これくらいできればいいのにね...所詮はipコマンドのラッパーだからか...