Webseiten-Werkzeuge


LXC (out of date - 2013)

apt-get install debootstrap lxc bridge-utils

general iptables

apt-get install iptables-persistent
iptables -P FORWARD DROP

iptables-save > /etc/iptables/rules

/etc/iptables/rules:

  • filter

:INPUT ACCEPT [616:43499]

:FORWARD DROP [0:0]
:OUTPUT ACCEPT [445:65622]
COMMIT
# Completed on Sun Jun 17 14:25:45 2012

cgroup mount

cgroup /sys/fs/cgroup cgroup defaults 0 0

Bridge auf Host

Die Container werden mithilfe eines virtuellen Switches verbunden.

Die Container sollen NAT-Networking ins Internet bekommen (post-up / pre-down).

Einzelne Ports der Container sollen am `eth0` des Hosts erreichbar sein.

auto br0
iface br0 inet static
		pre-up brctl addbr br0
		post-down brctl delbr br0
		bridge_stp no  
		bridge_fd 0
		bridge_maxwait 0
		address 192.168.0.1
		broadcast 192.168.0.255
		netmask 255.255.255.0
          # IPtables
        post-up iptables -A FORWARD -i br0 -p tcp -s 192.168.0.0/24 -j ACCEPT 
        post-up iptables -A FORWARD -o br0 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT 
        post-up iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -o eth0 -j MASQUERADE
	    post-up iptables -t nat -A PREROUTING -i eth0 -p tcp \
			-m multiport  --dports 5222,5269 -j DNAT --to 192.168.0.100
		
        pre-down iptables -D FORWARD -i br0 -p tcp -s 192.168.0.0/24 -j ACCEPT 
        pre-down iptables -D FORWARD -o br0 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT 
        pre-down iptables -t nat -D POSTROUTING -p tcp -s 192.168.0.0/24 -o eth0 -j MASQUERADE
	    pre-down iptables -t nat -D PREROUTING -i eth0 -p tcp \
			-m multiport  --dports 5222,5269 -j DNAT --to 192.168.0.100						

IP-Forward einschalten

Container Template

Das im `lxc` Paket enthaltene Debian-Template `debian` ist nur für lenny. Der Patch erstellt darauf aufbauend das Template `debian-wheezy`.

	--- /usr/lib/lxc/templates/lxc-debian   2010-08-04 19:27:58.000000000 +0200
	+++ /usr/lib/lxc/templates/lxc-debian-wheezy    2012-06-15 08:21:58.000000000 +0200
	@@ -90,7 +90,8 @@
	 locales,\
	 libui-dialog-perl,\
	 dialog,\
	-dhcp-client,\
	+isc-dhcp-client,\
	+vim,\
	 netbase,\
	 net-tools,\
	 iproute,\
	@@ -110,7 +111,7 @@
		 echo "Downloading debian minimal ..."
		 debootstrap --verbose --variant=minbase --arch=$arch \
			--include $packages \
	-       lenny $cache/partial-$arch http://ftp.debian.org/debian
	+       wheezy $cache/partial-$arch http://ftp.debian.org/debian
		 if [ $? -ne 0 ]; then
			echo "Failed to download the rootfs, aborting."
			return 1

Container Anlegen und Konfiguration

Ein neuer Container wird mit `lxc-create -f <CONFIG> -n <NAME> -t debian-wheezy` erstellt.

Die `<CONFIG>` Datei enthält Voreinstellungen. Anzupassen je VM ist hier das `veth.pair` (Name des virtuellen Interface im Host) und `hwaddr`.

lxc.network.type = veth
lxc.network.veth.pair = veth_test
lxc.network.hwaddr = 00:FF:AA:00:00:01
lxc.network.link = br0
  lxc.network.flags = up

Der Container liegt dann unter /var/lib/lxc.

Der Login ist root/root.

Netzwerkkonfiguration Container

  ...
  auto eth0
iface eth0 inet static
		address 192.168.0.100 #anpassen
		netmask 255.255.255.0
		gateway 192.168.0.1

Security Sources

  deb     http://security.debian.org/ squeeze/updates  main contrib non-free

ttys anlegen für lxc-console

dafür muss /etc/inittab stimmen und /dev/tty… müssen entsprechend da sein.

tty1 2 3 4 müssen ggf. angelegt werden (cp -a /dev…).

locale einrichten

  dpkg-reconfigure locales

apt einrichten

/etc/apt/apt.conf

APT::Install-Recommends "0";
APT::Install-Suggests "0";

Handling

`lxc-start -n <NAME>` (-d → daemon)

`lxc-console -n <NAME>` Attach to tty

artikel/lxc.txt · Zuletzt geändert: 2014/11/03 20:55 von yvesf