Centos网络接口的备份和恢复

Centos网络接口的备份和恢复

我有一台运行 Centos 7 的服务器,需要重新启动才能升级某些软件。

某些物理网卡每个都有大约 5-10 个 VLAN 接口。它们可能每周/每月发生变化,因此存储详细信息以/etc/sysconfig/network-scripts在重新启动后持续存在是不切实际的。

有没有一种简单的方法可以拍摄当前网络堆栈的快照并在重新启动后恢复?类似于保存/恢复 iptables 规则的方式?

我找到了一些参考资料,system-config-network-cmd但我对使用这个工具持谨慎态度,因为它会覆盖我们所拥有的物理接口的静态配置/etc/sysconfig/network-scripts

谢谢!

答案1

Iptables 是您提出的问题中最简单的部分。

iptables-save可用于保存当前的 iptables 规则,然后可以使用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

对于任务的网络部分,如果您不使用“网络管理器”服务(许多人在服务器上不使用该服务),则可以使用system-config-network-cmd或以后的替代品,例如nmtui|nmcli不会做太多事。

最初,您必须编写自己的解决方案的脚本,该解决方案看起来类似于捕获 的输出ip addr show,然后解析它以创建 ip 批处理文件(请参阅:https://support.cumulusnetworks.com/hc/en-us/articles/202395708-Bringing-up-Large-Networks-Using-ip-batch有关有用的信息),然后通过 重播该批处理文件ip --batch <batchfile>,并根据您的详细程度进行调整。您需要 MAC 相同吗?其他设备选项?有具体的vlan吗?或者仅仅是 IP 地址都在同一子网上?哦,ip route show如果您配置了重启后需要的任何临时路由,您可能也想捕获。

从长远来看,也许可以考虑使用 Ansible(或类似的)来管理临时iptables规则和临时网络接口配置的部​​署。然后你就可以重播你的剧本,让一切恢复到原来的样子。

答案2

首先,您必须确保网络管理器已安装并且nmcli命令存在。

之后,通过以下方式显示您当前的网络连接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

接口enp0s8.10没加我过来网络管理器。我已将其添加到vconfig,ip l upip a

接口必须已启动并已分配 IP 地址!如果接口未启动或没有分配 IP,则网络管理器将显示为不受管理的

之后,您可以调用nmcli编辑您的活动连接:

# 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

/etc/sysconfig/network-scripts执行此步骤后,您将在文件中看到接口的配置文件ifcfg-enp0s8.10(如我的情况)。

当然,您应该检查所有界面。

相关内容