Xenで複雑な仮想ネットワークを作ろうと考えていて、物理インターフェース数以上のネットワークを作ろうとしている。その際Domain0からはeth0などの実インターフェースではなくdummy0などの仮想インターフェースを使って接続することになる。
dummyインターフェースを使う機能はカーネルモジュールとして実装されていて、CentOS5.0ではデフォルトで利用可能になっていた。しかしifconfig dummy0 up、ifconfig dummy1 upなど複数使おうととしてもdummy0のひとつしか使えなかった。
これはdummyモジュールにnumdummies=<数>というパラメータを渡すことにより増やすことができる。
[root@ml115 ~]# modprobe dummy numdummies=3
これを恒久化したい場合は/etc/modprobe.confに下記を追記する。3にするとdummy0,dummy1,dummy2の計3つを使えるようになる。
options dummy numdummies=3
なお、こういったモジュールのパラメータ情報はmodinfoコマンドでしらべられる。
[root@ml115 ~]# modinfo dummy filename: /lib/modules/2.6.18-8.1.15.el5xen/kernel/drivers/net/dummy.ko license: GPL srcversion: CDD194430BC7DEC14488837 depends: vermagic: 2.6.18-8.1.15.el5xen SMP mod_unload gcc-4.1 parm: numdummies:Number of dummy pseudo devices (int) [root@ml115 ~]#
あとは/etc/sysconfig/network-script/に設定を記述したファイルを用意する。
[root@ml115 ~]# cat /etc/sysconfig/network-script/ifcfg-dummy0 DEVICE=dummy0 BROADCAST=192.168.2.255 IPADDR=192.168.2.254 NETMASK=255.255.255.0 NETWORK=192.168.2.0 ONBOOT=yes
ここまで設定して再起動すると、新しいdummyインターフェースが認識される。
[root@ml115 ~]# ifconfig dummy0
dummy0 Link encap:Ethernet HWaddr 00:16:3E:2B:02:fe
inet addr:192.168.2.254 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::1ca4:5ff:fe2c:ee8b/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:294 (294.0 b)
認識しているインターフェースは/sys/class/netから情報が取れる。
[root@ml115 ~]# ls /sys/class/net/dummy0 address carrier flags link_mode statistics type addr_len dormant ifindex mtu subsystem uevent broadcast features iflink operstate tx_queue_len weight