这就是我做同样事情的方式。
首先,我将所有接口名称更改为末尾带有“_REPLACE”。
这确保我只选择界面所在的实际位置。
一些项目在创建时将默认使用默认接口名称命名,但如果您稍后重命名接口,则不会更改。此外,您可能会在某些时候自己用接口名称命名对象,这也可能会造成混淆。
EG: Arbitrary_Net
界面变成了Arbitrary_Net_REPLACE
然后我在几个接口上创建了一个端口通道,并在这些接口下面创建了 VLAN 接口,将 VLAN ID 作为子接口编号并附加到 woudl 移动到那里的接口名称。
EG:“ Arbitrary_Net
”接口已打开VLAN 173
,因此PortChannel1.123
已分配VLAN ID 123
,并命名为“ Arbitrary_Net_123
”
但是,再次执行此操作时,我会修改此过程以_NEW
在末尾简单地使用“ ”而不是“ Arbitrary_Net_NEW
”,因为这可以让我更快地进行更改。
我确保接口为 HA 等设置了它们的 MAC 地址,并且端口通道正在工作,并且我在 ASA 上创建了一些任意临时 VLAN,并且交换机显示 ASA 可以 ping 交换机,并且交换机可以 ping ASA 以确保存在已经是连通性。
我还更改了 HTTP 和 SSH 以使用 LOCAL 而不是 AAA,直到更改完成当我将它们更改回来时,我添加并测试了来自与我的正常管理网络不同的网络上的主机的管理访问,以便我可以先移动该网络然后在确认我仍然拥有管理访问权限后完成更改。
然后我只是通过 TFTP 下载配置copy run tftp://[hostIP]/[Path]/FW_Cluster A_Primary_Active_Original.asa
并在 Notepad++ 中打开它进行编辑。
为谨慎起见,我只是搜索了所有“_Replace”语句并将它们放在一个单独的文件中(我们称之为“主文件”
我查看了这些,如果有任何不与左侧齐平,我检查了该区域以确保我从 TFTP 文件中获取了所需的外部命令。
注意:我本可以用 AAA 设置来做到这一点,但我认为让 ASDM 负责确保完全按照那些命令重写命令要容易得多,因为 AAA 必须完全删除和读取,我有一半十几种设置。所以我只是丢弃了 AAA 项目,直到后来。
同样,我丢弃了诸如nameif
和MTU
没有改变的命令。
这在主文件中留下了大部分 NAT 规则、接口关联的 ACE、Cyrptomaps 和一些路由等
路线,我移动到一个单独的文件(称为倒数第二个文件),在这里我将它们翻倍,放入no route
旧界面,然后放入route
新界面,并按界面分组。
WebVPN 和 HTTP 重定向我也复制到倒数第二个文件,并且我在所有这些前面加上了no
附加前缀。
我在倒数第二个文件中添加了一些零碎的东西,需要删除然后再次添加,例如:
no management Arbitrary_NET_REPLACE
management Arbitrary_NET_NEW
当我回到主文件并感到满意时,里面没有那种东西了
所以我只是搜索_REPLACE
并替换为_New
(或者如果你跟着我实际上做了一堆这些,因为我在接口上使用了 VLAN ID)
我也将所有 NAT 规则提取到 Excel 中,然后sh run nat | in _REPLACE
在 ASA 上运行
我将该命令的输出放在一组单元格中,并将命令的新版本放在另一组中,并进行检查以确保它们匹配。
然后我使用 Excel 从第一组单元格中分离出 NAT 规则编号,并将其添加到第二组单元格中的“源”关键字之前
IE 我将显示的结果放入 B 列,将主文件中的 NAT 放入 C 列,然后**在 EI 列中使用 excel 进行替换 =SUBSTITUTE(C1, source ,LEFT(B1," "&FIND(" ",B1)&"source "))
这采用了规则编号并将它们粘贴在源代码之前,这是需要的以正确的顺序放置它们。
(**TBH 在 E 列中进行替换之前,我使用 D 列对 B 列和 C 列进行了比较,从单词源开始查看 NAT 规则,但我现在不想写那个等式挠头,结果8次都符合预期,所以我的目视检查足够准确)
然后在 A 列中,我添加了这个公式来获取规则编号 =LEFT(B1,FIND(" ",B1)-1)
然后我选择了 A 列到 E 列,点击过滤器,然后对它们进行排序以颠倒 NAT 规则的顺序,以便从最高数字到最低数字应用它们。
然后我将这些复制回主文件,替换之前存在的 NAT。
最后,我回到 TFTPed 文件并将旧接口的接口命令复制到最终文件中
这些我把他们上的IP改成一个完全超出正常范围的网络,假设原来的网络都是10.1.x.y
,我把这些都10.2.x.y
改成了我把所有的Monitor
语句都改成了,no monitor
并shut
在最后加了一个
然后我复制了所有的新接口命令,并输入了正确的 IP 地址和子网掩码,并monitor
为每个添加了关键字。
然后我将每个旧接口与新接口配对,这样我就可以一次做一组,以防我错过了一些问题。
最后,我再次为这些原始接口复制了原始命令,只保留interface gi0/0
命令和nameif
命令并附no
加到每个命令中,nameif
这样它们都是no nameif
,并将其放在一个单独的文件中以备后用。
最后我准备好了。
我应用了 Mian 文件中的更改。
现在我的所有 ACL 都与新接口和旧接口相关联,并且所有 NAT 规则也被复制到它们中(这不是问题,因为它只在流量通过给定接口时才重要。)
我可以在 CLI 或 ASDM 中查看 NAT 规则,并正确查看彼此相邻的新旧规则,这对于确认没有问题也非常有帮助。
然后,我仅将 Penultimate 文件和 Final 文件中的更改应用于我为 ASDM 和 SSH 设置备用访问的接口,然后我确认一切正常并登录到 SSH 和 ASDM 以进行其余更改。
我现在应用 Penultimate 文件中的所有剩余更改,然后应用 FINal 文件中的所有更改。
这让我的原始接口仍然存在,ACL 和 NAT 仍然适用于它们,并且所有这些都可以重新打开并开始工作,只需进行少量更改。
有一次我在几个小时后对变化很好感到满意
我移动了所有过度使用 ASDM 的 AAA 设置(谢谢 ASDM!)然后我运行了no nameif
我保存在单独文件中供以后使用的命令,并且所有与这些接口有关的剩余条目都从防火墙集群中删除.
这样做之后,一旦您对这个过程感到满意,您就可以在一两天内完成普通的防火墙,但我发现我更加谨慎,只有几乎没有 NAT 和 VPN 的防火墙集群看起来“很快” .
部分原因是因为您将要检查所有内容,即使这样做了,您可能会忘记一些小事。
但是,我可以说,让界面更改直到最后一步让我能够在该步骤之前处理一些小问题,这样当流量实际移动到那里时,通常只有 ping 或 2 次丢失,通常只有一点延迟。