proxmox/openvzでCentOS7のコンテナを作ったけど通信ができない

2025/05/28追記: proxmoxでのopenvz対応は 2016年4月リリースの proxmox 3.4までで現在は使うことができません。(proxmox wiki: openvz)


Debianベースの仮想化環境Proxmox VEは、KVM/qemuベースのハードウェア仮想と、OpenVZのコンテナ仮想の2種類が使用できる。

このうち、OpenVZのコンテナの方で、CentOS7を作ったところ、通信が行えないという現象が発生した。

元となるCentOS7のOpenVZテンプレートは、「OpenVZ公式 Download/template/precreated」から入手した。

で、普通に導入して起動してみると、IPアドレスが割り当てられていない。

root@proxmox:~# vzctl start 777<br />
Starting container ...<br />
Container is mounted<br />
Adding IP address(es): 192.168.35.20<br />
vSetting CPU units: 1000<br />
Setting CPUs: 2<br />
zContainer start in progress...<br />
root@proxmox:~# vzctl enter 777<br />
entered into CT 777<br />
[root@centos7 /]# ip addr show<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN<br />
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
    inet 127.0.0.1/8 scope host lo<br />
    inet6 ::1/128 scope host<br />
       valid_lft forever preferred_lft forever<br />
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN<br />
    link/void<br />
    inet 127.0.0.1/32 scope host venet0<br />
[root@centos7 /]#

検索してみると、すぐに情報が出てきた。
NO IP ADDRESS IN PROXMOX OPENVZ CENTOS 7 CONTAINER

RHEL/CentOS 7.1におけるバグで、「Bug 1207975 – ifup-aliases does not proper catch arping failure」にて修正されているとのこと。

起動時にネットワークを有効化している /etc/sysconfig/network-scripts/ifup-aliases 内の

if ! /sbin/arping -q -c 2 -w ${ARPING_WAIT:-3} -D -I ${parent_device} ${IPADDR} ; then

という条件式の書き方に問題があるようで

/sbin/arping -q -c 2 -w ${ARPING_WAIT:-3} -D -I ${parent_device} ${IPADDR}<br />
if [ $? = 1 ] ; then

と2行に分けることで回避できるとのこと。

なので、起動しているコンテナ内の/etc/sysconfig/network-scripts/ifup-aliasesを書き換えることで対処できました。

[root@centos7 ~]# ip addr show<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN<br />
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
    inet 127.0.0.1/8 scope host lo<br />
    inet6 ::1/128 scope host<br />
       valid_lft forever preferred_lft forever<br />
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN<br />
    link/void<br />
    inet 127.0.0.1/32 scope host venet0<br />
    inet 192.168.35.20/32 brd 192.168.35.20 scope global venet0:0<br />
[root@centos7 ~]#

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

モバイルバージョンを終了