Diferenças entre edições de "Rede em LXC"
Linha 10: | Linha 10: | ||
=== 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 | + | 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 ''container'' ou, se aplicável, o perfil em uso (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: | devices: |
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 container ou, se aplicável, o perfil em uso (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