外部接口替代方案上的 NAT

网络工程 思科 纳特
2021-07-17 14:19:07

我正在努力从多个外部接口配置一些带有 NAT 的 Cisco 路由器。接口被视为替代方案:使用第一个有效的接口。

问题:“带有您路由出的外部接口的 NAT”的配置是什么?

该设备是遥测网络的广域网,每个网络由一个 Cisco 867VAE 组成,下面有许多遥测设备。这些每个站点的路由器通过各种 ADSL、Fibre+ONT、以太网方法连接到互联网。

我正在为它们配置“备份路由”机制,以便如果主链路出现故障,它们可以临时连接到一些支持 DHCP 的网络。然后他们重新连接,中央工作人员(不在现场)可以弄清楚该怎么做。问题的一个关键部分是站点访问者不知道如何(并且不允许)更改 Cisco 配置。

如果它已插入并正常工作,我们希望所有流量都通过 isp1。如果由于某种原因它已关闭,并且 isp2 正在运行并启动,则使用它。没有负载共享、平衡或类似的东西。

在下图中,任何离开 dialer1 的数据包都应该具有 dialer1 的 PPP 分配地址;任何离开 vlan1000 的数据包都应该具有 vlan1000 的 DHCP 分配地址。

      isp1       isp2
       |          |
  +----+----------+-----+
  | dialer1    vlan1000 |   outside
--|----------R8---------|--   NAT
  | vlan1               |   inside
  +---+-----------------+
      |
    telemetry units

示例路由器配置为

hostname R8

interface Dialer1
 description for adsl
 ip address negotiated
 ip nat outside
 encapsulation ppp
 dialer pool 1
 ppp chap hostname ...

interface FastEthernet3
 switchport access vlan 1000
 no ip address

interface Vlan1
 description main local address on default vlan
 ip address 192.168.8.1 255.255.255.0
 ip nat inside

interface Vlan1000
 description auto uplink
 ip address dhcp
 ip nat outside

ip route 0.0.0.0 0.0.0.0 Dialer1
ip route 0.0.0.0 0.0.0.0 dhcp 10

一切正常,如描述:如果可以,我们使用 dialer1,如果可以,则使用 vlan1000。vlan1000 / fe3 配置只是因为 867VAE 没有 L3 以太网端口。

问题是关于 NAT:

ip nat inside source list NATLIST interface Vlan1000 overload
ip access-list standard NATLIST
 permit 192.168.8.0 0.0.0.255

我想象的是

ip nat inside source list NATLIST interface dialer1 overload
ip nat inside source list NATLIST interface Vlan1000 overload
ip access-list standard NATLIST
 permit 192.168.8.0 0.0.0.255

但当然你不能有多个 ip nat inside source NATLIST

编辑:添加第二个时,它会替换第一个。我错过了什么吗?

(此处的示例使用两个 VLAN 接口并根据 Ron 的回答列出 10 个)

gwhqtun1#show run | include nat
 ip nat outside
 ip nat outside
ip nat inside source list 10 interface Vlan1000 overload
gwhqtun1#conf term
Enter configuration commands, one per line.  End with CNTL/Z.
gwhqtun1(config)#ip nat inside source list 10 interface Vlan2000 overload
gwhqtun1(config)#exit
gwhqtun1#show run | include nat
 ip nat outside
 ip nat outside
ip nat inside source list 10 interface Vlan2000 overload

Cisco IOS 软件、C860 软件 (C860VAE-ADVSECURITYK9-M),版本 15.2(4)M3,发布软件 (fc2)

感谢任何建议,尤其是如果我做错了什么或愚蠢的事情。

2个回答

在这种设置中,我总是更喜欢路由映射而不是访问列表。

据我所知,您不能有多个以下行是对的。您申请的最后一行(也是唯一一行)将保留:

ip nat inside source list NATLIST interface Interface_#1 overload
ip nat inside source list NATLIST interface Interface_#2 overload

or

ip nat inside source route-map routemap_name interface Interface_#1 overload
ip nat inside source route-map routemap_name interface Interface_#2 overload

所以诀窍是对不同的 nat 语句使用不同的 route_map(或访问列表)名称。以下是示例:

!
route-map ISP1 permit 10
 match ip address NATLIST
 match interface dialer1
!
route-map ISP2 permit 10
 match ip address NATLIST
 match interface vlan1000
!
ip nat inside source route-map ISP1 interface dialer1 overload
ip nat inside source route-map ISP2 interface vlan1000 overload
!

我希望它有帮助,你可以让它工作!

ip nat inside source route-map isp1 interface dialer1 overload
ip nat inside source route-map isp2 interface vlan1000 overload
!
route-map isp1 permit 10
  match interface dialer1
!
route-map isp2 permit 10
  match interface vlan1000

这应该为您提供您正在寻找的每个接口的 NAT。

请记住,当您的默认路由从一个接口切换到另一个接口时,所有连接都会中断。例如,如果 dialer1 失败,流量将转移到 ISP2(dhcp,metric 10);当 dialer1 恢复时,它将成为默认路由,并且没有流量流向 ISP2,即使它仍然有效。