Como fazer com que a equipe da NIC seja inicializada no RHEL 7

2

Para configurar a rede no RHEL 7, criei um arquivo JSON para agrupamento e, em seguida, 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 é persistente entre as reinicializações, então eu tenho que fazer isso toda vez que você fizer o start-up.

Como posso resolver este problema? Espero que esses comandos sejam executados apenas uma vez e, em seguida, quero que essas configurações persistam entre as reinicializações.

=============================================== ===========

Eu tentei aplicar a correção sugerida e essas perguntas apareceram:

  1. Eu criei o arquivo ifcfg-team0 e o conteúdo é:

    DEVICE=team0
    DEVICETYPE=Team
    ONBOOT=yes
    BOOTPROTO=none
    TEAM_CONFIG='{"device":"team0", "runner": { "name": "lacp"...
    

Se eu remover a seção "dispositivo", mude para TEAMCONFIG='{"runner": { "name": "lacp"... porque já tenho DEVICE=team0 ? Ou não há problema em mencioná-lo duas vezes?

  1. Meu arquivo ifcfg-eno1 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
    

Eu realmente devo remover quase tudo dela? Em particular, devo remover UUID , NAME sections e substituir esse arquivo pelo que as documentações sugerem? :

    DEVICE=eth1
    HWADDR=D4:85:64:01:46:9E
    DEVICETYPE=TeamPort
    ONBOOT=yes
    TEAM_MASTER=team0
    TEAM_PORT_CONFIG='{"prio": 100}'

Ou eu deveria manter os dois arquivos? Basta nomeá-los, por exemplo, ifcfg-eno1 e ifcfg-eno1Team

  1. Ao executar isso: systemctl start network.service recebo esse erro:

    Failed to start LSB: Bring up/down networking.  Unit network.service entered failed state.
    
por javapowered 13.10.2014 / 22:03

1 resposta

3

Primeiro, crie um novo arquivo no diretório /etc/sysconfig/network-scripts chamado ifcfg-team0 que se parece com isso:

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 arquivos ifcfg-eno[1-4] 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, porque você precisará preservar a configuração HWADDR existente.

Isso é direto de o manual .

O arquivo ifcfg-team0 refere-se ao arquivo lacp.conf que você já criou. Eu não vejo no manual como ele encontra esse arquivo, no entanto. Talvez teamd se lembre de sua configuração manual anterior, ou talvez você tenha que colocá-la em um diretório comum.

De qualquer forma, assim que isso estiver configurado, você diz ifup team0 e o grupo de NICs agrupados será criado. 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 da NIC. A configuração de inicialização do sistema operacional irá perceber que ele não deve elevar essas quatro interfaces individualmente, mas apenas como parte da equipe da NIC.

Todas as opções acima assumem que você desativou o NetworkManager e voltou para o bom e velho modo de configurando a rede no tipo Red Hat Linuxes:

$ sudo systemctl stop NetworkManager.service
$ sudo systemctl disable NetworkManager.service
$ sudo systemctl start network.service
$ sudo systemctl enable network.service

Isso geralmente é uma boa ideia em servidores, especialmente quando a configuração de rede começa a ficar complicada, como acontece com o LACP. O NetworkManager resolve muitos problemas, mas geralmente faz isso com uma inclinação voltada para a área de trabalho 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ática, portanto, o NetworkManager pode acabar ficando no caminho.

Ainda assim, se você está querendo ficar com os padrões da Red Hat, eles cobrem essa alternativa algumas seções anteriores no manual .

    
por 13.10.2014 / 23:56