思科路由器NAT配置中的这三个选项是什么意思?


10

在一个标准的静态PAT配置中,一个IP:端口组合始终映射到另一IP:Port组合,可以配置内部/外部/源/目标的三种可能的组合。

例如,这是一个配置示例:

ip nat inside source static tcp 10.0.20.13 8080 2.2.2.33 80
       ^^^^^^^^^^^^^

用外行的话来说,此配置允许任何外部主机通过端口80发起到IP 2.2.2.33的TCP连接。当此数据包到达路由器时,目标IP地址和端口2.2.2.33:80)将转换为10.0.20.13:8080

如果内部主机10.0.20.13发送的TCP数据包的源端口为8080,则此情况也会发生相反的情况,因为该数据包穿过路由器时,源IP和端口10.0.20.13:8080)会转换为2.2.2.33:80。(这通常是一个响应包,而不是从内部主机发起的响应包


这是上面标记部分的所有三个配置选项:

Router(config)#ip nat inside ?
  destination  Destination address translation
  source       Source address translation

Router(config)#ip nat outside ?
  source  Source address translation

实际上,您可以配置:

  • 静态TCP中的ip nat {IP} {端口} {IP} {端口}
  • ip nat 在目标静态TCP 内部 {IP} {端口} {IP} {端口}
  • ip nat 外部源静态TCP {IP} {Port} {IP} {Port}

这些选项有何不同?何时使用三个选项中的每一个?请使用我上面做过的外行术语来描述每个人如何处理通过设备的数据包。

另外,有人可以告诉我为什么没有外部目的地选项吗?


2
@Eddie,而不是我们所有人都在反省用户手册,请查看此cisco.com/c/en/us/support/docs/ip/…或此groupstudy.com/archives/ccielab/200702/msg01284.html和看看是否有帮助。之后,如果您还有其他疑问,我们很乐意为您提供帮助。
罗恩·特恩

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以提供并接受自己的答案。
罗恩·莫平

Answers:


7

仔细考虑一下。

内部源意味着您想要转换源于网络内部流量的源地址。这是典型的“家庭网络”配置,可让您在公共Internet上使用私有地址。当然,这不是此版本的唯一用途。

内部目标意味着您希望从外部地址到特定目标传输协议和端口的流量流向特定内部地址。家庭用户就是这样做的,以允许从公共Internet访问具有私有地址的Web服务器之类的东西。当然,这不是此版本的唯一用途。

外部源会将来自外部的流量转换为看起来像来自内部地址的流量。在IP地址范围重叠的公司合并并需要开始连接网络的情况下,它很有用。您可以将来自外部的流量的源地址转换为可用的内部地址范围内的源地址,这些源通常具有与内部地址冲突的外部源地址。

外部目标并没有多大意义,因为它与端口转发相反。这会将来自内部的,发往特定外部传输协议和端口的任何流量限制到单个外部地址。


您对的描述inside destination似乎与我对的“外行的解释”相符inside source。除非我的示例将入站流量的目标端口号从80更改为8080。您的描述似乎暗示端口号未更改?无论哪种方式,都不可能是inside destination和之间的唯一区别inside source,可以吗?
艾迪

区别在于流量的来源。在inside source对内部流量起源,以及inside destination流量从外部流入起源。如果来自的流量inside source需要答复,则将为答复进行临时inside destination类型的处理。当通信量从一侧传送到另一侧时,可以更改端口号,但是并非所有路由器(尤其是家用路由器)都支持此端口号。
罗恩·莫平

4

我们必须从基础开始,所以让我们修改NAT术语。NAT转换IP数据包中的IP地址,对吗?这意味着什么?基本上,它会产生幻影-是的,错觉,你知道。例如,在典型的NAT配置中,当专用地址的LAN主机通过使用外部路由器接口的公用IP地址访问Internet时,这些主机在Internet服务器中会显示为具有此公用IP(或公用IP池中的IP)。NAT当然不会创建新的物理主机-但是会创建一种新的虚拟实体-在此示例中,LAN主机将自己视为192.168.1.x,但Internet服务器将其视为203.0.113.x-一组物理主机,但两组IP地址。两组不同的(逻辑)主机。光学错觉。术语是这样的:

  • 内部本地内部 -内部主机的“真实” IP地址,这些IP地址分配给它们的接口并且彼此可见
  • 内部全球 -外部世界所看到的“镜像” IP地址
  • 全局外部 -外部主机自身和(几乎)整个Internet所看到的“真实” IP地址
  • 本地外部 -我们看到外部主机的“镜像” IP地址(如果我们要求NAT进行相应转换)

如您所见,我们有义务在我们的网络与Internet或其他外部网络之间进行区分。为此,我们将路由器的IP接口标记为ip nat内部ip nat外部,同意吗?

现在,让我们记住NAT通常是如何实现的:它维护包含有关转换条目的特殊表。重要的一点是,可以静态动态创建这些条目。对于动态创建的条目,流量的方向很重要-流量是从内部发起到外部还是从外部发起?对于静态条目,情况并非如此-它们是对称的。包含static关键字的NAT配置语句将静态条目放入运行的配置后立即创建;那些使用dynamic关键字的用户会关注有趣的点击量,并动态创建翻译条目,这些条目最终将超时。

我们已经可以推测出您的最后一个问题:为什么没有外部目的地选项?源静态内部的ip nat创建静态NAT条目,该条目完全按照您的描述进行转换,但这不仅包括从某一侧发起的流量-静态NAT条目是对称的。因此,IP NAT外的目的地静态会给翻译静态项目的地进入您的网络流量的IP地址的流量从去IP地址的内部 -而这正是IP NAT提供内源静命令呢!因此,拥有此命令只是多余的。唯一的区别是,在使用一种或另一种形式的基本相同命令时,您将源与目标ip互换。

关于您的第一个陈述,“可以配置内部/外部/源/目标的三种可能的组合”-事实并非如此。关键是,通常来说,NAT配置语句不是“数学公式”,应该整体考虑,而不是从独立关键字进行逻辑构建。因此,每个“组合”都提供了针对特定任务的解决方案,例如,目标列表中的ip nat用于配置服务器TCP负载平衡,该负载平衡使用特定算法并且不适用于UDP。另外,(在现代IOS中)目的地静态命令中没有ip nat- 您是否实际使用static选项尝试过它?

您可以在此Cisco论文中看到一些使用NAT的特殊情况,包括配置示例:http : //www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/12-2sx /nat-12-2sx-book/iadnat-addr-consv.html

最后,我想提一下,有时NAT并不是您想要的,例如,查看我对这个“规范问题”的回答:https : //serverfault.com/questions/55611/loopback-to-forwarded-public- ip地址来自本地网络发夹nat / 733532#733532

附言:我应该进一步了解细节吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.