在 Cisco ASA 上移动接口名称,同时保持其余配置到位

网络工程 思科
2021-07-26 01:50:05

我最初的问题:我的 ASA 5525-X 上的物理端口用完了

我的初始解决方案:在端口通道上创建子接口并使用交换机聚合我的 VLAN

后续问题:如何将分配给原始接口的名称移动到新的子接口,同时保留其余配置?

如果我在重新分配名称之前在原始接口上发出“ no nameif ”指令,ASA 将删除引用该名称的每个配置元素。

如果我在重新分配原始名称之前重新发出nameif ”指令以将接口重命名为临时名称,则所有引用原始名称的配置元素都将更新以反映新名称。最后,我并没有更接近我的目标。

到目前为止,我资助的唯一解决方案是显而易见的解决方案 - 离线编辑启动配置并重新加载防火墙,我的更改已经到位。我不喜欢的是重新加载时间 - ASA 无法快速启动。我将无法在一天结束时将停机时间偷偷溜进一个小的维护窗口(互联网是否停机?嗯,它现在恢复了 - 一定是我)。相反,我将不得不安排一个更长的维护窗口。

更新:请查看相关问题Cisco ASA startup-config command ordering for sub-interfaces

是否有另一种方法可以将名称从一个界面“移动”到新界面,同时保持其他所有内容不变?

4个回答

将您使用的物理端口保留为未标记的 VLAN。您可以通过将本地 VLAN 设置为您希望该流量打开的 VLAN#,将该流量定向到交换机上的 VLAN#。

然后,对于您添加到 ASA 的每个新 VLAN,将其设为子接口。

我没有 ASA 来验证此代码,但它看起来像这样:

interface gig0/0
  nameif ORIGINAL-NAMEIF
  security-level 100

interface gig0/0.20
  vlan 20
  nameif NEW-VLAN-2
  security-level 20

interface gig0/0.30
  vlan 30
  nameif NEW-VLAN-3
  security-level 30

等等。它应该允许您添加新的子界面,而无需对原始界面进行任何更改。“根”接口不包含 VLAN 标记,因此流量不变。

您可以无限期地以这种方式运行它,也可以更改它以便以后一切都使用 VLAN 标记,以便您更方便地关闭网络。

这就是我做同样事情的方式。

首先,我将所有接口名称更改为末尾带有“_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 项目,直到后来。

同样,我丢弃了诸如nameifMTU没有改变的命令

这在主文件中留下了大部分 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 monitorshut在最后加了一个

然后我复制了所有的新接口命令,并输入了正确的 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 次丢失,通常只有一点延迟

离线编辑启动配置并重新加载

这是唯一的办法。在内部,名称使用唯一 ID 进行跟踪。无法将名称“移动”到不同的界面。

一种可能的替代方法是更新启动配置,然后删除名称并“复制开始运行”以将所有内容放回原处。但是你要求搞得一团糟,它仍然会破坏所有现有的连接。(在此过程中,我会给它五分之一的系统崩溃。)

至于重新加载的时间,我从未见过 ASA 需要超过几分钟(低于 5)来重新加载。

这就是我的方式:发布演出 | 包括“接口名称” 将所有带有“接口名称”的行粘贴到记事本 添加顶部命令以将名称移动到新界面 因为现在您离线工作,所以根本没有运行配置更改 现在开始真正的游戏,复制和将整行粘贴到 asa,配置已更改,新的配置会在几秒钟内运行。但是,您需要在开始之前仔细检查配置行,并确保在删除原始界面上的名称后不要丢失 asa。