Para configurar a rede no RHEL 7, criei um arquivo JSON para formação de equipes e executei estes comandos:
ip link set down eno1
ip link set down eno2
ip link set down eno3
ip link set down eno4
teamd -g -f lacp.conf -d
Também criei arquivos ifcfg para VLANs e executei este comando:
systemctl restart network
Depois disso, tudo funciona mais ou menos como esperado, mas o problema é que isso não persiste entre as reinicializações, então tenho que fazer isso sempre após a inicialização.
Como posso resolver este problema? Espero que esses comandos sejam executados apenas uma vez e quero que essas configurações persistam entre as reinicializações.
================================================= ========
Tentei aplicar a correção sugerida e estas perguntas apareceram:
Eu criei
ifcfg-team0
o arquivo e o conteúdo é:DEVICE=team0 DEVICETYPE=Team ONBOOT=yes BOOTPROTO=none TEAM_CONFIG='{"device":"team0", "runner": { "name": "lacp"...
Devo remover a seção "dispositivo", então mude para TEAMCONFIG='{"runner": { "name": "lacp"...
porque já a tenho DEVICE=team0
? Ou não há problema em mencionar isso duas vezes?
Meu
ifcfg-eno1
arquivo contém:HWADDR=... TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes IPV4_FAILURE_FATAL=no IPV6_INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno1 UUID=e656... ONBOOT=no
Devo realmente remover quase tudo dele? Em particular, eu realmente deveria remover UUID
seções NAME
e substituir este arquivo pelo que a documentação sugere? :
DEVICE=eth1
HWADDR=D4:85:64:01:46:9E
DEVICETYPE=TeamPort
ONBOOT=yes
TEAM_MASTER=team0
TEAM_PORT_CONFIG='{"prio": 100}'
Ou devo manter os dois arquivos? Basta nomeá-los, por exemplo ifcfg-eno1
, eifcfg-eno1Team
Ao executar isto:
systemctl start network.service
recebo o seguinte erro:Failed to start LSB: Bring up/down networking. Unit network.service entered failed state.
Responder1
Primeiro, crie um novo arquivo no /etc/sysconfig/network-scripts
diretório chamado ifcfg-team0
parecido com este:
DEVICE=team0
DEVICETYPE=Team
ONBOOT=yes
BOOTPROTO=none
IPADDR=1.2.3.4
NETMASK=255.255.255.0
TEAM_CONFIG='{"runner": {"name": "lacp"}, "link_watch": {"name": "ethtool"}}'
Obviamente você precisa alterar o endereço IP e a máscara de rede adequadamente.
Em seguida, no mesmo diretório, altere todos os ifcfg-eno[1-4]
arquivos para ficar assim:
DEVICE=eno1
HWADDR=00:11:22:33:44:55
DEVICETYPE=TeamPort
ONBOOT=yes
TEAM_MASTER=team0
TEAM_PORT_CONFIG='{"prio": 100}'
Como acima, seus arquivos locais serão um pouco diferentes, pois você precisará preservar a HWADDR
configuração existente.
Isso édireto do manual.
O ifcfg-team0
arquivo refere-se ao lacp.conf
arquivo que você já criou. No entanto, não vejo no manual como ele encontra esse arquivo. Talvez teamd
você se lembre da configuração manual anterior ou talvez precise colocá-lo em um diretório comum.
De qualquer forma, uma vez configurado, você diz ifup team0
, e o grupo NIC em equipe aparecerá todo junto. As interfaces individuais precisam estar inativas no início, mas você não precisará fazer nada especial para garantir isso na inicialização, já que agora elas estão marcadas como parte de uma equipe NIC. A configuração de inicialização do sistema operacional perceberá que não deve ativar essas quatro interfaces individualmente, mas apenas como parte da equipe NIC.
Todas as opções acima pressupõem que você desativouGerente da redee voltei à boa e velha maneira de configurar redes em Linux do tipo Red Hat:
$ sudo systemctl stop NetworkManager.service
$ sudo systemctl disable NetworkManager.service
$ sudo systemctl start network.service
$ sudo systemctl enable network.service
Geralmente, isso é uma boa ideia em servidores, principalmente quando a configuração da rede começa a ficar complicada, como acontece com o LACP. O NetworkManager resolve muitos problemas, mas geralmente o faz com uma abordagem focada em desktops que é inadequada para servidores. Por exemplo, ele resolve as transições automáticas de WiFi para Ethernet comuns em laptops. Os servidores normalmente têm configurações de rede estáticas, então o NetworkManager pode acabar atrapalhando.
Ainda assim, se você quiser seguir os padrões da Red Hat, eles cobrem essa alternativaalgumas seções anteriores no manual.