2013年9月22日日曜日

Ubuntu と lxc で DHCP がうまくいかないときは ufw を確認する Bookmark and Share

Ubuntu 12.04 で lxc してみようと思ったら、DHCP で ip アドレスがうまく取れてませんでした。
原因は ufw だったんでまとめておきます。

container を作成
sudo lxc-create -t ubuntu -n lxc1
container を 起動
sudo lxc-start -n lxc1
console で確認してみる(id/pwdはubuntu/ubuntu, detachはC-a,q)
ubuntu@lxc1:~$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:16:3e:8e:02:43
          inet6 addr: fe80::216:3eff:fe8e:243/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10 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:732 (732.0 B)  TX bytes:5234 (5.2 KB)
ipv4取れてない ><

原因は ufw が効いてて、bridge の通信ができてませんでした
$ sudo vi /etc/ufw/before.rules
# allow all on lxcbr0
-A ufw-before-input -i lxcbr0 -j ACCEPT
-A ufw-before-output -o lxcbr0 -j ACCEPT
これを loopback の後ろ辺りに追加して
$ sudo service ufw restart

container がまだ起動している場合は一旦落として
$ sudo lxc-shutdown -n lxc1
再起動
sudo lxc-start -n lxc1
確認
ubuntu@lxc1:~$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:16:3e:8e:02:43
          inet addr:10.0.3.155  Bcast:10.0.3.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe8e:243/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
ok!

この辺をvagrant でやるなら
$ vagrant plugin install vagrant-lxc
$ vagrant plugin install vagrant-omnibus

Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "precise64"
  config.vm.provider :lxc do |lxc|
    # Same effect as as 'customize ["modifyvm", :id, "--memory", "512"]' for VirtualBox
    lxc.customize 'cgroup.memory.limit_in_bytes', '512M'

    # Avoiding 'sudo' passwords
    lxc.sudo_wrapper = '/usr/bin/lxc-vagrant-wrapper'
  end
end
起動のときだけ provider が必要
$ vagrant up --provider=lxc

0 件のコメント: