如何在 OpenBSD 上不停机切换 IP(包括子网)

如何在 OpenBSD 上不停机切换 IP(包括子网)

我有一个 OpenBSD 防火墙,我必须在管理界面上更改 IP(包括更改子网/网关),并且我正在寻找如何在不丢失 SSH 的情况下远程执行此操作(这样如果出现问题我就可以修复)。

以下是我想象可以做到的方法:

  1. 将新 IP 作为别名添加到我的网络接口。(问题:如何正确地添加与原始 IP 位于不同子网上的 IP?http://www.openbsd.org/faq/faq6.html#Setup.aliases不清楚除了指定网络掩码之外,是否还有其他特殊操作可以针对不同的子网执行)

  2. 添加带有路由的新网关。(问题:我应该将其添加为“默认”网关还是仅适用于新子网?)

  3. SSH 到新 IP。

  4. 编写一个脚本,关闭旧 IP 和新 IP,并将新 IP 作为主接口 IP,此时我肯定需要将新网关添加为默认网关,对吗?从屏幕内运行它,这样即使网络暂时中断,它也能继续运行。(问题:这应该可以完成工作吗?有什么特别的陷阱我应该注意吗?关于运行哪些命令才能正确执行此操作,有什么提示吗?)

答案1

使用tmuxscreen打开 shell 会话sleep NSECS && reboot(NSECS 300 通常没问题,但 YMMV)——如果重新配置出错,这将允许使用以前的设置重新获得访问权限。是的,这是一个中断,但更好。shutdown -r +min如果您喜欢控制台上的重启警报,您可以使用它 :-)

在其他 shell 会话中为接口分配别名。如果网络不重叠,则没有什么特别的,只需使用适当的掩码(不是 /32)。然后使用route change default(参见手动的)。实际上,您可以使用 shell 脚本ping来设置某个远程主机,并route change default old-gw在没有回显的情况下进行设置。如果新的网关设置不起作用,这将节省您重新启动的时间。

基本上就是这样。

PS:如果任务成功,不要忘记取消重启。;-) 不要忘记在配置中保存新设置。

答案2

我将为终端配置串行端口,并将其连接到笔记本电脑或其他带外设备。从此入口点进行所有更改。

答案3

使用冗余

如果您如此担心中断,我假设您至少有两个运行 CARP 和相关服务的防火墙。

如果您没有两个,那么每当磁盘或 PSU 出现故障或者几个月后升级到 OpenBSD 5.0 时,都会出现中断。

使用新的 IP 地址编辑 box1 上的相关 /etc/hostname.if(5) 和 /etc/mygate。重新启动 box1。当它重新启动时,确保一切正常。

当您确定一切正常后,使用新的 IP 地址编辑 box2 上的 /etc/hostname.if(5) 和 /etc/mygate。重新启动 box2 并确保一切正常。

单模光纤

如果你真的只有一个盒子,用新的 IP 地址编辑 hostname.if 和 mygate,并在用户最少时重新启动。

无论如何,您都需要重新启动系统以确保配置了正确的 IP。如果您等待 6 个月而更改失败,您将不记得原因,并且可能会花费数小时来解决问题,而不是立即解决问题。

相关内容