Diferenças entre edições de "Rede em LXC"
Linha 1: | Linha 1: | ||
− | = Importante = | + | 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: | O pacote NetPlan, usado por padrão pelo Ubuntu Server, ainda não suporta MACVLAN nativamente. O seguinte "remendo" poderá ajudar: | ||
Linha 25: | Linha 41: | ||
metric: 100 | metric: 100 | ||
− | '''Nota:''' | + | '''Nota:''' as rotas e gamas de endereços IP devem ser adaptados ao caso de uso. |
− | Terceiro passo, corrigir as permissões do script: | + | Terceiro passo, corrigir as permissões do ''script'': |
$ chmod o+x,g+x,u+x /etc/networkd-dispatcher/routable.d/10-macvlan-interfaces.sh | $ chmod o+x,g+x,u+x /etc/networkd-dispatcher/routable.d/10-macvlan-interfaces.sh |
Revisão das 10h05min de 15 de março de 2021
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