仮想化ソフトウェア - KVM - トラブルシュート - NIC の番号が増えていく

クラウディア 
1. NIC の番号が増えていく
2. 対応

1. NIC の番号が増えていく

 仮想マシンマネージャのメニューをさわって、「NIC」を削除したり追加したりしていたら
「KVM」-「仮想マシン」「仮想ネットワークインターフェース」

 認識している NIC の番号がどんどん増えていくのです。

 最初 eth0 であったものが、eth1eth2 ... と。
 削除して、追加してなので、実装の総数は増えていないので ifconfig で見ると


> ifconfig
eth2      Link encap:Ethernet  HWaddr 52:54:00:62:58:18
          inet addr:192.168.0.54  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fe62:5818/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1613 errors:0 dropped:0 overruns:0 frame:0
          TX packets:504 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:140967 (137.6 KiB)  TX bytes:83157 (81.2 KiB)
          Interrupt:11 Base address:0xe000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:264 errors:0 dropped:0 overruns:0 frame:0
          TX packets:264 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:18752 (18.3 KiB)  TX bytes:18752 (18.3 KiB)
 と、実装数としては1枚なのです。  調べてみて下記の記事で分かりました。ESXiKVM の違いはあるものの、現象としては同じですね。
ESXi で CentOS をコピーすると eth0 が eth1 になってしまう

2. 対応

 仮想デバイスの NICMAC アドレスが増やすたびに変わっていき、変わったものは自動で追加されるのですが、減ったものは自動で消してくれないようです。  手動で後ろの番号を前に持っていきます。  /etc/udev/rules.d/70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:0x8139 (8139cp)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:75:e5:9e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:0x8139 (8139cp)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:61:31:e3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8139 (8139cp)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:62:58:18", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
   

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:0x8139 (8139cp)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:62:58:18", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:0x8139 (8139cp)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:61:31:e3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
 と書き換えて、再起動したら、思い通りになりました。