例如,这是一个配置示例:
ip nat inside source static tcp 10.0.20.13 8080 2.2.2.33 80
^^^^^^^^^^^^^
用外行的话来说,此配置允许任何外部主机启动与通过端口80的IP 2.2.2.33。当此数据包到达路由器时,目标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
实际上,您可以配置:
源IP静态TCP中的IP NAT {IP} {Port} {IP} {Port} > ip nat位于目标静态tcp {IP} {端口} {IP} {端口}
ip nat位于源静态tcp {IP} {Port} {IP} {端口}之外这些选项是否不同?何时使用三个选项中的每一个?请像上面我一样使用通俗易懂的术语来描述每个人如何处理通过设备的数据包。
另外,有人可以告诉我为什么没有外部目的地选项吗?
#1 楼
请仔细考虑。内部源意味着您要转换源于网络内部流量的源地址。这是典型的“家庭网络”配置,它允许您在公共Internet上使用私有地址。当然,这不是此版本的唯一用法。
内部目标意味着您希望从外部地址到特定目标传输协议和端口的流量要流向特定内部地址。家庭用户这样做是为了允许从公共Internet访问具有私有地址的Web服务器之类的东西。当然,这不是此版本的唯一用法。
外部源会将来自外部的流量转换为看起来像来自内部地址的流量。在IP地址范围重叠的公司合并并需要开始连接网络的情况下,它很有用。您可以将来自外部的流量的源地址(通常具有与内部地址冲突的外部源地址)转换为可用的内部地址范围内的源地址地址。
外部目标不确实有意义,因为它与端口转发相反。这会将来自内部的,发往特定外部传输协议和端口的任何流量限制为单个外部地址。
评论
您对内部目标的描述似乎与我对内部源的“外行的解释”相符。除非我的示例将入站流量的目标端口号从80更改为8080。您的描述似乎暗示端口号未更改?无论哪种方式,这都不是内部目的地和内部来源之间的唯一区别,是吗?
–艾迪
15年11月5日在16:01
区别在于流量的来源。内部源业务流源自内部,内部目标业务流源自外部。如果从内部源发出的流量需要答复,则将对答复进行临时的内部目标类型的处理。当流量从一侧传送到另一侧时,可以更改端口号,但并非所有路由器(尤其是家用路由器)都支持此端口号。
–罗恩·莫潘♦
2015年11月5日在16:10
#2 楼
我们必须从基础开始,所以让我们修改NAT术语。 NAT转换IP数据包中的IP地址,对吗?这意味着什么?基本上,它会产生幻影-是的,错觉,你知道。例如,在典型的NAT配置中,当专用地址的LAN主机通过使用外部路由器接口的公用IP地址访问Internet时,这些主机在Internet服务器上显示为具有此公用IP(或公用IP池中的IP)。 NAT当然不会创建新的物理主机-但是会创建一种新的虚拟实体-在此示例中,LAN主机将自己视为192.168.1.x,但Internet服务器将其视为203.0.113.x-一组物理主机,但两组IP地址。两组不同的(逻辑)主机。光学错觉。术语是这样的:inside local-内部主机的“真实” IP地址,它们分配给它们的接口并且彼此可见
内部全局-外部世界看到的“镜像” IP地址
外部全局-外部主机自身和(几乎)整个Internet看到的外部主机的“真实” IP地址
外部本地-当我们看到外部主机时(如果我们要求NAT进行相应的转换)“镜像” IP地址。在我们的网络与Internet或其他外部网络之间。我们通过将路由器的IP接口标记为内部ip nat或外部ip nat来做到这一点,同意吗?
现在,让我们记住通常是如何实现NAT的:它维护包含有关转换条目的特殊表。重要的一点是,可以静态或动态创建这些条目。对于动态创建的条目,流量的方向很重要-流量是从内部发起到外部还是从外部发起?对于静态条目,事实并非如此-它们是对称的。包含static关键字的NAT配置语句会在将它们放入运行的配置后立即创建静态条目。那些使用动态关键字的用户会关注有趣的流量并动态创建翻译条目,这些翻译条目最终将超时。
我们已经可以推测出您的最后一个问题:为什么没有外部目的地选项?源静态内部的ip nat创建静态NAT条目,该条目完全按照您的描述进行转换,但这不仅包括从某一侧发起的流量-静态NAT条目是对称的。因此,目标静态外部的ip nat会创建一个静态条目,以转换从外部进入网络的流量的目标IP地址和内部流量的源IP地址-但这恰恰是源静态内部ip nat的作用!因此,拥有此命令只是多余的。唯一的区别是,当使用一种或另一种形式的基本相同的命令时,您将源与目标ip交换。
关于您的第一个陈述,“可以配置内部/外部/源/目标的三种可能的组合”-事实并非如此。关键是,通常来说,NAT配置语句不是“数学公式”,应该整体考虑,而不是从独立关键字进行逻辑构建。因此,每个“组合”都提供了针对特定任务的解决方案,例如,目标列表中的ip nat用于配置服务器TCP负载平衡,该负载平衡使用特定算法并且不适用于UDP。另外,(在现代IOS中)目的地静态命令中没有ip nat-您是否已使用static选项实际尝试过此操作?论文: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-address-from-local-network-hairpin-nat / 733532#733532
PS我应该详细了解吗?
评论
@Eddie,而不是我们所有人都在反省用户手册,请查看此cisco.com/c/en/us/support/docs/ip/…或此groupstudy.com/archives/ccielab/200702/msg01284.html和看看是否有帮助。之后,如果您还有其他疑问,我们很乐意为您提供帮助。有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。