NAT基本介绍:

网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术。是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因非常easy,NAT不仅完美地解决了lP地址不足的问题,并且还可以有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时。私有地址被转换成合法的IP地址,一个局域网仅仅需使用少量IP地址(甚至是1个)就可以实现私有地址网络内全部计算机与Internet的通信需求。

  NAT将自己主动改动IP报文的源IP地址和目的IP地址。Ip地址校验则在NAT处理过程中自己主动完毕。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还须要同一时候对报文的数据部分进行改动。以匹配IP头中已经改动过的源IP地址。

否则,在报文数据都分别嵌入IP地址的应用程序就不能正常工作。

NAT的三种实现方式:

NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat 和port多路复用OverLoad。

  静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址仅仅转换为某个公有IP地址。借助于静态转换,能够实现外部网络对内部网络中某些特定设备(如server)的訪问。

  动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的。全部被授权訪问上Internet的私有IP地址可随机转换为不论什么指定的合法IP地址。也就是说,仅仅要指定哪些内部地址能够进行转换,以及用哪些合法地址作为外部地址时。就能够进行动态转换。动态转换能够使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。能够採用动态转换的方式。

  port多路复用(Port address Translation,PAT)是指改变外出数据包的源port并进行port转换,即port地址转换(PAT,Port Address Translation).採用port多路复用方式。内部网络的全部主机均可共享一个合法外部IP地址实现对Internet的訪问,从而能够最大限度地节约IP地址资源。

同一时候,又可隐藏网络内部的全部主机。有效避免来自internet的攻击。

因此。眼下网络中应用最多的就是port多路复用方式。

I. 静态地址转换的实现

如果内部局域网使用的lP地址段为192.168.0.1~192.168.0.254,路由器局域网端(即默认网关)的IP地址为192.168.0.1。子网掩码为255.255.255.0。

网络分配的合法IP地址范围为61.159.62.128~61.159.62.135,路由器在广域网中的IP地址为61.159.62.129,子网掩码为255.255.255.248可用于转换的IP地址范围为61.159.62.130~61.159.62.134。

要求将内部网址192.168.0.2~192.168.0.6分别转换为合法IP地址61.159.62.130~61.159.62.134。

>>>第一步,设置外部port。

  interface serial 0

  ip address 61.159.62.129 255.255.255.248

  ip nat outside

>>>第二步。设置内部port。

  interface ethernet 0

  ip address 192.168.0.1 255.255.255.0

  ip nat inside

>>>第三步,在内部本地与外部合法地址之间建立静态地址转换。

  ip nat inside source static 内部本地地址内部合法地址。

  演示样例:

  ip nat inside source static 192.168.0.2 61.159.62.130 //将内部网络地址192.168.0.2转换为合法IP地址61.159.62.130

  ip nat inside source static 192.168.0.3 61.159.62.131 //将内部网络地址192.168.0.3转换为合法IP地址61.159.62.131

  ip nat inside source static 192.168.0.4 61.159.62.132 //将内部网络地址192.168.0.4转换为合法IP地址61.159.62.132

  ip nat inside source static 192.168.0.5 61.159.62.133 //将内部网络地址192.168.0.5转换为合法IP地址61.159.62.133

  ip nat inside source static 192.168.0.6 61.159.62.134 //将内部网络地址192.168.0.6转换为合法IP地址61.159.62.134

  至此。静态地址转换配置完成。

II. 动态地址转换的实现

如果内部网络使用的IP地址段为172.16.100.1~172.16.100.254,路由器局域网port(即默认网关)的IP地址为172.16.100.1,子网掩码为255.255.255.0。网络分配的合法IP地址范围为61.159.62.128~61.159.62.191,路由器在广域网中的IP地址为61.159.62.129,子网掩码为255.255.255.192,可用于转换的IP地址范围为61.159.62.130~61.159.62.190。

要求将内部网址172.16.100.1~172.16.100.254动态转换为合法IP地址61.159.62.130~61.159.62.190。

>>>第一步,设置外部port。

  设置外部port命令的语法例如以下:

  ip nat outside

  演示样例:

  interface serial 0 //进入串行portserial 0

  ip address 61.159.62.129 255.255.255.192//将其IP地址指定为61.159.62.129,子网掩码为255.255.255.192

  ip nat outside //将串行口serial 0设置为外网port

  注意,能够定义多个外部port。

>>>第二步。设置内部port。

  设置内部接口命令的语法例如以下:

  ip nat inside

  演示样例:

  interface ethernet 0 //进入以太网portEthernet 0

  ip address 172.16.100.1 255.255.255.0 // 将其IP地址指定为172.16.100.1。子网掩码为255.255.255.0

  ip nat inside //将Ethernet 0 设置为内网port。

  注意。能够定义多个内部port。

