上一篇中介绍了编译安装lxc,这里将介绍bridge、dnsmasq、iptables的配置方法。
创建桥接
# brctl addbr lxcbr0
设置ip段
# ifconfig lxcbr0 10.0.3.1 netmask 255.255.255.0 up
添加一条iptables nat规则,作用是转发容器的ip请求
# iptables -t nat -A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
打开ip转发
echo 1 > /proc/sys/net/ipv4/ip_forward
安装dnsmasq
# aptitude install dnsmasq
打开dnsmasq
# mkdir /var/run/lxc
# dnsmasq --strict-order --bind-interfaces --pid-file=/var/run/lxc/dnsmasq.pid --listen-address 10.0.3.1 --dhcp-range 10.0.3.2,10.0.3.254 --dhcp-lease-max=253 --dhcp-no-override --except-interface=lo --interface=lxcbr0 --dhcp-leasefile=/var/lib/misc/dnsmasq.lxcbr0.leases
--dhcp-authoritative
如提示 dnsmasq: failed to bind listening socket for 10.0.3.1: Address already in use 就kill掉dnsmasq的进程,再次执行。
修改默认配置文件
# nano /usr/local/etc/lxc/default.conf
将内容替换
lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
重新创建容器 进入容器后 ifconfig会看到eth0 10.0.3.* 不止是分配了ip,还可已访问外网,还可以在容器内访问宿主机。现在ubuntu的lxc功能已经在debian中都有了。