1. 网络地址转换(NAT)

1.1 NAT的应用场景

(1)应用场景:允许将私有IP地址映射到公网地址,以减缓IP地址空间的消耗

  ①需要连接Internet,但主机没有公网IP地址

  ②更换了一个新的ISP,需要重新组织网络时,可使用NAT转换

  ③需要合并两个具有相同网络地址的内网

(2)NAT的优缺点

优点

缺点

①节约合法的公网IP地址

②减少地址重叠现象

③增加连接Internet的灵活性

④增加内网的安全性

①地址转换产生交换延迟,也就是消耗路由器性能。

②无法进行端到端的IP跟踪

③某些应用无法在NAT的网络中运行

1.2 NAT的类型

(1)静态NAT

  指将内部网络的私有IP地址转换为公有IP地址IP地址对是一对一的,即两个地址的映射关系己绑定死了。某个私有IP地址只转换为某个公有IP地址,借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问

(2)动态NAT

  ①指将内部网络的私有IP地址转换为公用IP地址时,IP地址对是不确定的,而是随机的。所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址池中一个IP地址。如果地址池的IP地址做映射用完了,剩余的内网计算机将不能再访问外网(本质上,也是一对一的关系,只不过这种关系是动态绑定的!)。

  ②当要与外界进行通信的内部节点,如果还没有建立转换映射,边缘路由器将会动态的从公网IP地址池中选择IP对内部地址进行转化。每个转换条目在连接建立时动态建立,而在连接终止时会被回收因此,外网的计算机不能访问内网的计算机(因为映射关系是内网计算机发起且连接终止时就回收了!)

  ③动态NAT,一般用在当内部网络中只有少数节点与外界建立连接的场合时,因为只有少数的内部地址需要被转化成全局地址,可以减少对合法地址的需求。

