动态使用不同的 NAT 目标接口

网络工程 思科 纳特 acl
2022-02-25 08:19:01

我正在使用带有蜂窝接口的 LTE 路由器。

我有一个私有 LAN(/24 掩码),所以我使用 NAT 来转换我的私有子网,以便使用我的提供商分配给我的蜂窝接口的外部公共 IP。这个IP是动态的,所以这就是我正在使用的:

ip access-list extended NAT
permit ip 192.168.0.0 0.0.0.255 any 

ip nat inside source list NAT interface Cellular0 overload
ip route 0.0.0.0 0.0.0.0 Cellular0 100

interface Cellular0
 ip nat outside

interface vlan10
 ip nat inside

此设置工作正常。

我还有一个有线 WAN 接口,我想尽可能使用它,因此绕过蜂窝接口。看到我有一个默认路由将所有数据包移动到我的蜂窝接口,这是我在可能的情况下使用有线 Gi0 接口实现的目标:

track 1 interface gigabitEthernet 0 line-protocol

ip route 0.0.0.0 0.0.0.0 GigabitEthernet0 50 track 1
ip route 0.0.0.0 0.0.0.0 Cellular0 100

但要完全自动,我需要将我的 NAT 命令行更改为:

ip nat inside source list NAT interface **Gig0** overload

这样我的私有 LAN 流量就可以被翻译并使用 Gig0 的公共 ip。

有没有办法做到这一点 ?Cell0 和 gig0 的公共 IP 不一样。

谢谢

2个回答

源地址转换仅在数据包从内部nat 接口到外部nat 接口时发生

您只需添加该行

ip nat inside source list NAT interface GigabitEthernet0 overload

除了 Cellular0 接口的行。确保 GigabitEthernet0 接口也被指定为外部nat 接口,其余部分由路由处理。

当数据包离开 GigabitEthernet0 接口时,源地址将被转换为 GigabitEthernet0 地址,当它们离开 Cellular0 接口时,它们将被转换为 Cellular0 地址。

我找到了一种正确自动化 Gig0 和 Cell0 之间故障转移的方法,包括 NAT 操作:

根据目的接口匹配私有流量

route-map Cell0 permit 10
 match interface Cellular0
!
route-map gi0 permit 10
 match interface GigabitEthernet0

创建 2 条 NAT 规则以将流量转换为正确的接口:

ip nat inside source route-map Cell0 interface Cellular0 overload
ip nat inside source route-map gi0 interface GigabitEthernet0 overload

使用此配置,故障转移是自动的 - 尽管在尝试 ping 远程服务器时,ping 失败并且永远不会回来,除非我清除 NAT 转换,但应用程序(Lync、Exchange)的转换是无缝的。