NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。
静态转换是指内部本地地址一对一转换成内部全局地址,相当内部本地的每一台PC都绑定了一个全局地址。一般用于在内网中对外提供服务的服务器。[3]
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,网络中应用最多的就是端口多路复用方式。
当有多台设备访问互联网时,一般向ISP申请一个IP,然后通过路由器构建一个局域网让所有设备上网,这种使用的技术叫做NAT。
一、静态转换
搭建拓扑结构(外网的设备不要设置网关):
由于外网的设备不知道局域网的存在,此时PC0无法ping通PC1:
通过NAT的静态转换,分别为192.168.0.1和192.168.0.2设置外网IP,其对应关系如下:
192.168.0.1 | 10.0.0.2 |
192.168.0.2 | 10.0.0.3 |
操作步骤如下:
现在当外网的PC想要访问192.168.0.1,可以通过10.0.0.2访问:
查看nat表:
二、动态NAT
搭建如下拓扑:
对路由器进行如下配置:
相关说明
- 定义内部网络中允许访问外部网络的访问控制列表:
Router(config)#access-list acl表号 permit或deny 网络号 子网掩码反码
进行如下配置:
ping外网测试:
查看转换表:
三、PAT
绘制拓扑结构:
配置PAT(2上面还有一行,忘了标出来了):
打开路由器debug功能:
ping外网:
查看路由器debug日志,方括号内为端口号:
可以看到,内网公用一个IP地址,但是不同的设备通过不同的端口访问互联网。
四、端口映射实战
在日常生活中,我们通常连接的网络都是局域网,在局域网内搭建的服务器外网常常无法访问,那么我们可以通过端口映射,使得外网可以访问内网服务器。
搭建如下的拓扑结构并设置IP地址,右边的设备IP地址不要设置:
开启DHCP服务器:
无线路由器默认为DHCP获取IP地址,这里可以看到路由器的IP地址是10.0.0.4:
右边的服务器请求IP:
右边的PC2请求IP:
PC2可以ping PC1:
但是PC0和PC1无法访问右侧的服务器,因为他再内网里面,下面通过端口映射,使得PC0和PC1可以访问右侧的服务器,对无线路由器进行以下配置:
PC0和PC1都可以访问右侧的服务器(注意,这里的IP地址是路由器的IP地址,路由器把这个端口数据转发到了服务器):