Я исследую возможности LXC в Ubuntu 12.04 и очень хочу настроить сеть следующим образом:
client1: 192.168.56.101/24
lxc-host: 192.168.56.102/24
guest1 192.168.56.201/24
guest2 192.168.56.202/24
guest3 192.166.56.203/24
Мне просто нужна «плоская» сеть, где гости имеют полный доступ к локальной сети и видны со стороны клиентов. Я привык соединять сети с помощью libvirt / KVM, как описано здесь: http://libvirt.org/formatdomain.html#elementsNICSBridge
На хосте:
# /etc/network/interfaces
auto br0
iface br0 inet static
address 192.168.56.102
netmask 255.255.255.0
broadcast 192.168.56.255
bridge_ports eth1
lxc.conf для первого гостя:
# /var/lib/lxc/guest1/config:
lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up
lxc.network.hwaddr=00:16:3e:13:48:4e
lxc.network.ipv4=192.168.56.201/24
Похоже, что 192.168.56.201 невидим для внешнего мира, а это не то, чего я хочу. Похоже, я должен сделать одну из следующих вещей:
1) Вручную настроить маршрутизацию на хосте и госте
2) Сделайте что-нибудь хоккейное ... заранее создайте виртуальные интерфейсы на хосте и настройте гостей для их использования lxc.network.type=phys
. Я не знаю, сработает ли это на самом деле.
Я сосредоточен на Ubuntu, но ответы на RHEL / Fedora тоже были бы полезны ...
источник
Ответы:
Это в значительной степени верно, хотя вы упускаете такую строку:
У меня гость LXC, работающий на Debian. Сначала вы устанавливаете хост-мост (простой способ) в
/etc/network/interfaces
:В твоем случае ты назвал это
br0
, и я назвал этоwan
. Мост можно назвать как угодно. Сначала вы получаете эту работу - если она не работает, исследуйте с помощью (например,)brctl
Тогда ваш конфиг LXC настроен для подключения к этому мосту:
Как отмечает HoverHell, кто-то с root в контейнере может изменить IP-адрес. Ага. Это мост (он же Ethernet-коммутатор). Если вы хотите предотвратить это, вы можете использовать правила брандмауэра на хосте - по крайней мере, в моем случае пакеты должны проходить через iptables хоста.
источник
auto
также является допустимым значениемlxc.network.ipv4.gateway
и, по моему мнению, по умолчанию - IP-адрес моста, к которому подключается veth-интерфейс.wan_phy
он подключен к Интернету, то IP-адрес моста должен быть еще одним действительным общедоступным IPv4-адресом, поскольку он должен находиться в той же подсети, что и другие общедоступные IPv4-адреса, с которыми я буду настраивать своих гостей lxc, верно? Но это кажется довольно расточительным. askubuntu.com/a/884293/394569 предполагает, что настройка адреса моста не обязательна.Я не дошел до LXC,
но я настроил несколько контейнеров с собственными статическими IP-адресами в локальной сети, которые предоставляют интернет-услуги для некоторых моих сайтов ...
Может быть, это может помочь, на то, что вы хотите для своего.
Я запускаю несколько контейнеров, вот так,
НА ХОСТ-МАШИНЕ Я отредактировал файл хоста, добавив каждый контейнер и хост-компьютер: vi / etc / hosts
после сохранения ...
Опять же, на хост-машине я установил сеть и мост для:
выше сети мой роутер ip, по лан. (внутренний) адрес и широковещание - это хост-машина, внутренний ip, который я позже использую VHOST для доступа в интернет, веб-серверов, ftp и т. д.
ДЛЯ LXC КОНТЕЙНЕРОВ 1-4 Я НАСТРОЙКИ КОНФИГ. ТАК КАК:
Теперь Контейнер 1 IP = 192.168.1.101
я повторяю для дополнительных контейнеров, чтобы иметь собственный статический IP-адрес на локальной сети ..
в контейнере 1-4,
войти с хоста:
& я установил статическую сеть для каждого контейнера, а eth0 -
У каждого из контейнеров есть собственный IP (локальный), доступный в локальной сети. U МОЖЕТ SSH КАЖДЫЙ ИНДИВИДУАЛЬНЫЙ ЛОКАЛЬНЫЙ IP, ИСПЫТАТЬ ИСПОЛЬЗОВАТЬ PUTTY!
После этого я почти уверен, что вы должны выяснить, как запускать их через Интернет после, например, vhost для контейнера ip / load balancers / proxy / etc ..
Может быть, эта установка может помочь в любом случае.
источник
iface
раздел вmanual
(неstatic
илиdhcp
).up
,down
, Иdns-nameservers
т.д. все еще может быть использован в Debian и т.д.Я еще не играл с LXC, но эта статья должна вам помочь: настройка сети с использованием мостов Ethernet (см. Метод 2).
Чтобы дать вам некоторую подсказку о конфигурации (я предполагаю, что у вас уже правильно настроен br0):
ip link add type veth
brctl addif br0 veth0
ns_exec -nm -- /bin/bash
ip link set veth1 netns PID_OF_LXC_SHELL
источник