王朝百科
分享
 
 
 

网络地址转换

王朝百科·作者佚名  2010-02-01  
宽屏版  字体: |||超大  

网络地址转换

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

基本网络地址转换(Basic NAT)是一种将一组 IP 地址映射到另一组 IP 地址的技术,这对终端用户来说是透明的。网络地址端口转换(NAPT)是一种将群体网络地址及其对应 TCP/UDP 端口翻译成单个网络地址及其对应 TCP/UDP 端口的方法。这两种操作,即传统 NAT 提供了一种机制,将只有私有地址的内部领域连接到有全球唯一注册地址的外部领域。

由于保密原因或 IP 在外网不合法,网络的内部 IP 地址无法在外部网络使用,就产生了 IP 地址转换的需求。局域网络以外的网络的拓扑结构能以多种方式改变:公司更换供应商;重组公司主干网络或者供应商合并或散伙。一旦外部拓扑结构改变,本地网络的地址分配也必须改变以反映外部变化。通过将这些变化集中在单个地址转换路由器中,局域网用户并不需知道这些改变。基本地址转换允许主机从内部网络中透明地访问外部网络,并容许从外部访问选定的本地主机。对于一个机构其网络主要用于内部服务而仅有时用于外部访问, 这种配置是很适用的。

使用这种转换方法是有一定限制的,即会话的请求及响应的发送必须经过相同的 NAT 路由器。在边界路由器上安装 NAT 能确保这一过程,边界路由器在该域中是唯一的,而所有经过的 IP 包要么来自于此域要么到达此域。此外还可使用多重 NAT 设备确保这一过程。

NAT 解决方法有其不足之处,仅以增强的网络状态作为补充,而忽略了 IP 地址端对端的重要性。结果是,由于存在 NAT 设备,由 IPSec 保证的端对端 IP 网络级安全无法应用到终端主机。此方法的优势是不需要改变主机或路由器就可以直接安装 NAT 。

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的攻击。因此,目前网络中应用最多的就是端口多路复用方式。

3.网络地址转换(NAT)的实现

在配置网络地址转换的过程之前,首先必须搞清楚内部接口和外部接口,以及在哪个外部接口上启用NAT。通常情况下,连接到用户内部网络的接口是NAT内部接口,而连接到外部网络(如Internet)的接口是NAT外部接口。

1).静态地址转换的实现

假设内部局域网使用的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。

第一步,设置外部端口。

interface serial 0

ip address 61.159.62.129 255.255.255.248

ip nat outside

第二步,设置内部端口。

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

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

2).动态地址转换的实现

假设内部网络使用的IP地址段为172.16.100.1~172.16.100.254,路由器局域网端口(即默认网关)的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。

第一步,设置外部端口。

设置外部端口命令的语法如下:

ip nat outside

示例:

interface serial 0 //进入串行端口serial 0

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

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

注意,可以定义多个外部端口。

第二步,设置内部端口。

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

ip nat inside

示例:

interface ethernet 0 //进入以太网端口Ethernet 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 设置为内网端口。

注意,可以定义多个内部端口。

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

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

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

其中,地址池名字可以任意设定。

示例:

ip nat pool net 61.159.62.130 61.159.62.190 netmask 255.255.255.192 //指明地址缓冲池的名称为net,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-list2 permit 172.16.99.0~0.0.0.255

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

在全局设置模式下,将由access-list指定的内部本地地址与指定的内部合法地址池进行地址转换。命令语法如下:

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

示例:

ip nat inside source list 1 pool chinanet

如果有多个内部访问列表,可以一一添加,以实现网络地址转换,如

ip nat insde source list 2 pool chinanet

ip nat insde source list 2 pool chinanet

如果有多个地址池,也可以一一添加,以增加合法地址池范围,如

ip nat insde source list 2 pool cernet

ip nat insde source list 2 pool cernet

ip nat insde source list 2 pool cernet

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

3).端口复用动态地址转换(PAT)

内部网络使用的IP地址段为10.100.100.1~10.100.100.254,路由器局域网端口(即默认网关)的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。

第一步,设置外部端口。

interface serial 0

ip address 202.99.160.1 255.255.255.252

in nat outside

第二步,设置内部端口。

interface ethernet 0

ip address 10.100.100.1 255.255.255.0

ip nat inside

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

in 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.255.255.255。

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

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

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

示例:

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

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

至此,端口复用动态地址转换完成。

协议结构

NAT 是一个过程,而不是一个结构化协议。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有