我可以在 Cisco 路由器上使用 NAT 在同一子网上设置两个或更多网关吗?

网络工程 思科 纳特 子网 互联网服务供应商
2021-07-20 00:48:50

假设我在 Cisco 路由器上有以下配置。

ISP 1

连接并配置到 GigabitEthernet8。

VLAN 1 192.168.0.0/24,已配置 NAT。

网关是 192.168.0.1。

ISP 2

连接到接口 FastEthernet0。

目前没有配置。

ISP 提供了一个动态 IP,因此应该设置“ip address dhcp”。

必须配置 NAT。

您将如何将 ISP 2 网关配置为 192.168.0.2?

如果 ISP 1 出现故障并且网关不可访问,则它不能故障转移到 ISP 2 网关,负载平衡也不能处于活动状态。

这个想法是在需要时手动设置特定计算机上的 ISP 2 网关,或者通过子网内配置的 DHCP 服务器。

编辑:

当前配置,删除并审查了不必要的内容。

interface FastEthernet0
 no ip address
 duplex auto
 speed auto
!
interface GigabitEthernet0
 no ip address
!
interface GigabitEthernet1
 no ip address
!
interface GigabitEthernet2
 no ip address
!
interface GigabitEthernet3
 no ip address
!
interface GigabitEthernet4
 no ip address
!
interface GigabitEthernet5
 no ip address
!
interface GigabitEthernet6
 no ip address
!
interface GigabitEthernet7
 no ip address
!
interface GigabitEthernet8
 ip address X.X.X.42 255.255.255.248 (First ISP 1 usable IP for NAT)
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 ip nat outside
 ip virtual-reassembly in
 duplex full
 speed auto
 no keepalive
 no cdp enable
!
interface Vlan1
 ip address 192.168.0.1 255.255.255.0
 no ip proxy-arp
 ip nat inside
 ip inspect Firewall in
 ip virtual-reassembly in
!
!
ip nat inside source list NAT interface GigabitEthernet8 overload
ip nat inside source static 192.168.0.143 X.X.X.43 extendable (A few NAT1:1)
ip nat inside source static 192.168.0.144 X.X.X.44 extendable
ip nat inside source static 192.168.0.145 X.X.X.45 extendable
ip nat inside source static 192.168.0.146 X.X.X.46 extendable
ip route 0.0.0.0 0.0.0.0 190.196.17.41 (ISP 1 gateway)
!
ip access-list standard ADMIN
 permit 200.75.15.0 0.0.0.63
 permit 200.75.19.192 0.0.0.63
!
ip access-list extended FILTERS
 permit icmp any any
 permit ip host 192.168.0.143 host X.X.X.43 (Filters to allow NAT1:1 all traffic)
 permit ip host 192.168.0.144 host X.X.X.44
 permit ip host 192.168.0.145 host X.X.X.45
 permit ip host 192.168.0.146 host X.X.X.46
ip access-list extended NAT
 permit ip 192.168.0.0 0.0.0.255 any
!

解决方案的想法,

我们知道 ISP 2 位于 FastEthernet0 并具有动态 IP,因此,由于它只是一个 IP,因此当多个客户端使用 ISP 2 网关时,我们需要在外部进行 NAT,假设配置在 192.168.0.2。

interface FastEthernet0
 ip address dhcp
 ip nat outside
 duplex auto
 speed auto
!

之后我不知道该怎么办,添加一个出站路由,用于到 ISP 2 的网关的 Internet 访问?将 ISP 2 网关设置为 192.168.0.2?但是如何?

编辑2:

我在论坛上找到了这个,请阅读:

http://www.dslreports.com/forum/r20113274-

请注意,ISP 2 设备实际上是我已配置为“桥接”的通用 Arris 路由器,如果无法使用 ISP 2 路由器完成设置,我可以将其设置回路由并根据该论坛帖子进行配置工作在桥接模式。

3个回答

我认为您误解了路由器如何处理数据包,因此提出了一个完全不适合您需求的解决方案。

为什么?

假设计算机 A 具有以下配置:

  • MAC地址 00:53:BA:12:17:19
  • IP地址 192.168.0.7
  • 的子网掩码 255.255.255.0
  • 默认网关 192.168.0.1

A 向具有 IP 地址的互联网主机 www.example.com 发送数据包203.0.113.5
该数据包具有以下特征:

  • 源 IP 地址:192.168.0.7
  • 目的IP地址:203.0.113.5

它将(二进制)其子网掩码与目标 IP 地址进行比较,发现目标不在本地子网上,因此它将数据包发送到其默认网关 192.168.0.1

它在其 ARP 表中查找,并在需要时执行 ARP 请求以查找持有 192.168.0.1 IP 地址的主机的 mac 地址。
它发现00:53:00:17:a7:b3

然后它构建了一个具有以下特征的框架:

  • 源mac地址:00:53:BA:12:17:19
  • 目的mac地址:00:53:00:17:a7:b3

在这个以太网帧内,IP 数据包被封装,它仍然具有:

  • 源 IP 地址:192.168.0.7
  • 目的IP地址:203.0.113.5

正如您可以播种的那样,目标 IP 地址不是网关。

所以路由器接收这个帧,剥离以太网报头并查找数据包以执行路由决策。

