Diferenças entre edições de "Rede em LXC"
m (João moveu MACVLAN em LXC para Rede em LXC) |
|||
Linha 1: | Linha 1: | ||
+ | = Rede em LXC = | ||
+ | |||
+ | == Bridging == | ||
+ | |||
+ | TODO | ||
+ | |||
+ | == MACVLAN == | ||
Há duas formas de usar MACVLAN com LXC. Uma das formas não permite (pelo menos directamente) comunicação entre a máquina ''host'' e os ''containers'', mas é mais simples de configurar. | Há duas formas de usar MACVLAN com LXC. Uma das formas não permite (pelo menos directamente) comunicação entre a máquina ''host'' e os ''containers'', mas é mais simples de configurar. | ||
− | = Método simples = | + | === Método simples === |
Este método é muito simples de deixar a funcionar mas, sem trabalho adicional, não permite que os ''containers'' comuniquem com a máquina ''host''. Basta configurar o perfil aplicável (neste exemplo o ''default'') para usar o método ''macvlan'' mas aplicado ao ''interface'' físico envolvido na ''bridge'' (por exemplo, o enp6s0). Usando o comando '''lxc profile edit default''' pode-se adaptar a configuração: | Este método é muito simples de deixar a funcionar mas, sem trabalho adicional, não permite que os ''containers'' comuniquem com a máquina ''host''. Basta configurar o perfil aplicável (neste exemplo o ''default'') para usar o método ''macvlan'' mas aplicado ao ''interface'' físico envolvido na ''bridge'' (por exemplo, o enp6s0). Usando o comando '''lxc profile edit default''' pode-se adaptar a configuração: | ||
Linha 13: | Linha 20: | ||
Neste exemplo, o eth0 refere-se ao ''interface'' virtual visto pelo ''container'' e o enp6s0 é o ''interface'' físico da máquina ''host''. | Neste exemplo, o eth0 refere-se ao ''interface'' virtual visto pelo ''container'' e o enp6s0 é o ''interface'' físico da máquina ''host''. | ||
− | = Método avançado = | + | === Método avançado === |
− | == Importante == | + | ==== Importante ==== |
O pacote NetPlan, usado por padrão pelo Ubuntu Server, ainda não suporta MACVLAN nativamente. O seguinte "remendo" poderá ajudar: | O pacote NetPlan, usado por padrão pelo Ubuntu Server, ainda não suporta MACVLAN nativamente. O seguinte "remendo" poderá ajudar: |
Revisão das 09h21min de 11 de abril de 2022
Índice
Rede em LXC
Bridging
TODO
MACVLAN
Há duas formas de usar MACVLAN com LXC. Uma das formas não permite (pelo menos directamente) comunicação entre a máquina host e os containers, mas é mais simples de configurar.
Método simples
Este método é muito simples de deixar a funcionar mas, sem trabalho adicional, não permite que os containers comuniquem com a máquina host. Basta configurar o perfil aplicável (neste exemplo o default) para usar o método macvlan mas aplicado ao interface físico envolvido na bridge (por exemplo, o enp6s0). Usando o comando lxc profile edit default pode-se adaptar a configuração:
devices: eth0: nictype: macvlan parent: enp6s0 type: nic
Neste exemplo, o eth0 refere-se ao interface virtual visto pelo container e o enp6s0 é o interface físico da máquina host.
Método avançado
Importante
O pacote NetPlan, usado por padrão pelo Ubuntu Server, ainda não suporta MACVLAN nativamente. O seguinte "remendo" poderá ajudar:
Primeiro passo, criar o script /etc/networkd-dispatcher/routable.d/10-macvlan-interfaces.sh com o seguinte conteúdo:
#! /bin/bash ip link add macvlan0 link eth0 type macvlan mode bridge
Segundo passo, criar um ficheiro de configuração para o NetPlan, com o nome /etc/netplan/macvlan.yaml (nome apenas de exemplo)
network: version: 2 renderer: networkd ethernets: macvlan0: addresses: - 192.168.1.6/32 routes: - to: 192.168.1.2/31 via: 192.168.1.6 metric: 100 - to: 192.168.1.4/31 via: 192.168.1.6 metric: 100
Nota: as rotas e gamas de endereços IP devem ser adaptados ao caso de uso.
Terceiro passo, corrigir as permissões do script:
$ chmod o+x,g+x,u+x /etc/networkd-dispatcher/routable.d/10-macvlan-interfaces.sh
Por fim, aplicar as alterações:
$ netplan apply