>>>第三步,定义合法IP地址池。

  定义合法IP地址池命令的语法例如以下:

  ip nat pool 地址池名称起始IP地址 终止IP地址子网掩码

  当中。地址池名字能够随意设定。

  演示样例:

  ip nat pool chinanet 61.159.62.130 61.159.62.190 netmask 255.255.255.192 //指明地址缓冲池的名称为chinanet,IP地址范围为61.159.62.130~61.159.62.190。子网掩码为255.255.255.192。须要注意的是,即使掩码为255.255.255.0,也会由起始IP地址和终止IP地址对IP地址池进行限制。

  或ip nat pool test 61.159.62.130 61.159.62.190 prefix-length 26

  注意,假设有多个合法IP地址范围,能够分别加入。

比如,假设另一段合法IP地址范围为"211.82.216.1~211.82.216.254",那么。能够再通过下述命令将其加入至缓冲池中。

  ip nat pool cernet 211.82.216.1 211.82.216.254 netmask 255.255.255.0

  或

  ip nat pool test 211.82.216.1 211.82.216.254 prefix-length 24

>>>第四步。定义内部网络中同意訪问Internet的訪问列表。

  定义内部訪问列表命令的语法例如以下:

  access-list 标号 permit 源地址通配符(当中,标号为1~99之间的整数)

  access-list 1 permit 172.16.100.0 0.0.0.255 //同意訪问Internet的网段为172.16.100.0~172.16.100.255,反掩码为0.0.0.255。须要注意的是。在这里採用的是反掩码,而非子网掩码。反掩码与子网掩码的关系为:反掩码+子网掩码=255.255.255.255。

比如,子网掩码为255.255.0.0,则反掩码为0.0.255.255。子网掩码为255.0.0.0,则反掩码为0.255.255.255。子网掩码为255.252.0.0,则反掩码为0.3.255.255。子网掩码为255.255.255.192,则反掩码为0.0.0.63。

  另外,假设想将多个IP地址段转换为合法IP地址,能够加入多个訪问列表。比如,当欲将172.16.98.0~172.16.98.255和172.16.99.0~172.16.99.255转换为合法IP地址时,应当加入下述命令:

  access-list2 permit 172.16.98.0 0.0.0.255

  access-list3 permit 172.16.99.0 0.0.0.255

>>>第五步。实现网络地址转换。

  在全局设置模式下。将第四步由access-list指定的内部本地地址列表与第三步指定的合法IP地址池进行地址转换。

命令语法例如以下:

  ip nat inside source list 訪问列表标号 pool 内部合法地址池名字

  演示样例:

  ip nat inside source list 1 pool chinanet

  假设有多个内部訪问列表,能够一一加入,以实现网络地址转换。如

  ip nat inside source list 2 pool chinanet

  ip nat inside source list 3 pool chinanet

  假设有多个地址池,也能够一一加入,以添加合法地址池范围,如

  ip nat inside source list 1 pool cernet

  ip nat inside source list 2 pool cernet

  ip nat inside source list 3 pool cernet

  至此,动态地址转换设置完成。

III. port复用动态地址转换(PAT)

内部网络使用的IP地址段为10.100.100.1~10.100.100.254,路由器局域网port(即默认网关)的IP地址为10.100.100.1,子网掩码为255.255.255.0。

网络分配的合法IP地址范围为202.99.160.0~202.99.160.3。路由器广域网中的IP地址为202.99.160.1,子网掩码为255.255.255.252,可用于转换的IP地址为202.99.160.2。要求将内部网址10.100.100.1~10.100.100.254
转换为合法IP地址202.99.160.2。

>>>第一步,设置外部port。

  interface serial 0

  ip address 202.99.160.1 255.255.255.252

  ip nat outside

>>>第二步,设置内部port。

  interface ethernet 0

  ip address 10.100.100.1 255.255.255.0

  ip nat inside

>>>第三步,定义合法IP地址池。

  ip nat pool onlyone 202.99.160.2 202.99.160.2 netmask 255.255.255.252

  // 指明地址缓冲池的名称为onlyone,IP地址范围为202.99.160.2,子网掩码为255.255.255.252。因为本例仅仅有一个IP地址可用。所以,起始IP地址与终止IP地址均为202.99.160.2。

假设有多个IP地址,则应当分别键入起止的IP地址。

>>>第四步,定义内部訪问列。

  access-list 1 permit 10.100.100.0 0.0.0.255

  同意訪问Internetr的网段为10.100.100.0~10.100.100.255,子网掩码为255.255.255.0。须要注意的是,在这里子网掩码的顺序跟寻常所写的顺序相反,即0.0.0.255。

>>>第五步,设置复用动态地址转换。

  在全局设置模式下。设置在内部的本地地址与内部合法IP地址间建立复用动态地址转换。命令语法例如以下:

  ip nat inside source list訪问列表号pool内部合法地址池名字overload

  演示样例:

  ip nat inside source list1 pool onlyone overload //以port复用方式。将訪问列表1中的私有IP地址转换为onlyone IP地址池中定义的合法IP地址。

  注意:overload是复用动态地址转换的关键词。

  至此,port复用动态地址转换完毕。

  还能够这样写:

  ip nat inside source list 1 interface serial 0 overload

