LXC соединяется с двумя сетевыми картами

Я настраиваю сервер для размещения нескольких контейнеров LXC, а пока просто изолирую сервисы web и db. Сервер, который я использую, имеет две сетевые карты, и я хотел бы использовать одну для трафика хоста и одну для трафика контейнера (так как оба контейнера имеют маршрутизируемые IP-адреса), чтобы я мог маршрутизировать трафик через два разных vlans на моем коммутаторе.

Прежде чем погрузиться в выполнение всего этого, я пытаюсь понять, верен ли мой образ мыслей о том, как это сделать. Насколько я понимаю, я бы создал мостовое устройство в своих хост-интерфейсах, скажем, br0, которое включает в себя bridge_ports eth1. Насколько я знаю, этот мост не должен требовать какого-либо IP (но я не совсем уверен ...)

В контейнерах я бы изменил сетевые интерфейсы на мосты macvlan, связанные с br0 с помощью статические IP-адреса.

Это даже отдаленно верно? Я до сих пор не работал с маршрутизацией в контейнерных сетях ... (также здесь есть отличная иллюстрация того, что я думаю, я делаю)

         +----------------+                      
         |                |                      
         | managed switch |                      
         |                |                      
         +-+----------+---+                      
           |          |                          
     +-----+          +-------+                  
     |                        |                  
 +---+----+                +--+-----+            
 |        |                |        |            
 | vlan 1 |                | vlan 2 |            
 |        |                |        |            
 +--+-----+                +--+-----+            
    |                         |                  
    | eth0                    +-------------+    
    |          eth1           |             |    
    |     +-------------------+             |    
    |     |                                 |    
+---+-----++            +---------------+   |    
|          |   lxc      |               |   |    
| lxc host +------+-----+ web container +---+ br0
|          |      |     |               |   |    
+----------+      |     +---------------+   |    
                  |                         |    
                  |     +--------------+    |    
                  |     |              |    |    
                  +-----+ db container +----+    
                        |              |         
                        +--------------+         
5
задан 28 June 2014 в 13:29

1 ответ

Можно использовать мост или macvlan, но Вам не нужны оба. Так как Вы, кажется, знаете о macvlans, я обрисую в общих чертах подход macvlan.

просто необходимо создать карты виртуальной сети (VLAN) в веб-контейнере и связать их с NIC, выделенным хостингу контейнерного трафика.

карты виртуальной сети затем выставляются то же как контейнерный NICs и получают DHCP, или можно использовать Статического дюйм/с

Ниже, базовые инструкции, но подробные шаги и фон, прибывший из этой статьи .

Bonsai Framework, Создают Постоянный macvlan на Хосте

, Добавляют к нижней части /etc/network/interfaces, файл хоста,

# Creates a macvlan interface called macvlan0 without an IP address  
iface mvlan0 inet manual  
   pre-up ip link add mvlan0 link eth0 address 8a:38:2a:cc:d7:aa type macvlan mode bridge  
   post-down ip link del macvlan0  
auto mvlan0  

Перезагружают систему, чтобы иметь изменение, вступают в силу. Вы будете уведомление a mvlan0 теперь при просмотре сетевых устройств с ifconfig -a.

Контейнер Подключения к macvlan на Хосте путем изменения файла конфигурации, расположенного в /var/lib/lxc/[container]/config.

записи для добавления для новой сетевой платы,

# macvlan for external IP  
lxc.network.type = macvlan   
lxc.network.macvlan.mode = bridge  
lxc.network.flags = up  
lxc.network.link = mvlan0  
lxc.network.hwaddr = 00:16:3e:8d:4f:51  
lxc.network.name = eth0  

Для hwaddr, генерируют уникальный локально администрируемый одноадресный MAC-адрес через бесплатный вебсайт как helion.org .

Наконец, скорректируйте файл интерфейсов в контейнере для привязки через помехи или если Вы предпочитаете динамичное использование.

В моем случае, я корректирую свой домашний маршрутизатор так, чтобы 192.168.0.1 к 192.168.0.20 не были динамично присвоены и использовали статичный в моем LXC.

, Таким образом, я изменяю свой файл интерфейсов контейнеров следующим образом,

auto eth0  
iface eth0 inet static  
address 192.168.0.12  
gateway 192.168.0.1  
netmask 255.255.255.0  

auto eth1  
iface eth1 inet dhcp  

Перезапуск Ваш контейнер Linux.

1
ответ дан 28 June 2014 в 13:29

Другие вопросы по тегам:

Похожие вопросы: