LINUX.ORG.RU
решено ФорумAdmin

Не понимаю, как сделать bridge для LXC в ArchLinux

 , ,


0

0

Суть вопроса, есть VPS с арчем, в нем сеть настроена по этой статье - https://wiki.archlinux.org/index.php/User:PMay/Hetzner_step_by_step , так же установлен LXC и создан тестовый контейнер. Залогинился в контейнер, но интернета в контейнере нет, как создать bridge, чтобы внутри контейнера появился интернет? Ибо не пакетов не поставить, ничего не сделать.

Собственно дальше планируется поставить туда nginx и сразу вопрос, а можно ли будет по сети достучаться до nginx-а или придется еще что-то с сетью делать?

P.S. У меня с пониманием сетей совсем все плохо. Все эти bridge, gateway, mask и прочее для меня темный лес. Поэтому просьба накидать какой-нибудь инфы для тупых по сетям. Спасибо.


Можно поменять в конфиге контейнера(~/.local/share/lxc/$container_name/config) примерно это:

lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:29:f9:03
или как у тебя в /etc/lxc/default.conf, на
lxc.network.type = phys
lxc.network.link = macvtap2
lxc.network.name = eth0
Таким образом оно у тебя подцепится к имеющемуся интерфейсу без бриджа.
Тебе потребуется рельный адрес, плюс - хост не будет доступен по сети с контейнера и наоборот.

см. Raw network access

Yustas ★★★★
()
Последнее исправление: Yustas (всего исправлений: 1)
Ответ на: комментарий от Yustas
lxc.network.type = phys
lxc.network.link = macvtap2

Виртуальный интерфейс отдать как физический - это не самый лучший вариант. Работа с phys линками в lxc очень специфична. В разных версиях - разные глюки. Нет, если очень хочется, то можно, но нужно убедиться, что рестарт контейнера работает без глюков.

Тоже самое и с vlan-интерфейсами.

veth - самый работоспособный вариант.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

Это я просто тестировал macvlan и сунул сюда копипасту с конфига, получилась ерунда.
Всё верно - veth, так же цепляется без бриджа и с LXC работает интереснее.
Будет, примерно, так:

lxc.network.type = veth
lxc.network.link = eth0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:29:f9:03
lxc.network.name = eth0

Yustas ★★★★
()
Последнее исправление: Yustas (всего исправлений: 1)

Собственно я так и не осилил настройку LXC на Archlinux. В целом мне требуется получить следующее: На вдс-е установлено 2 впс-ки. На одной из впс я установил Archlinux и в нем LXC. В каждом LXC-контейнере планируется разместить по сайту. Проблема в том, что контейнер не имеет доступа к интернету. Так же не получается до контейнера достучаться из хостовой системы (арч). Ниже прикрепляю конфиги, может кто подскажет, как добиться результата с наименьшим гемороем? В плане того, чтобы в контейнере был доступ к интернету.

При попытке подключиться из хостовой системы (арч) по ssh получаю connection timed out

localhost% ssh root@192.168.1.110 -Cv                                    
OpenSSH_7.2p2, OpenSSL 1.0.2h  3 May 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to 192.168.1.110 [192.168.1.110] port 22.
debug1: connect to address 192.168.1.110 port 22: Connection timed out
cat /etc/lxc/default.conf 
lxc.network.type = vnet
cat /etc/default/lxc
# LXC_AUTO - whether or not to start containers at boot
LXC_AUTO="true"

# BOOTGROUPS - What groups should start on bootup?
#       Comma separated list of groups.
#       Leading comma, trailing comma or embedded double
#       comma indicates when the NULL group should be run.
# Example (default): boot the onboot group first then the NULL group
BOOTGROUPS="onboot,"

# SHUTDOWNDELAY - Wait time for a container to shut down.
#       Container shutdown can result in lengthy system
#       shutdown times.  Even 5 seconds per container can be
#       too long.
SHUTDOWNDELAY=5

# OPTIONS can be used for anything else.
#       If you want to boot everything then
#       options can be "-a" or "-a -A".
OPTIONS=

# STOPOPTS are stop options.  The can be used for anything else to stop.
#       If you want to kill containers fast, use -k
STOPOPTS="-a -A -s"

USE_LXC_BRIDGE="true"  # overridden in lxc-net

[ ! -f /etc/default/lxc-net ] || . /etc/default/lxc-net
cat /home/webapps/container/container/config
[sudo] password for sorcus: 
# Template used to create this container: /usr/share/lxc/templates/lxc-archlinux
# Parameters passed to the template:
# For additional config options, please look at lxc.container.conf(5)
# Uncomment the following line to support nesting containers:
#lxc.include = /usr/share/lxc/config/nesting.conf
# (Be aware this has security implications)
lxc.network.type = veth
lxc.network.flags = up
lxc.network.name = ens3
lxc.network.veth.pair = veth-01
lxc.network.link = br0
lxc.network.ipv4.gateway = 192.168.1.1
lxc.network.ipv4 = 192.168.1.110/24
lxc.network.hwaddr = 00:50:56:00:79:FA
lxc.arch = x86_64
lxc.include = /usr/share/lxc/config/archlinux.common.conf
lxc.rootfs = /home/webapps/container/container/rootfs
lxc.rootfs.backend = dir
lxc.utsname = container
cat /etc/netctl/br0
Description="Example Bridge connection"
Interface=br0
Connection=bridge
BindsToInterfaces=(ens3)
IP=static
Address='5.9.***.**8/24'
Gateway='5.9.***.**3'
DNS=('5.9.49.12')
SkipForwardingDelay=yes
cat /etc/netctl/ens3 
Description='A basic static ethernet connection'
Interface=ens3
Connection=ethernet
IP=static
Address=('5.9.***.**8/24')
Gateway='5.9.***.**3'
DNS=('95.85.9.86')
Sorcus
() автор топика
Ответ на: комментарий от Pentium02

У меня на десктопе арч, lxc работает с бриджем, если я, кончено, не снёс. Буду дома, гляну.

Pentium02 ★★
()
Последнее исправление: Pentium02 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.