版权声明:本文博客原创文章,博客,未经同意,不得转载。

NAT( 网络地址转换) 实现的更多相关文章

  1. NAT 网络地址转换

    NAT  网络地址转换(Network Address Translation) NAT(Network Address Translation,网络地址转换)是1994年提出的. 属接入广域网(WA ...

  2. CCNA学习 NAT网络地址转换

    CCNA基础 NAT网络地址转换 在计算机网络中,网络地址转换(Network Address Translation,缩写为NAT),也叫做网络掩蔽或者IP掩蔽(IP masquerading),是 ...

  3. NAT网络地址转换模拟过程

    原理图,如图1 图1 以下为配置NAT网络地址转换的实验: eNSP模拟图,如图2 图2 Step1.给路由器的每个接口赋予一个地址,如图3,图4 图3 图4 AR1和AR2中添加路由表项,如图5,图 ...

  4. [译] NAT - 网络地址转换(2016)

    [译] NAT - 网络地址转换(2016) Published at 2019-02-17 | Last Update 译者序 本文翻译自 2016 年的一篇英文博客 NAT - Network A ...

  5. iptables做nat网络地址转换

    iptables做nat网络地址转换. 0. 权威文档 http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-6.html e文好的直接跳过本文 ...

  6. NAT网络地址转换技术

    NAT网络地址转换技术 目录 一.NAT概述 1.1.概述 1.2.NAT 的应用场景 二.NAT的类型及配置命令 2.1.静态NAT 2.2.动态NAT 2.3.Easy IP 2.4.NATP 2 ...

  7. NAT—网络地址转换

    参考链接:http://www.qingsword.com/qing/745.html 视频链接: 一.什么是NAT? NAT --- Network Address Translation  也就是 ...

  8. firewalld 防火墙 nat 网络地址转换

    目的:实现以下效果 一. 准备环境 @1 三台虚拟机 @2  client 端 ip  192.168.1.2      server端   两块网卡 , ip 分别是 192.168.1.1   和 ...

  9. NAT网络地址转换的原理--笔试答题版

    最早接触NAT是在做网络工程师的时候,NAT是做网络工程师必需会的知识点和技能,后来在面试运维的时候也经常被用到,在运维的某些知识点当中也会被引用到,如LVS当中. 为什么需要NAT(网络地址转换)? ...

  10. Nat网络地址转换

    Nat中的术语 -------------------------------------------------------------------------------------------- ...

随机推荐

  1. Swift供选链接

    函数是运行特定任务的代码自包括块. 给定一个函数名称标识, 当运行其任务时就能够用这个标识来进行"调用". Swift的统一的功能语法足够灵活来表达不论什么东西,不管是甚至没有參数 ...

  2. hdu5176(并查集)

    传送门:The Experience of Love 题意:一个叫Gorwin的女孩和一个叫Vivin的男孩是一对情侣.他们来到一个叫爱情的国家,这个国家由N个城市组成而且只有N−1条小道(像一棵树) ...

  3. 苹果iOS手机系统诊断功能是后门吗?

    7月20日,美国知名苹果iOS手机系统侦破专家扎德尔斯基在2014年世界黑客大会(HOPE/X)用幻灯片讲演揭露了苹果手机存在系统级"后门". 为此,7月23日.苹果公司马上做出回 ...

  4. HDU 5071 Chat

    题意: CLJ找了很多妹子-  (题目好没节操-)  对于CLJ和妹子的聊天对话框  有一下几种操作: add  加一个妹子在聊天窗队列末尾  假设这个妹子已经在队列中则add失败 close  关掉 ...

  5. Codeforces Round #FF 446 C. DZY Loves Fibonacci Numbers

    參考:http://www.cnblogs.com/chanme/p/3843859.html 然后我看到在别人的AC的方法里还有这么一种神方法,他预先设定了一个阈值K,当当前的更新操作数j<K ...

  6. LeetCode :: Binary Tree Zigzag Level Order Traversal [tree, BFS]

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  7. CMS垃圾回收机制

    详解CMS垃圾回收机制   原创不易,未经允许,不得转载~~~ 什么是CMS? Concurrent Mark Sweep. 看名字就知道,CMS是一款并发.使用标记-清除算法的gc. CMS是针对老 ...

  8. 用Javascript评估用户输入密码的强度(Knockout版)

    原文:用Javascript评估用户输入密码的强度(Knockout版) 早上看到博友6点多发的一篇关于密码强度的文章(连接),甚是感动(周末大早上还来发文). 我们来看看如果使用Knockout更简 ...

  9. flex 错误信息类型及解决方法

    总结一些经常出现的异常信息及处理方法(会一直持续更新): 异常1: 写actionscript3.0时遇到了错误.报错为:Error #2044: 未处理的 ioError:. text=Error ...

  10. The OpenGL pipeline

    1. Vertex Data 2. Vertex Shader 3. Tessellation Control Shader 4.Tessellation evaluation Shader 5. G ...