(3)PAT

  ①这是最流行的NAT配置类型,实际上是动态NAT的一种形式,它映射多个私有网IP地址到一个公网IP地址,通过使用不同的端口来区分内网主机,被称为端口地址转换(PAT,Port Address Translation)。(见后面实验部分的分析,怎么用端口区分内网主机?)

  ②使用PAT时,internet的主机无法访问内网主机。如果需要这种访问,则需要做端口映射(注意,端口映射和端口地址转换PAT是两个概念PAT是使得多个内网主机可以通过一个公网IP同时访问Internet,而端口映射则可以让internet主机访问内网主机!见后面《端口映射》的内容

2. 实现网络地址转换

2.1 配置静态NAT

(1)网络拓扑

映射关系:PCx(10.0.0.y)映射到131.107.0.y;

(2)静态NAT映射数据包转换过程

  ①PC0访问Internet的Server,数据包经CPE路由器,根据配置的静态映射,数据包的源地址被131.107.0.2地址替换

  ②Server向131.107.0.2发送返回的数据包,在进入内网时,根据静态映射表,将会使用PC0的IP地址替换数据包的目标地址(10.0.0.2)。

(3)在CPE路由器上配置静态映射表

//1. 静态NAT
Router#conf t
Router(config)#access-list permit 192.168.1.0 0.0.0.255 //定义ACL,只允许192.168.1.0/24网段
Router(config)#line vty 0 15 //进入VTY虚接口,0和15分别表示起始和结束的vty的0-15号接口。
Router(config-line)#access-class in //将编号为12的ACL绑定到vty
Router(config-line)# CPE#conf t
CPE(config)#ip nat inside source static 10.0.0.2 131.107.0.2
CPE(config)#ip nat inside source static 10.0.0.3 131.107.0.3
CPE(config)#ip nat inside source static 10.0.0.4 131.107.0.4
CPE(config)#ip nat inside source static 10.0.0.5 131.107.0.5
CPE(config)#ip nat inside source static 10.0.0.6 131.107.0.6
CPE(config)#interface fastEthernet /
CPE(config-if)#ip nat inside //指定该接口为NAT的内部端口
CPE(config-if)#ex
CPE(config)#interface serial /
CPE(config-if)#ip nat outside //指定该接口为NAT的外网端口
CPE(config-if)#ex
CPE(config)#exit
CPE#debug ip nat //让路由器显示NAT信息

(4)验证:PCO主机ping 202.99.160.2,同时观察CPE路由器显示的NAT信息(要事先debug ip NAT开启这个功能!)。同时,由于配置了静态映射,外网的计算机可能通过访问131.107.0.6直接访问内网的WebServer的网站。

2.2 配置动态NAT

(1)网络拓扑

(2)在路由器上配置动态NAT

//1. 在CPE路由器上配置动态NAT
CPE>en
CPE#config t
//定义ACL,如果内网有多个网段需要NAT,则需要在ACL都添加上
CPE(config)#access-list permit 10.0.0.0 0.0.0.255
//指定公网地址池:名称为mypool,起始和结束地址以及子网掩码
CPE(config)#ip nat pool mypool 131.107.0.1 131.107.0.3 netmask 255.255.255.0
//将公网地址池与ACL绑定
CPE(config)#ip nat inside source list pool mypool
CPE(config)#interface serial /
CPE(config-if)#ip nat outside //指定S0/0为NAT的外网接口
CPE(config-if)#ex
CPE(config)#interface fastEthernet /
CPE(config-if)#ip nat inside //指定f0/1为NAT的内网接口
CPE(config-if)#exit
CPE(config)#exit //2. 在路由器上查看NAT配置状态
CPE#show ip nat statistics //3. 查看NAT地址转换信息(要先从内网ping外网主机)
CPE#show ip nat translations //4. 清转转换表中的NAT条目
CPE#clear ip nat translations *

(3)验证:让pc0、pc1、pc2、pc3四台计算机同时ping 202.99.160.2。(只有3台能ping通,因为地址池只有3个公网IP可被拿来映射!)

2.3 配置PAT

(1)网络拓扑图(与前面例相同)

(2)端口地址转换(PAT):源端口的替换

  ①假设PC0和PC1都是使用1723端口访问外网的Server。如果数据包只做地址转换(即端口不转换)那么返回的数据目标地址都是131.107.0.1,目标端口都是1723路由器就没有办法确定这个数据包应发送给PC0还是PC1

  ②如果使用一个公网IP地址让很多内网计算机访问Internet,必须由路由器对访问Internet的数据包进行统一的源端口替换,将源端口替换成不同的端口出去(如4000、4001),这样路由器就可以根据返回的数据包目标端口确定数据包应该转发给哪一个内网计算机,这就是端口地址转换的原理

(3)在路由器上配置PAT

//1. 在CPE路由器上配置PAT
CPE>en
CPE#config t
//将内网需要PAT出去的网段添加到ACL中
CPE(config)#access-list permit 10.0.0.0 0.0.0.255
//添加公网IP地址池(名称为mypool,前后IP一样,即只有一个公网IP)。
CPE(config)#ip nat pool mypool 131.107.0.1 131.107.0.1 netmask 255.255.255.0
//将公网地址池与ACL绑定(注意overload参数会启用PAT)
CPE(config)#ip nat inside source list pool mypool overload
CPE(config)#interface serial /
CPE(config-if)#ip nat outside //指定NAT的外网接口
CPE(config-if)#ex
CPE(config)#interface fastEthernet /
CPE(config-if)#ip nat inside //指定NAT的内网接口
CPE(config-if)#ex
CPE(config)#ex
CPE#show ip nat statistics //查看NAT配置状态
Total translations: ( static, dynamic, extended)
Outside Interfaces: Serial0/
Inside Interfaces: FastEthernet0/
Hits: Misses:
Expired translations:
Dynamic mappings:
-- Inside Source
access-list pool mypool refCount
pool mypool: netmask 255.255.255.0
start 131.107.0.1 end 131.107.0.1
type generic, total addresses , allocated (%), misses
CPE#

(4)验证:使用内网中的任何一台主机都可以ping通internet上的server。

2.4 配置端口映射

(1)PAT存在的的问题通过配置PAT,只能实现内网主机使用公网IP地址访问internet,但internet的主机无法访问内网主机(如内网的WebServer),这时可以通过端口映射来解决这一问题

(2)网络拓扑图

(3)在路由器上配置端口映射

//1. 在CPE路由器上配置端口映射
CPE>en
CPE#conf t
//静态端口映射
CPE(config)#ip nat inside source static tcp 10.0.0.5 131.107.0.1
CPE(config)#ip nat inside source static tcp 10.0.0.6 131.107.0.1
CPE(config)#ip nat inside source static tcp 10.0.0.4 131.107.0.1
CPE(config)#ip nat inside source static tcp 10.0.0.4 131.107.0.1
CPE(config)#interface fastEthernet /
CPE(config-if)#ip nat inside //指定NAT的内网接口
CPE(config-if)#ex
CPE(config)#interface serial /
CPE(config-if)#ip nat outside //指定NAT的外网接口
CPE(config-if)#ex
CPE(config)#

(4)验证:通过internet上的PC5访问内网的WebServer、邮件服务器。

3. 在Windows上实现网络地址转换和端口映射

3.1 在Windows Server 2003上配置网络地址转换

(1)网络拓扑图

(2)实验环境

  ①Win2003_NATServer有两张网卡,其中连接内网的网卡(名称改为:inner)172.16.0.1/24(不用写网关)连接外网的网卡(名称改为:outer)192.168.1.4/24,默认网关:192.168.1.1

  ②内网中WebServer服务器:172.16.0.3/24,默认网关:172.16.0.1

(3)设置NAT

  ①“控制面板”→“管理工具”→“路由和远程访问”→“配置并启用路由和远程访问” →“自定义配置”→“NAT和基本防火墙”

  ②新增连接到内网网卡接口:在左侧树状节点中选择“NAT/基本防火墙”→“新增接口”→选择内网网卡,名称为“inner”→接口类型为“专用接口连接到专用网络”。

  ③新增连接到外网网卡的接口:“NAT/基本防火墙”→“新增接口”→选择外网网卡,名称为“outer”→接口类型为“专用接口连接到专用网络”。(至此,内网计算机可以访问internet的计算机了!)

  ④可以为“inner”接口或“outer”接口启用防火墙:如选中“inner”接口→“属性”→在“静态数据包筛选器”的“入站筛选器”或“出站筛选器”中进行设置。

  ⑤如果不要NAT转换而是采用路由器转发则需要在Router1路由器上添加到172.16.0.0/24的网段的下一段给192.168.1.4,否则内网数据包可以出去,但响应数据包没办法回来。而在NAT下内网计算机之所以能被转发,是因为内网IP到Router1时,都被转成了192.168.1.4,回来时通过NAT又被转成内网地址(172.16.0.x)了,所以数据包的收发都没问题。

(4)设置端口映射,让外网的计算机可以访问内网的WebServer服务器(172.16.0.3)

  ①在“NAT/基本防火墙”中选择“outer”接口→“属性”→“服务和端口”→“添加”,然后写上“传入端口”、“专用网址”和“传出端口”。(传入和传输是针对outer接口来讲的)

  ②在pc0上用浏览器访问172.16.0.3服务器上的网站。但要让interner上算机也可以访问内网的Web服务器,还需要在Router1将相应的端口映射到192.168.1.4(具体操作见前面的《端口映射》部分)。

3.2 在Windows XP上配置连接共享和端口映射

(1)网络拓扑图

(2)网络设置

  ①在宿主机上将WLAN网卡的连接共享给VMNet2网卡。(这相当宿主机成为一台简单的PAT/NAT服务器,将来自于内网的地址转发为外网IP,或者反之

  ②重新设置VMNet2网卡IP为10.0.0.1/24(注意:作为内网网关的网卡,本身不要写网关!

  ③将内网计算机的默认网关设置为10.0.0.1,这样就可以访问Internet了。

第11章 拾遗1:网络地址转换(NAT)和端口映射的更多相关文章

  1. 网络地址转换NAT与端口地址转换PAT

    网络地址转换NAT与端口地址转换PAT 一.网络地址转换 NAT (Network Address Translation) 1.1.网络地址转换简介 需要在专用网(内网)连接到因特网的路由器上安装 ...

  2. 2016.7.9 计算机网络复习要点第四章之虚拟专用网VPN和网络地址转换NAT

    1.虚拟专用网VPN (1)一个机构内,对于那些仅在本机构内部使用的计算机就可以由本季候自行分配其IP地址,让这些计算机使用仅在本机构有效的IP地址(本地地址),不需要申请全球唯一的IP地址(全球地址 ...

  3. 网络地址转换-NAT

    网络地址转换-NAT 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NAT组网和常用术语 私网:局域网内IP 公网:因特网的公网ip地址 NAT设备:就是讲私网地址转换为公网的 ...

  4. 【计算机网络】网络地址转换NAT

    网络地址转换NAT 要知道到每个IP使能的设备都需要一个IP地址.以一个家庭为例,假设当地的ISP已为该家庭分配过一块地址,但是后期家庭中的智能设备增加(智能手机.电脑等),这些都需要IP地址才可上网 ...

  5. Ubuntu搭建ssh连接(连接方式:桥接网卡、网络地址转换(NAT))

    操作系统:Ubuntu Server 16.04.2 SSH软件:Putty(远程连接工具,视本机操作系统选择对应版本的putty) --------------------------------- ...

  6. Windows Server 2012R2 网络地址转换NAT

    一.NAT概述 网络地址转换NAT(Network Address Translation)可以动态改变通过路由器的IP报文的内容(修改报文的源IP地址和/或目的IP地址).离开路由器的报文的源地址或 ...

  7. iptables nat及端口映射

    iptables nat及端口映射 发布: 2010-6-11 15:05 | 作者: admin | 来源: SF NetWork 门户网站 iptables 应用初探(nat+三层访问控制) ip ...

  8. VMware实现iptables NAT及端口映射

    1. 前言 本文只讲解实战应用,不会涉及原理讲解.如果想要了解iptables的工作流程或原理可参考如下博文. 具体操作是在PC机的VMware虚拟机上进行的,因此涉及的地址都是内网IP.在实际工作中 ...

  9. vbox NAT 设置端口映射(NAT+8080端口转发)

    VirtualBox的提供了四种网络接入模式,它们分别是: 1.NAT 网络地址转换模式(NAT,Network Address Translation) 2.Bridged Adapter 桥接模式 ...

随机推荐

  1. WebSocket-Over-HTTP Protocol

    转自:https://pushpin.org/docs/protocols/websocket-over-http/ WebSocket-Over-HTTP Protocol The WebSocke ...

  2. cocos2d-x游戏开发 跑酷(三) 人物跑动

    原创.转载请注明出处:http://blog.csdn.net/dawn_moon/article/details/21245881 好吧.最终要跑起来了. 要实现跑酷须要用到帧动画,什么是帧动画,不 ...

  3. Tower Defense Toolkit 学习

    代码太多,就不贴了.用到的基本已注释. 游戏中的数据存放在Resources/Database中.游戏运行时,通过Resources.Load加载 UI构成   对象池 using UnityEngi ...

  4. 为什么 PCB 生产时推荐出 Gerber 给工厂?

    为什么 PCB 生产时推荐出 Gerber 给工厂? 事情是这样的,有一天电工王工,画了一块 PCB,发给 PCB 板厂. 过了几天 PCB 回来了,一看不对呀,这里的丝印怎么少了,那里怎么多了几条线 ...

  5. AI三巨头获2018年图灵奖!

    ACM 宣布,2018 年图灵奖获得者是号称深度学习三巨头的 Yoshua Bengio, Yann LeCun 和 Geoffrey Hinton,得奖理由是:他们在概念和工程上取得的巨大突破,使得 ...

  6. ML(5)——神经网络3(随机初始化与梯度检验)

    随机初始化 在线性回归和逻辑回归中,使用梯度下降法之前,将θ设置为0向量,有时会习惯性的将神经网络中的权重全部初始化为0,然而这在神经网络中并不适用. 以简单的三层神经网络为例,将全部权重都设置为0, ...

  7. wpf揭秘

    2.4属性元素 以下c#和xaml是一致的 Rectangle r = new Rectangle(); r.Width = 40; r.Height = 40; r.Fill = Brushes.B ...

  8. storage 事件监听

    在公司的一次内部分享会上, 偶然知道了这个H5的新事件, 解决了我之前的一个bug. 事情是这样的, 第A网页上显示的数量的总和, 点击去是B页面, 可以进行管理, 增加或者删除, 当用户做了增删操作 ...

  9. centos7编译安装php7.2

    去官网下载php7.2安装包,选择一个结点下载:http://php.net/downloads.php 下载:wget -ivh http://cn.php.net/distributions/ph ...

  10. ASP.NET AJAX入门系列(2):使用ScriptManager控件

    ScriptManager控件包括在ASP.NET 2.0 AJAX Extensions中,它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问W ...