<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://blog.roxing.net/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>blog.roxing.net</title>
	<link>http://blog.roxing.net/</link>
	<description>weblog roxing.net - astuces spip, php, bash, linux &amp; more</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://blog.roxing.net/spip.php?id_mot=95&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>blog.roxing.net</title>
		<url>https://blog.roxing.net/local/cache-vignettes/L144xH37/siteon0-6ddb5.png?1727125340</url>
		<link>http://blog.roxing.net/</link>
		<height>37</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>LXC Debian Jessie </title>
		<link>https://blog.roxing.net/lxc-debian-jessie</link>
		<guid isPermaLink="true">https://blog.roxing.net/lxc-debian-jessie</guid>
		<dc:date>2015-09-05T21:54:48Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierrox</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>LXC</dc:subject>
		<dc:subject>virtualisation</dc:subject>
		<dc:subject>Debian Jessie</dc:subject>
		<dc:subject>lxc nat</dc:subject>
		<dc:subject>howto</dc:subject>

		<description>&lt;p&gt;Installer et configurer LXC sur Debian Jessie en trois coups de cuiller &#224; pot&lt;/p&gt;

-
&lt;a href="https://blog.roxing.net/administration-systeme" rel="directory"&gt;administration syst&#232;me&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/bash" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/lxc" rel="tag"&gt;LXC&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/virtualisation" rel="tag"&gt;virtualisation&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/debian-jessie" rel="tag"&gt;Debian Jessie&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/lxc-nat" rel="tag"&gt;lxc nat&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/howto" rel="tag"&gt;howto&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Installation de LXC&lt;/h2&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;apt-get install lxc lxctl&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Cr&#233;ation d'un container&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;lxc-create -n NomContainer -t debian&lt;/textarea&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; -n nom du container &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; -t template de l'OS &#224; utiliser&lt;/p&gt;
&lt;p&gt;Bien noter le mot de passe root qui s'affichera &#224; la fin de la cr&#233;ation du container lxc.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Configuration du r&#233;seau sur l'h&#244;te&lt;/h2&gt;
&lt;p&gt;Il y a plusieurs fa&#231;ons de configurer le r&#233;seau, pour ma part je pr&#233;f&#232;re cr&#233;er un (ou plusieurs) sous-r&#233;seaux pour mes containers qui seront &#034;natter&#034; par la machine h&#244;te.&lt;br class='autobr' /&gt;
Pour illustrer, on pourrait dire que les sous-r&#233;seaux sont cloisonn&#233;s &#224; l'int&#233;rieur de l'h&#244;te qui fera office de pare-feu vers l'ext&#233;rieur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Autoriser &#034;l'ip forwarding&#034;&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;nano /etc/sysctl.conf net.ipv4.ip_forward=1&lt;/textarea&gt;
&lt;p&gt;Recharger la configuration du syst&#232;me pour prendre en compte la modification.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;sysctl -p&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Configurer l'interface qui servira de bridge&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La paquet bridge-utils est n&#233;cessaire, il est normalement install&#233; en d&#233;pendance de lxc, au cas ou :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;apt-get install bridge-utils&lt;/textarea&gt;
&lt;p&gt;Param&#233;trage de /etc/network/interfaces&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='10' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# The loopback network interface auto lo iface lo inet loopback # Configuration du Bridge pour le sous r&#233;seau virtualis&#233; auto br0 iface br0 inet static address 192.168.100.254 netmask 255.255.255.0 bridge_ports none&lt;/textarea&gt;
&lt;p&gt;Red&#233;marrer le service r&#233;seau afin de prendre en compte la nouvelle interface br0&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;service networking restart&lt;/textarea&gt;
&lt;p&gt;V&#233;rifier que l'interface r&#233;seau est bien pr&#233;sente :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ifconfig&lt;/code&gt; devrait renvoyer quelque chose comme &#231;a&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='11' class='spip_cadre spip_cadre_block' dir='ltr'&gt;br0 Link encap:Ethernet HWaddr 22:ce:06:00:1d:7f inet adr:192.168.100.254 Bcast:192.168.100.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:24 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:0 (0.0 B) TX bytes:3915 (3.8 KiB)&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Activer le partage de connexion internet pour les containers LXC :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On va donner l'acc&#232;s internet aux containers LXC &#224; travers wlan0 (On verra comment automatiser &#231;a sur un h&#244;te au profil itin&#233;rant qui se connecte sur des interfaces diverses et vari&#233;es : wlan0 eth0 usb0... )&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;iptables -t nat -F POSTROUTING iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;Configuration du r&#233;seau sur les containers LXC&lt;/h2&gt;
&lt;p&gt;Attention ! il ne s'agit pas de param&#233;trer le r&#233;seau &#224; l'int&#233;rieur du container mais d'&#233;diter un fichier de configuration qui se chargera de configurer le r&#233;seau au d&#233;marrage de celui-ci.&lt;/p&gt;
&lt;p&gt;Par d&#233;faut, Debian installe les nouveaux containers dans &lt;strong&gt;/var/lib/lxc&lt;/strong&gt; ; ce dossier contient tous les containers cr&#233;&#233;s, qui eux-m&#234;me contiennent des fichiers de logs, de configs et le dossier &lt;strong&gt;rootfs&lt;/strong&gt; qui comme son nom l'indique, correspond &#224; la racine du syst&#232;me virtualis&#233; ( / ).&lt;/p&gt;
&lt;p&gt;Afin de configurer le r&#233;seau sur notre container LXC, nous allons &#233;diter son fichier de config &lt;strong&gt; /var/lib/lxc/NomContainer&lt;/strong&gt;&lt;br class='autobr' /&gt;
Extrait de la configuration r&#233;seau d'un container &lt;strong&gt;/var/lib/lxc/NomContainer/config&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre spip_cadre_block' dir='ltr'&gt;lxc.network.type = veth lxc.network.name = veth0 lxc.network.flags = up lxc.network.link = br0 lxc.network.veth.pair = veth0 lxc.network.ipv4 = 192.168.100.1/24 lxc.network.ipv4.gateway = 192.168.100.254&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;D&#233;marrage du container et test du r&#233;seau&lt;/h2&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;lxc-start -n NomContainer -d&lt;/textarea&gt;
&lt;p&gt;&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; -n nom du container &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; -d en mode daemon&lt;/p&gt;
&lt;p&gt;La commande pour contr&#244;ler si notre container LXC est bien d&#233;marr&#233; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;lxc-ls -f&lt;/textarea&gt;
&lt;p&gt;Devrait retourner&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;NAME STATE IPV4 IPV6 AUTOSTART --------------------------------------------------------- NomContainer RUNNING 192.168.100.1 - NO&lt;/textarea&gt;
&lt;p&gt;Sur l'h&#244;te un petit ping 192.168.100.1 devrait retourner :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data. 64 bytes from 192.168.100.1: icmp_seq=1 ttl=64 time=0.087 ms&lt;/textarea&gt;
&lt;p&gt;On va se connecter directement au container LXC&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;lxc-console -n NomContainer&lt;/textarea&gt;
&lt;p&gt;Se connecter au container, j'esp&#232;re que vous avez bien not&#233; le mot de passe root lors de sa cr&#233;ation sinon vous pouvez toujours &lt;a href='https://blog.roxing.net/lxc-root-password' class=&#034;spip_in&#034;&gt;consulter l'article d&#233;di&#233; au changement de mot de passe root d'un container LXC&lt;/a&gt;.&lt;br class='autobr' /&gt;
Une fois connect&#233;, on va tester l'acc&#232;s internet en utilisant apt pour installer ping afin de &#034;pinguer&#034; la machine h&#244;te :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='11' class='spip_cadre spip_cadre_block' dir='ltr'&gt;root@NomContainer:~#apt-get install inetutils-ping Les NOUVEAUX paquets suivants seront install&#233;s&#160;: inetutils-ping (...) Param&#233;trage de inetutils-ping (2:1.9.2.39.3a460-3) .. root@NomContainer:~#ping 192.168.100.254 PING 192.168.100.254 (192.168.100.254): 56 data bytes 64 bytes from 192.168.100.254: icmp_seq=0 ttl=64 time=0,163 ms 64 bytes from 192.168.100.254: icmp_seq=1 ttl=64 time=0,163 ms&lt;/textarea&gt;
&lt;p&gt;Et voil&#224;, Juste &#231;a marche !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Pour quitter un container, utilisez la combinaison de touche &lt;kbd&gt;ctrl&lt;/kbd&gt;+&lt;kbd&gt;a&lt;/kbd&gt; puis &lt;kbd&gt;q&lt;/kbd&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>



</channel>

</rss>
