一、概念
NAT(Network Address Translation)网络地址转换,其功能是将企业内部自行定义的非法IP地址转换为Internet公网上可识别的合法IP地址。
二、功能
NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
- 宽带分享:这是 NAT 主机的最大功能。
- 安全防护:NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC 。
三、实现方式
NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。
-
静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。 -
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。 -
端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
ALG(Application Level Gateway),即应用程序级网关技术:传统的NAT技术只对IP层和传输层头部进行转换处理,但是一些应用层协议,在协议数据报文中包含了地址信息。为了使得这些应用也能透明地完成NAT转换,NAT使用一种称作ALG的技术,它能对这些应用程序在通信时所包含的地址信息也进行相应的NAT转换。例如:对于FTP协议的PORT/PASV命令、DNS协议的 “A” 和 “PTR” queries命令和部分ICMP消息类型等都需要相应的ALG来支持。
如果协议数据报文中不包含地址信息,则很容易利用传统的NAT技术来完成透明的地址转换功能,通常我们使用的如下应用就可以直接利用传统的NAT技术:HTTP、TELNET、FINGER、NTP、NFS、ARCHIE、RLOGIN、RSH、RCP等。
四、转换流程
在整个NAT的转换中,最关键的流程有以下几点:
- 网络被分为私网和公网两个部分,NAT网关设置在私网到公网的路由出口位置,双向流量必须都要经过NAT网关;
- 网络访问只能先由私网侧发起,公网无法主动访问私网主机;
- NAT网关在两个访问方向上完成两次地址的转换或翻译,出方向做源信息替换,入方向做目的信息替换;
- NAT网关的存在对通信双方是保持透明的;
- NAT网关为了实现双向翻译的功能,需要维护一张关联表,把会话的信息保存下来。
五、NAT穿透(穿越)
两种常用的NAT穿越技术是:UDP路由验证和STUN
关于STUN
NAT会话穿越工具(SessionTraversal Utilities for NAT),STUN是一个相对简单的客户机/服务器协议, 它能够在多种环境中确定在NAT中使用的外部IP地址和端口号。它也可以通过保持激活的信息来维持当前的NAT绑定。它需要在NAT一侧存在一台有效的“其他”合作服务器, 以及几台被配置了全局IP地址的可在互联网上被访问到的公共STUN服务器,STUN服务器的主要工作是:回显发送给它的STUN请求, 以确定客户端的寻址信息。
STUN操作使用UDP、 TCP或具备传输层安全性( Transport Layer Security, TLS)的TCP,STUN基础协议有两种类型的事务:请求/响应事务( request/response transactions)和标志事务( indication transactions)。
六、公网IP和私网IP
IP可以分为Public IP和Private IP,出现这种规划的原因在于IPv4所能表示的IP太少而电脑太多以至于不够用,然而只有Public IP才能直接连接上网络,所以对于那些公司,学校,政府机构等场所,就可以集中使用私有的IP进行管理,而大家可以共用一个IP去连接上公网,这样,就省下了许多宝贵的Public IP。
172.开头的意味着我们是B类型的局域网,以192.开头的意味着你是c类的局域网。
ipconfig查出来的是你本机的IP地址,也就是内网私有地址,此类地址仅在局域网使用,不能联通外网。
百度查出来的地址是你上网的共有地址,也许并不是你主机的地址,而是电信或联通分给你的地址,用于连接互联网。
- Public IP : 公共IP ,经由INTERNIC所统一规划的IP,有这种IP才可以连上Internet ;
- Private IP : 私有IP 或保留 IP,不能直接连上Internet的IP ,主要用于局域网络内的主机联机规划。
我们一般使用私网ip作为局域网内部的主机标识,使用公网ip作为互联网上通信的标识。
|