路由的基本原理是路由决定仅根据目标 IP 地址 203.0.113.5 路由器然后查看其路由表,找到 203.0.113.5 的路由并通过关联的接口发送数据包(如果已配置,则执行 NAT这是必需的)。

如您所见,所用网关的 IP 地址在路由决策中没有任何作用。而且,更重要的是,路由器甚至不知道这个 IP 地址是什么。它只知道帧到达哪个接口

好的,为什么不在两个不同的接口上配置 2 个不同的网关。好吧,您不能,不能在 Cisco 路由器上。在两个不同的第 3 层接口上不能有两个重叠的网络。否则路由器无法决定它必须为此网络发送数据包的接口。

这就是您的双网关无法工作的原因。但更重要的是,它不是实现您的目标所必需的。

什么可以工作?

现在,如果您希望路由器根据发送者采取不同的路由决策,这是可能的。它被称为policy based routing(PBR)

PBR 允许您在路由器上配置不同的路由表,并根据不同的标准进行路由决策。

最常见(且易于配置)的标准是源 IP 地址和目标 IP 地址。

请注意,您可以指定出接口而不是下一跳 IP,这对于由 DHCP 配置的出接口很方便。

所以你必须做的(如果我理解正确的话)是:

  • 设置一组具有特定IP地址池的计算机(固定IP,DHCP保留)
  • 为另一组计算机设置第二个 IP 地址池
  • 编写一个路由映射,为每个池设置目标 IP 或传出接口
  • 在传入接口(具有 LAN 网关的接口)上激活 PBR

要在某个链接失败时手动更改某些计算机的传出接口,您只需更改路由映射,这只需几分钟。

例如,您可以有 4 个池:

  • 将始终使用 ISP 1 且从不故障转移到 ISP2 的计算机
  • 将始终使用 ISP 2 且从不故障转移到 ISP1 的计算机
  • 如果可用,将使用 ISP 1 的计算机,并在需要时手动故障转移到 ISP2
  • 如果可用,将使用 ISP 2 的计算机,并在需要时手动故障转移到 ISP1

如果您想遵循您发布的这条规则:这个想法是在需要时手动设置特定计算机上的 ISP 2 网关,或通过子网内配置的 DHCP 服务器。

……那就做我该做的吧。

我在同一个子网上有两个 TPLink 路由器,一个固定电话和一个 4G。(我同时使用两者,这样我就不必每次都重新配置 4G,它只能在 WAN 或 4G 模式下工作,另外第一个在固定电话恢复工作时显示 WAN 的 LED 活动。在炎热的夏天,便宜电源插头弄乱了 ISP 沿链接路径的开关,有些会关闭或闪烁,并且整个网络都会中断。)

在它们两者上,DHCP 为已知 MAC 设置相同的保留 IP,但对于未知 MAC,它们提供不同范围的 IP。只要路由器 2 在同一个网络中就没有那么重要,但是备份 DHCP 并没有什么坏处。

两者都提供自己的网关,我分别将其设置为 192.168.0.1 和 192.168.0.2。

当主路由器上的互联网出现故障时,我只需进入 PC 的 TCP/IPv4 设置并使用不同的指标手动设置网关。

我给 192.168.0.2,4G 路由器的网关一个较低的指标(如 1)并手动重新定义默认网关 192.168.0.1 一个较高的指标(如 100)。两者都必须重新定义,如果一个仍然具有公制自动,它将不起作用。现在数据包将遵循路由器 2 的路由。指标可以被视为许多事物,例如端点之间的较短长度、较低的延迟等。因此值越小,它就越受欢迎。

制作一些快速的批处理脚本,您可以在所有绝对需要互联网的 PC 上运行这些脚本,而且您很高兴,这是最简单、最快的方法。在批处理中,我只是使用 route 命令来删除旧路由并添加新路由。路由删除 0.0.0.0 路由添加 0.0.0.0 掩码 0.0.0.0 192.168.0.2 度量 1 路由添加 0.0.0.0 掩码 0.0.0.0 192.168.0.1 度量 100

同样在恢复时,同时关闭 4G 路由器路由删除 0.0.0.0 路由添加 0.0.0.0 掩码 0.0.0.0 192.168.0.1 metric 1

否则,如果两者都持续通电,只需设置一个网关,即 99% 的时间都可以正常运行的网关,但如果它是无线网关,它将无法作为备份正常工作。

我会查看是否可以安全地实施基于策略的路由并更新此响应,但在我的情况下,这不是正确的举措。当外面真的很热时,我的座机掉线的方式是它闪烁,这意味着沿着我的 ISP 网络的交换机重新获得电源但又失去了它,互联网恢复了 10-20 秒,然后再次关闭。虽然在适配器和路由器中这注册为在线,但路由器需要一段时间才能一遍又一遍地弄清楚它不是。所以对我来说最好的方法是使用最稳定的互联网路径,那就是 4G 路由器,直到事情冷却,这意味着手动设置它并避免基于策略的路由。也许在你的情况下它是不同的。

世事皆可能; 尤其是 Cisco 路由器。但是要按照您的建议去做,很可能需要聘请专家来建立和维护这样的系统。

您不执行故障转移的要求是一个特别独特的要求。

作为您决策的一部分,请考虑让某人随时待命以解决因您的配置而出现的任何错误的成本。