zoukankan      html  css  js  c++  java
  • 【转载】NAT(Network Address Translation )——解决IPV4地址短缺之道的方法初识

    什么是NAT
    NAT作为一种减轻IPv4地址空间耗尽速度的方法,最早出现在Cisco IOS 11.2版本中。


    它有什么用?
    IP地址不足;这种通过使用少量的公有IP地址代表较多的私有IP地址的方式,将有助于减缓可用的IP地址空间的枯竭。
    隐藏内部网络;NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以Client端的PC当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 。
    能够处理地址重复情况,避免了地址的重新编号,增加了编址的灵活性。
    可以使多个使用TCP负载特性的服务器之间实现基本的数据包负载均衡。


    NAT的实现原理
    NAT的原理是,在路由器中维护一张映射表,该表如下表所示:

    Protocol    Inside Local IP(Address:Port)    Inside Global IP(Adress:Port    Outside Global IP(IP Address:Port)
    TCP    10.1.1.1:80    10.1.1.127:80    172.20.7.3:3058
    TCP    10.1.1.2:80    10.1.1.127:80    172.21.7.3:4371
    TCP    10.1.1.3:80    10.1.1.127:80    172.20.7.3:3062


    在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在路由器(可以理解为出口,打个比方就像院子的门一样)处,将内部地址替换成公用地址(不同端口进行标志),从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共 IP地址紧缺的问题。


    补充知识:内部、外部IP地址
    虽然内部地址可以随机挑选,但是通常使用的是下面的 地址:10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255, 192.168.0.0~192.168.255.255。NAT将这些无法在互联网上使用的保留IP地址翻译成可以在互联网上使用的合法IP地址。而全 局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻 址的地址。


    它的不足是什么?
    由于NAT要在边界路由器上进行地址的转换,增大了传输的延迟。
    由于NAT改动了IP地址,失去了跟踪端到端IP流量的能力。当出现恶意流量时,会使故障排除和流量跟踪变的更加棘手。
    不支持一些特定的应用程序。如早期版本的MSN。
    增大了资源开销。处理NAT进程增加了CPU的负荷,并需要更多内存来存储NAT表项。


    它的种类和特点
    NAT的实现方式有三种,即静态转换Static Nat、动态转换DynamicNat和端口多路复用OverLoad。

    • 静态转换
      静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
    • 动态转换
      动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
    • 端口多路复用(Port address Translation,PAT)
      是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
    • 应用级网关 ALG(Application Level Gateway)
      ALG(Application Level Gateway),即应用程序级网关技术:传统的NAT技术只对IP层和传输层头部进行转换处理,但是一些应用层协议,在协议数据报文中包含了地址信息。为了使得这些应用也能透明地完成NAT转换,NAT使用一种称作ALG的技术,它能对这些应用程序在通信时所包含的地址信息也进行相应的NAT转换。例如:对于FTP协议的PORT/PASV命令、DNS协议的 “A” 和 “PTR” queries命令和部分ICMP消息类型等都需要相应的ALG来支持。


    它要怎么用?
    这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。


    ————————————————
    版权声明:本文为CSDN博主「Star_Ship」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/zhoucheng05_13/java/article/details/79932953

  • 相关阅读:
    面试题:你了解对象分配规则吗
    面试题:Java 对象的创建过程
    面试题:Minor GC、Major GC、Full GC的触发时机
    常见的垃圾回收算法
    Java GUI快速入门
    Java Swing 介绍
    Java 开发环境配置
    Java (windows)安装教程
    Gamma、Linear、sRGB 和Unity Color Space,你真懂了吗?
    Qt OpenGL 蒙板
  • 原文地址:https://www.cnblogs.com/awpatp/p/12795440.html
Copyright © 2011-2022 走看看