Backup e restauração de interfaces de rede Centos

2

Eu tenho um servidor rodando o Centos 7 que precisa ser reinicializado para atualizar algum software.

Algumas das NICs físicas têm cerca de 5-10 interfaces de VLAN cada. Eles estão sujeitos a alterações semanais / mensais, portanto, armazenar os detalhes em /etc/sysconfig/network-scripts para persistir nas reinicializações não é prático.

Existe uma maneira simples de tirar um instantâneo da pilha de rede atual e restaurar após a reinicialização? Similar ao modo como você pode salvar / restaurar as regras do iptables?

Encontrei várias referências ao system-config-network-cmd , mas tenho receio de usar essa ferramenta caso ela sobrescreva as configurações estáticas das interfaces físicas que temos em /etc/sysconfig/network-scripts

Obrigado!

    
por popcornuk 28.03.2018 / 15:44

3 respostas

0

O Iptables é a parte mais fácil da sua pergunta.

iptables-save pode ser usado para salvar as regras atuais do iptables, que podem ser lidas novamente com iptables-restore .

# backup current iptables rules
iptables-save > /root/iptables-$(date +%F).save


# restore a previous set of iptables-rules
iptables-restore < /root/iptables-<date of file to restore>.save

Para a parte de rede da sua tarefa, se você não estiver usando o serviço "Network Manager", que muitas pessoas não usam em servidores, o system-config-network-cmd ou substituições posteriores como nmtui | nmcli ganharam t fazer muito.

Inicialmente, você terá que criar um script de sua própria solução, que será algo como capturar a saída de ip addr show e analisá-la para criar um arquivo de lote ip (consulte: link para informações úteis sobre isso) e, em seguida, reproduzindo esse arquivo de lote via ip --batch <batchfile> , ajustado para o seu nível de detalhe. Você precisa de MACs para ser o mesmo? outras opções de dispositivos? alguma vlans específica? ou é apenas endereços IP todos na mesma sub-rede? Ah, e você pode querer capturar ip route show , também, se você tiver alguma rota efêmera configurada que será necessária após a reinicialização.

A longo prazo, talvez seja necessário usar o Ansible (ou similar) para gerenciar implantações de regras efêmeras de iptables e configurações de interface de rede efêmeras. Então você pode apenas repetir o seu manual, e ter tudo de volta como ele precisa ser.

    
por 28.03.2018 / 16:53
0

Primeiramente, você deve garantir que NetworkManager esteja instalado e que o nmcli exista.

Depois disso, mostre suas conexões de rede atuais via nmcli :

# nmcli c
NAME                UUID                                  TYPE            DEVICE
enp0s3              346f92f2-e6b5-4464-b424-4083fb09e6ae  802-3-ethernet  enp0s3
enp0s8              537dd740-423a-42ab-8e62-d49a0e91de00  802-3-ethernet  enp0s8
enp0s8.10           1db1ea0f-f67e-4777-bd58-e4c6d36a8520  vlan            enp0s8.10
enp0s9              410c1405-b2fa-4182-900b-51defe29c681  802-3-ethernet  enp0s9

A interface enp0s8.10 não foi adicionada a mim NetworkManager . Eu adicionei mais de vconfig , ip l up e ip a .

A interface deve estar ativa e o endereço IP atribuído! Se a interface não for UP ou não tiver IP atribuído, o NetworkManager mostrará como não gerenciado .

Depois disso, você pode chamar nmcli para editar suas conexões ativas:

# nmcli connection edit enp0s8.10

===| nmcli interactive connection editor |===

Editing existing 'vlan' connection: 'enp0s8.10'

Type 'help' or '?' for available commands.
Type 'describe [<setting>.<prop>]' for detailed property description.

You may edit the following settings: connection, 802-3-ethernet (ethernet), vlan, ipv4, ipv6, proxy
nmcli> help
------------------------------------------------------------------------------
---[ Main menu ]---
goto     [<setting> | <prop>]        :: go to a setting or property
remove   <setting>[.<prop>] | <prop> :: remove setting or reset property value
set      [<setting>.<prop> <value>]  :: set property value
describe [<setting>.<prop>]          :: describe property
print    [all | <setting>[.<prop>]]  :: print the connection
verify   [all | fix]                 :: verify the connection
save     [persistent|temporary]      :: save the connection
activate [<ifname>] [/<ap>|<nsp>]    :: activate the connection
back                                 :: go one level up (back)
help/?   [<command>]                 :: print this help
nmcli    <conf-option> <value>       :: nmcli configuration
quit                                 :: exit nmcli
------------------------------------------------------------------------------
nmcli> save
Connection 'enp0s8.10' (1db1ea0f-f67e-4777-bd58-e4c6d36a8520) successfully updated.
nmcli> quit

Após essas etapas, você verá o arquivo de configuração da interface em /etc/sysconfig/network-scripts no arquivo ifcfg-enp0s8.10 (como no meu caso).

Da causa você deve passar por todas as suas interfaces.

    
por 28.03.2018 / 16:59
0

Para salvar a configuração com o system-config-network-cmd (como root):

system-config-network-cmd -e > /tmp/network-configuration.txt

Para restaurar:

system-config-network-cmd -i -c -f /tmp / config-rede.txt

-i = import
-c = limpa a configuração existente antes de importar o
-f = nome do arquivo

Se isso falhar, eu recomendaria um script que copiasse as configurações de um diretório com a configuração da interface.

    
por 28.03.2018 / 17:17