Ubuntu 16.04 LXD. Nätverksinställningar med en enkel brygga

Web & Teknik

Ubuntu 16.04 LXD. Nätverksinställningar med en enkel brygga

Den här konfigurationen kan användas när man behöver använda samma ”Subnet” som andra datorer. Det fungerar tex bra på det lolala nätverket eller om man vill använda en DCHP server för första tilldelningen.

I det här exemplet använder vi följande iställningar:

Servern har installerats med följande inställningar:
Local Network: 192.168.70.0
Broadcast: 255.255.255.0
Gateway: 192.168.70.254

Host and Container Addresses:
– LXD Host (Server): 192.168.70.100
– Container #1: 192.168.70.101
– Container #2: 192.168.70.102
– Container #3: 192.168.70.103
– Container #4: 192.168.70.104

På 16.04 är LXD default så vi börjar med att installera ”bridge-utils” :
$ sudo apt-get install bridge-utils
sen kör vi
$ pentarex@ubuntu:~$ sudo lxd init
Då kommer en meny upp, gör följande val:

Name of the storage backend to use (dir or zfs): zfs
Would you like LXD to be available over the network (yes/no)? yes
Address to bind LXD to (not including port): 192.168.70.100 (Alltså IP-adressen på maskinen)
Port to bind LXD to (8443 recommended): 8443
Trust password for new clients: vetintevaddetar
Do you want to configure the LXD bridge (yes/no)? yes
Would you like to setup a network bridge for LXD containers now? no
Do you want to use an existing bridge? yes
Bridge interface name: br0

Nu är det dags att fixa med nätet.
sudo nano /etc/sysctl.conf
ta bort # från raden med net.ipv4.ip_forward=1

sudo sysctl -p

sudo vi /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*

## The loopback network interface
auto lo
iface lo inet loopback

## The primary network interface
auto br0
iface br0 inet static
address 192.168.70.100
netmask 255.255.255.0
network 192.168.70.0
broadcast 192.168.70.255
gateway 192.168.70.254
dns-nameservers 8.8.8.8

## bridge options
bridge_ports enp2s0
# auto enp2s0
#iface enp2s0 inet dhcp
iface enp2s0 inet manual

sen startar vi om nätet
sudo service networking reload

då borde lxd containrarna se ut på följade sätt

$ lxc profile show default
name: default
config: {}
description: Default LXD profile
devices:
eth0:
name: eth0
nictype: bridged
parent: br0
type: nic

Så vi skapar äntligenen container

$ sudo lxc launch ubuntu:xenial first

$ sudo lxc list

pentarex@ubuntu:~$ sudo lxc exec first bash

apt-get update && apt-get -y dist-upgrade

vi /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# Source interfaces
# Please check /etc/network/interfaces.d before changing this file
# as interfaces may have been defined in /etc/network/interfaces.d
# See LP: #1262951
# source /etc/network/interfaces.d/*.cfg

# Assign static ip to container
auto eth0
iface eth0 inet static
address 192.168.70.101
network 192.168.70.0
broadcast 192.168.70.255
gateway 192.168.70.254
dns-nameservers 8.8.8.8

OBS! Glöm inte att kommentera bort eventuella automatiska inställningar i /etc/network/interfaces.d/50.*

gå ur containern med ”exit”

Starta om containern:
sudo lxc restart first

Om man vill kunna ssha med lösenord direkt in till containern så behöver man ändra i containerns /etc/ssh/sshd_config

PasswordAuthentication no
till PasswordAuthentication yes eller kommentera # bort raden

Men jag föreslår att man instället lägger in nycklarna i authorized_keys. Se denna post för detta.

 

Uppdaterad information om ipv6 i container med router som har radv:
När servern finns på ett nätverk med en router som sköter ipv6 tilldelningen automatiskt så kan det bli problem med statiska ipv6 adresser på containrar (de tappar adresserna eller att ipv6 slutar att fungera). Lösningen är att lägga till följande rader i /etc/sysctl.conf:
net.ipv6.conf.eth0.autoconf=0
net.ipv6.conf.eth0.accept_ra=0

Använd kommandot ”sudo sysctl -p” och starta om containern.