精华内容
下载资源
问答
  • 工作中遇到一起防火墙双向地址映射的故障,对防火墙的工作原理和目标地址转换、 源地址转换有了进一步的了解,看到此文章,觉得茅塞顿开,记录于此。 结果说在前面 网络结构非常简单:外网-防火墙-内网。内网中架有...

    工作中遇到一起防火墙双向地址映射的故障,对防火墙的工作原理和目标地址转换、 源地址转换有了进一步的了解,看到此文章,觉得茅塞顿开,记录于此。

    结果说在前面
    网络结构非常简单:外网-防火墙-内网。内网中架有网站,在外网使用域名访问。 内网中机器需要上外网,也需要用域名互访。 在这种情况下,地址转换规则应当这样配:

    外网访问内网,只需要做目标地址转换,不需要做源地址转换。

    内网通过域名访问内网,除了做目标地址转换,还必须做源地址转换。

    上面第一条有一种“例外”情况,就是网关配置错误的情况,比如我们遇到的: 内网6有 2 块网卡,都配置了同一网段的内网地址,并且每块网卡都配置了网关。 由于是同一网段,所以两个网关是一样的。 在这种情况下,外网访问也必须做源地址转换, 否则内网能收到请求,但处理结果无法返回外网,外网看到的结果是没有回应。

    防火墙数据包转换发送原理
    为什么会这样?这要从防火墙的原理说起。 上面的外网访问内网,正常处理过程应该是这样的:

    防火墙收到外网访问请求数据包,格式中包含【防火墙外网IP 外网用户IP】

    防火墙进行目标地址转换,数据包变成【内网IP 外网用户IP】

    内网服务器收到请求,进行处理,返回结果数据包【外网用户IP 内网IP】, 由于目标地址是外网IP,所有经过路由,此数据包被发向网关(防火墙)

    针对返回数据包,防火墙做目标地址转换的反操作, 数据包变成【外网用户IP 防火墙外网IP】

    数据包发回请求用户。

    刚才说到的“例外”情况,问题就出在步骤 3,内网服务器返回结果数据包中, 内网IP 不是防火墙指向的那个 IP,而是这太内网服务器的另一个 IP 地址, 也就是说内网服务器通过网卡1接受了请求,却从网卡2发送返回数据。 这样的数据包到了防火墙之后,目标地址转换的反操作会失败(内网IP 不一致), 所以数据依然会通过防火墙发给用户,但却是一个新的 TCP 会话/连接, 无法和原先的用户请求包对应。 结果就是新的数据包到了用户那里,不知道是给谁的, 而用户原先发送的请求,也一直“收不到”回应数据包。 外在表现就是用户看到请求发送成功,却没有回应。

    在这种情况下,如果同时做了源地址转换是能够通的,处理过程如下:

    防火墙收到外网访问请求数据包,格式中包含【防火墙外网IP 外网用户IP】

    防火墙进行目标地址转换,数据包变成【内网IP 外网用户IP】, 进行源地址转换,数据包变成【内网IP 防火墙/网关IP】

    内网服务器收到请求,进行处理,返回结果数据包【防火墙/网关IP 内网IP】, 由于目标地址仍然是防火墙/网关IP,所以防火墙能够找到相应的连接, 会接受数据包并进行处理。

    针对返回数据包,防火墙 做源地址转换的反操作,数据包变成【外网用户IP 内网IP】, 做目标地址转换的反操作, 数据包变成【外网用户IP 防火墙外网IP】®

    数据包发回请求用户。

    可以看到,即使®操作失败,由于防火墙已经将内网服务器返回数据包和 防火墙接收的外网用户请求连接成功对应, 结果数据包的目标地址也成功转换成了外网用户IP, 所以数据能够成功发回请求用户,并和用户请求会话/连接相对应。

    从另外一个角度看,外网访问做双向地址转换虽然可行,但有一个缺点, 就是数据包到达内网服务器时,外网用户IP 被转换成了防火墙/网关IP, 这样内网中的应用程序就无法获取外网用户的真实IP了, 只能看到请求来自防火墙/网关IP。

    内网通过域名访问内网
    上面的都理解之后,内网通过域名访问内网为什么必须要做双向转换就清楚了。 问题同样出在接受请求的服务器处理完,发送返回数据包时。

    内网1 通过域名访问内网6,在没有做源地址转换时的情形:

    由于是通过域名访问,所以请求数据通过防火墙转发给内网6, 用户IP是内网地址(这是关键)

    内网6处理完毕发送结果数据包,返回数据包的目标地址就是内网1的地址 由于同在一个子网内,数据包会通过交换机直接发向内网1,不过防火墙

    问题产生了,在内网1 上,请求数据直接发向防火墙,返回数据直接来自内网6, 不对应,又是一宗没有回应数据包的情形。

    如果同时做了源地址转换,问题就能够解决。因为内网1 的请求数据在通过防火墙时, 用户地址(内网1 IP)会被转换成防火墙/网关IP, 返回数据包也就会发往防火墙/网关IP,再被防火墙转换发回 内网1, 不存在内网1 和内网6 的直接对话, TCP 数据包也能对应上,访问就没有问题了。

    展开全文
  • 华为NAT(地址转换技术)

    万次阅读 多人点赞 2020-09-06 16:45:44
    NAT属于接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法公网IP地址的IP地址转换技术,它被广泛应用于各种类型 Internet接入方式和各种类型的网络中。 2、NAT类型 (1)静态----NAT(static NAT):内部...

    一、什么是NAT

    1、NAT–Network Address Translation:网络地址转换

    NAT属于接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法公网IP地址的IP地址转换技术,它被广泛应用于各种类型 Internet接入方式和各种类型的网络中。

    2、NAT类型

    (1)静态----NAT(static NAT):内部网络中的单个主机IP地址被永久映射成外部网络中的某个合法的公网IP地址。
    (2)动态----NAT(pooled NAT):在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。
    (3)端口复用----PAT(Port address Translation):把多个内部地址映射到外部网络的一个IP地址的不同端口上。
    (4)NAT server 。

    3、NAT价值(作用)

    NAT地址转化技术的出现的重要价值主要体现在改善网络安全和解决IPV4地址不够用。

    (1)解决 IPV4地址不足问题:这个主要通过动态NAT及Pat来解决—其中PAT技术可以借助一个合法的公网IP地址使成百上千个内网用户达到访问外网的目标(如果不是PAT技术,IPV4那40多亿地址根本不能够满足地球人人手一个可用的 IPV4地址使用,更别提现在在物联网时代每个物品都会有自己的 IP地址)

    (2)安全:通过地址转换将暴露的在公网的重要或核心服务器的地址映射出去,使映射的代理地址来应对攻击,相当于给受保护的地址披上了一层伪装。这是保护和隐藏重要服务器及核心设备地址不会轻易收到网络攻击的重要手段。
    (3)控制:控制内网主机访问外网,同时也可以控制外网主机访问内网,解决了内网和外网不能互通的问题。

    二、NAT类型

    (一)静态NAT

    1、静态NAT

    (1)工作: NAT转换时,内部网络主机IP地址与公网IP是一对一静态绑定的,每个公网IP只能给固定的内网主机转换使用;静态NAT转换时只转换IP地址,不涉及端口号。
    (2)配置:全局配置+接口挂接

    ① 在NAT路由器配置好静态NAT转化映射表。
    ② 在公网接口启用静态NAT配置。

    2、静态NAPT

    (1)工作:静态NAPT转换时,内部网络主机IP+端口号与公网IP+端口号进行一对一静态绑定的,每个公网IP只能给固定的内网主机转换使用;
    (2)配置:

    ① 在NAT路由器配置好静态NAPT转化映射表。
    ② 在公网接口启用静态NAT配置。

    (二)动态NAT

    1、Basic NAT

    (1)工作:
    Basic NAT工作时,内部网络主机IP地址在预先设置好的公网IP地址池中的公网IP地址动态建立一对一映射。
    Basic NAT工作时,在同一时刻的公网地址只能被一个私网地址所映射。
    Basic NAT转换时只转换IP地址,不涉及端口号。
    (2)配置:
    ① 在NAT路由器配置动态公网地址池
    ② 用ACL匹配待转换的内网地址
    ③ 在外网出口配置动态NAT,实现公网地址池和内网地址的挂接,只转换IP地址不进行端口转化。

    2、动态NAPT

    (1)工作: NAT转换时,内部网络主机IP+端口号与公网IP+端口号实现动态映射,实现多个内网共用一个公网IP地址访问外网。
    (2)配置:
    ① 在NAT路由器配置动态公网地址池
    ② 用ACL匹配待转换的内网地址
    ③ 在外网出口配置动态NAPT,实现公网地址池和内网地址的挂接(默认的动态NAT是动态PAT)

    3、Easy IP

    (1)工作:Easy IP是动态NAPT的一个特例
    Easy IP自动将本设备的外网接口IP+端口和内网IP+端口进行映射;Easy IP无需创建公网地址池。
    (2)配置:
    ① 在NAT路由器通过ACL匹配待转化的内网地址
    ② 在公网接口启用挂接匹配到的内网ACL。

    (三)NAT Server(端口映射)

    NAT Server依然是公网IP+端口与内网IP+端口的映射;目的是解决公网IP访问内网IP的问题。

    (1)工作:NAT Server依然属于端口和IP地址的转换
    (2)配置:
    ① 在对应公网接口设置好NAT Server 实现内网IP+端口与公网IP+端口的映射

    三、拓扑

    在这里插入图片描述
    如图配置拓扑、接口地址。
    底层用任意协议都可以。(OPSF、IS-IS、BGP、静态路由等)

    四、配置实验

    1、Easy IP(动态NAPT的一种)部署

    在GW-1出接口部署Easy使得内网192.168.1.0网段正常访问外网

    [AR-3]acl 2000
    [AR-3-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255//使用基本ACL匹配需要进行NAT转换的内网成员为192.168.1.0网段
    [AR-3-acl-basic-2000]quit
    [AR-3]int g0/0/1
    [AR-3-GigabitEthernet0/0/1]nat outbound 2000 //在网关路由器连接外网出口做NAPT,通过ACL2000匹配到的内网数据从本接口发出时替换源IP和源端口为本接口地址信息
    

    [AR-5]ping 12.1.1.2
    在这里插入图片描述

    2、静态NAT

    在GW-2部署静态NAT使得公网成员可以访问内部服务器AR-7的所有端口

    [AR-4]nat static global 24.1.1.102 inside 192.168.3.7 netmask 255.255.255.255
    //系统视图配置将内网192.168.3.7地址转为公网地址24.1.1.102访问外网,或者外部网络一24.1.1.102来访问内部主机192.168.3.7
    [AR-4]int g0/0/1	
    [AR-4-GigabitEthernet0/0/1]nat static enable 
    //网关路由器连接外部网络的出口开启静态nat映射功能,所有在全局做了映射的数据从本接口发出时都会进行IP地址的转化
    

    [AR-5]ping 24.1.1.102
    在这里插入图片描述
    3、NAT Server

    在GW-2部署NAT Server使得公网成员可以访问内部服务器AR-8开放的telnet服务

    [AR-4]int g0/0/1	
    [AR-4-GigabitEthernet0/0/1]nat server protocol tcp global 24.1.1.101 5000 inside 192.168.3.8 23
    //将内网192.168.3.8的基于TCP协议的23端口映射到公网地址24.1.1.101和5000端口
    

    telnet 24.1.1.101
    在这里插入图片描述

    4、在NAT设备部署[Huawei]nat alg all enable 使得ftp,dns等应用数据可以正常对外发布

    [AR-3]nat alg all enable 
    
    [AR-4]nat alg all enable 
    

    5、ACL安全

    在GW-2部署ACL放行FTP和Telnet服务外,其他数据全部禁止

    [AR-4]acl 3000
    [AR-4-acl-adv-3000]rule 5 permit tcp destination 24.1.1.100 0 destination-port eq telnet 
    [AR-4-acl-adv-3000]rule 10 permit tcp destination 24.1.1.101 0 destination-port eq 5000 
    [AR-4-acl-adv-3000]rule 15 permit tcp destination 24.1.1.100 0 destination-port eq ftp-data 
    [AR-4-acl-adv-3000]rule 1000 deny ip
    

    6、静态 NAPT 是指“内部网络主机的 IP+协议号+端口号”同“公网 IP+协议号+端口号”是一对一静态绑定的,静态 NAPT 中的公网 IP 可以为多个私网 IP 使用

    [AR-3]nat static protocol udp global 100.1.1.1 80 inside 192.168.1.0 8080 netmask 255.255.255.0
    

    7、动态NAT需要建立地址池

    [AR-3]nat address-group 1 100.1.1.80 100.1.1.83  
    [AR-3]acl 2000
    [AR-3-acl-basic-2000]rule 5 permit source 10.0.0.0 0.0.0.255
    [AR-3-acl-basic-2000]q
    [AR-3]interface gigabitethernet 0/0/1
    [AR-3-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
    

    五、实验测试

    开启AR-7和AR-8的FTP服务,远程登录认证,创建测试用户(3级用户,FTP目录ybd)

    AR-7

    [AR-7]aaa                                      //进入设备的本地AAA配置
    [AR-7-aaa]local-user hcie password cipher hcie //创建本地用户,名称为hcie,密码hcie ,cipher表示密码在本地加密保存
    [AR-7-aaa]
    [AR-7-aaa]local-user hcie privilege level 3  //设置hcie用户等级为3级用户(默认是管理员用户,拥有所有权限)
    [AR-7-aaa]
    [AR-7-aaa]local-user hcie ftp-directory ybd //设置hcia用户通过FTP登录上来所在的目录为“ybd:”
    [AR-7-aaa]quit
    [AR-7]ftp server enable                        //开启本设备的FTP服务
    [AR-7]user-interface vty 0 4                  //进入到虚拟进程0 到4这5个虚拟进程下
    [AR-7-ui-vty0-4]authentication-mode aaa        //设置远程登录的方式为AAA认证(采用刚才本地的AAA用户来验证远程登录--telnet)
    

    AR-8

    [AR-8]aaa
    [AR-8-aaa]local-user hcie password cipher hcie
    [AR-8-aaa]
    [AR-8-aaa]local-user hcie privilege level 3
    [AR-8-aaa]
    [AR-8-aaa]local-user hcie ftp-directory ybd
    [AR-8-aaa]
    [AR-8-aaa]quit
    [AR-8]ftp server enable 
    [AR-8]user-interface vty  0  4
    [AR-8-ui-vty0-4]authentication-mode aaa
    

    1、NAT static测试

    (1)在AR-5目的公网地址24.1.1.102 默认端口Telnet登录AR-7,save ar-7.cfg;
    在这里插入图片描述
    在这里插入图片描述

    2、NAT Server测试

    (1)在AR-5目的公网地址24.1.1.101 端口5000 Telnet登录到AR-8 save ar-8.cfg

    在这里插入图片描述


    在这里插入图片描述

    我是艺博东!欢迎你和我一起讨论,我们下期见。

    展开全文
  • NAT(地址转换技术)详解

    万次阅读 多人点赞 2018-03-17 16:31:35
    ip地址基础知识 NAT技术的工作原理和特点 静态NAT 动态NAT NAT重载(经常应用到实际中) NAT技术的优缺点 优点 缺点 NAT穿越技术 应用层网关(ALG) ALG的实际应用 NAT技术的未来 参考文献 NAT产生背景...

    目录

    NAT产生背景

    今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣。他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需。企业利用互联网发布信息,传递资料和订单,提供技术支持,完成日常办公。然而,Internet在给亿万用户带来便利的同时,自身却面临一个致命的问题:构建这个无所不能的Internet的基础IPv4协议已经不能再提供新的网络地址了。

    2011年2月3日中国农历新年, IANA对外宣布:IPv4地址空间最后5个地址块已经被分配给下属的5个地区委员会。2011年4月15日,亚太区委员会APNIC对外宣布,除了个别保留地址外,本区域所有的IPv4地址基本耗尽。一时之间,IPv4地址作为一种濒危资源身价陡增,各大网络公司出巨资收购剩余的空闲地址。其实,IPv4地址不足问题已不是新问题,早在20年以前,IPv4地址即将耗尽的问题就已经摆在Internet先驱们面前。这不禁让我们想去了解,是什么技术使这一危机延缓了尽20年。

    要找到问题的答案,让我们先来简略回顾一下IPv4协议。

    IPv4即网际网协议第4版——Internet Protocol Version 4的缩写。IPv4定义一个跨越异种网络互连的超级网,它为每个网际网的节点分配全球唯一IP地址。如果我们把Internet比作一个邮政系统,那么IP地址的作用就等同于包含城市、街区、门牌编号在内的完整地址。IPv4使用32bits整数表达一个地址,地址最大范围就是232 约为43亿。以IP创始时期可被联网的设备来看,这样的一个空间已经很大,很难被短时间用完。然而,事实远远超出人们的设想,计算机网络在此后的几十年里迅速壮大,网络终端数量呈爆炸性增长。

    更为糟糕的是,为了路由和管理方便,43亿的地址空间被按照不同前缀长度划分为A,B,C,D类地址网络和保留地址。其中,A类网络地址127段,每段包括主机地址约1678万个。B类网络地址16384段,每段包括65536个主机地址。
    ANA向超大型企业/组织分配A类网络地址,一次一段。向中型企业或教育机构分配B类网络地址,一次一段。这样一种分配策略使得IP地址浪费很严重,很多被分配出去的地址没有真实被利用,地址消耗很快。以至于二十世纪90年代初,网络专家们意识到,这样大手大脚下去,IPv4地址很快就要耗光了。于是,人们开始考虑IPv4的替代方案,同时采取一系列的措施来减缓IPv4地址的消耗。正是在这样一个背景之下,本期的主角闪亮登场,它就是网络地址转换——NAT。

    NAT是一项神奇的技术,说它神奇在于它的出现几乎使IPv4起死回生。在IPv4已经被认为行将结束历史使命之后近20年时间里,人们几乎忘了IPv4的地址空间即将耗尽这样一个事实——在新技术日新月异的时代,20年可算一段漫长的历史。更不用说,在NAT产生以后,网络终端的数量呈加速上升趋势,对IP地址的需求剧烈增加。此足见NAT技术之成功,影响之深远。

    说它神奇,更因为NAT给IP网络模型带来了深远影响,其身影遍布网络每个角落。根据一份最近的研究报告,70%的P2P用户位于NAT网关以内。因为P2P主要运行在终端用户的个人电脑之上,这个数字意味着大多数PC通过NAT网关连接到Internet。如果加上2G和3G方式联网的智能手机等移动终端,在NAT网关之后的用户远远超过这个比例。

    ip地址基础知识

    同学你现在做两个操作

    • 打开你的命令行输入ipconfig查询你的Ip地址
    • 打开百度,输入Ip查询,查询你的ip地址

    你是不是发现了一件很神奇的事情,这两个地址是不一样的。但是我们又经常说每个主机只有一个ip,这个ip是他的身份标识。这完全矛盾啊。这就引出了我们今天要讲的NAT技术
    其实并不矛盾。这里我们要引入公网ip和私网ip这两个概念,关于这个问题的解读。大家可以参看我的博文。为什么百度查到的ip和ipconfig查到的不一样

    NAT技术的工作原理和特点

    NAT名字很准确,网络地址转换,就是替换IP报文头部的地址信息。NAT通常部署在一个组织的网络出口位置,通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力。那么,什么是内部网络IP地址?

    RFC1918规定了三个保留地址段落:10.0.0.0-10.255.255.255;172.16.0.0-172.31.255.255;192.168.0.0-192.168.255.255。这三个范围分别处于A,B,C类的地址段,不向特定的用户分配,被IANA作为私有地址保留。这些地址可以在任何组织或企业内部使用,和其他Internet地址的区别就是,仅能在内部使用,不能作为全球路由地址。这就是说,出了组织的管理范围这些地址就不再有意义,无论是作为源地址,还是目的地址。对于一个封闭的组织,如果其网络不连接到Internet,就可以使用这些地址而不用向IANA提出申请,而在内部的路由管理和报文传递方式与其他网络没有差异。

    对于有Internet访问需求而内部又使用私有地址的网络,就要在组织的出口位置部署NAT网关,在报文离开私网进入Internet时,将源IP替换为公网地址,通常是出口设备的接口地址。一个对外的访问请求在到达目标以后,表现为由本组织出口设备发起,因此被请求的服务端可将响应由Internet发回出口网关。出口网关再将目的地址替换为私网的源主机地址,发回内部。这样一次由私网主机向公网服务端的请求和响应就在通信两端均无感知的情况下完成了。依据这种模型,数量庞大的内网主机就不再需要公有IP地址了。
    NAT的转换示意图如下所示
    这里写图片描述
    我们一般使用私网ip作为局域网内部的主机标识,使用公网ip作为互联网上通信的标识
    在整个NAT的转换中,最关键的流程有以下几点

    • 网络被分为私网和公网两个部分,NAT网关设置在私网到公网的路由出口位置,双向流量必须都要经过NAT网关
    • 网络访问只能先由私网侧发起,公网无法主动访问私网主机;
    • NAT网关在两个访问方向上完成两次地址的转换或翻译,出方向做源信息替换,入方向做目的信息替换;
    • NAT网关的存在对通信双方是保持透明的;
    • NAT网关为了实现双向翻译的功能,需要维护一张关联表,把会话的信息保存下来。

    静态NAT

    如果一个内部主机唯一占用一个公网IP,这种方式被称为一对一模型。此种方式下,转换上层协议就是不必要的,因为一个公网IP就能唯一对应一个内部主机。显然,这种方式对节约公网IP没有太大意义,主要是为了实现一些特殊的组网需求。比如用户希望隐藏内部主机的真实IP,或者实现两个IP地址重叠网络的通信。
    这里写图片描述

    动态NAT

    它能够将未注册的IP地址映射到注册IP地址池中的一个地址。不像使用静态NAT那样,你无需静态地配置路由器,使其将每个内部地址映射到一个外部地址,但必须有足够的公有因特网IP地址,让连接到因特网的主机都能够同时发送和接收分组

    这里写图片描述

    NAT重载(经常应用到实际中)

    这是最常用的NAT类型。NAT重载也是动态NAT,它利用源端口将多个私网ip地址映射到一个公网ip地址(多对一)。那么,它的独特之处何在呢?它也被称为端口地址特换(PAT)。通过使用PAT(NAT重载),只需使用一个公网ip地址,就可将数千名用户连接到因特网。其核心之处就在于利用端口号实现公网和私网的转换。
    面对私网内部数量庞大的主机,如果NAT只进行IP地址的简单替换,就会产生一个问题:当有多个内部主机去访问同一个服务器时,从返回的信息不足以区分响应应该转发到哪个内部主机。此时,需要NAT设备根据传输层信息或其他上层协议去区分不同的会话,并且可能要对上层协议的标识进行转换,比如TCP或UDP端口号。这样NAT网关就可以将不同的内部连接访问映射到同一公网IP的不同传输层端口,通过这种方式实现公网IP的复用和解复用。这种方式也被称为端口转换PAT、NAPT或IP伪装,但更多时候直接被称为NAT,因为它是最典型的一种应用模式。
    这里写图片描述
    举个例子,客户端172.18.250.6和百度服务器202.108.22.5通信,172.18.250.6发送数据时,先转换为219.155.6.240:1723(任意>1024的随机端口),然后再利用这个身份发送数据给百度服务器,然后百度服务器回应数据并发送给219.155.6.240:1723,NAT网关检查自己的关联表,意识到这是自己地私网中172.18.250.6的数据包,然后把这个数据发送给客户端

    也就是说,我们利用端口号的唯一性实现了公网ip转换为私网ip的这一步。PAT(NAT重载)能够使用传输层端口号来标识主机,因此,从理论上说,最多可让大约65000台主机共用一个公有IP地址

    NAT技术的优缺点

    优点

    • 节省合法的公有ip地址
    • 地址重叠时,提供 解决办法
    • 网络发生变化时,避免重新编址(这个问题具有亲身体会,原本所在的实习单位搬迁,我们搬到了新的住处,网络环境发生了一些变化,但是由于nat技术的特点,我们局域网的地址并没有发生改变,我们依然使用着最初的编址方案)

      NAT对我们来说最大的贡献就是帮助我们节省了大量的ip资源

    缺点

    在介绍NAT的诸多缺点之前,我们先简单介绍下什么是IP的端到端通信:
    IP协议的一个重要贡献是把世界变得平等。在理论上,具有IP地址的每个站点在协议层面有相当的获取服务和提供服务的能力,不同的IP地址之间没有差异。人们熟知的服务器和客户机实际是在应用协议层上的角色区分,而在网络层和传输层没有差异。一个具有IP地址的主机既可以是客户机,也可以是服务器,大部分情况下,既是客户机,也是服务器。端到端对等看起来是很平常的事情,而意义并不寻常。但在以往的技术中,很多协议体系下的网络限定了终端的能力。正是IP的这个开放性,使得TCP/IP协议族可以提供丰富的功能,为应用实现提供了广阔平台。因为所有的IP主机都可以服务器的形式出现,所以通讯设计可以更加灵活。使用UNIX/LINUX的系统充分利用了这个特性,使得任何一个主机都可以建立自己的HTTP、SMTP、POP3、DNS、DHCP等服务。与此同时,很多应用也是把客户端和服务器的角色组合起来完成功能。例如在VoIP应用中,用户端向注册服务器登录自己的IP地址和端口信息过程中,主机是客户端;而在呼叫到达时,呼叫处理服务器向用户端发送呼叫请求时,用户端实际工作在服务器模式下。在语音媒体流信道建立过程后,通讯双向发送语音数据,发送端是客户模式,接收端是服务器模式。而在P2P的应用中,一个用户的主机既为下载的客户,同时也向其他客户提供数据,是一种C/S混合的模型。上层应用之所以能这样设计,是因为IP协议栈定义了这样的能力。试想一下,如果IP提供的能力不对等,那么每个通信会话都只能是单方向发起的,这会极大限制通信的能力。细心的读者会发现,前面介绍NAT的一个特性正是这样一种限制。没错,NAT最大的弊端正在于此——破坏了IP端到端通信的能力。
    NAT的弊端
    首先,NAT使IP会话的保持时效变短。因为一个会话建立后会在NAT设备上建立一个关联表,在会话静默的这段时间,NAT网关会进行老化操作。这是任何一个NAT网关必须做的事情,因为IP和端口资源有限,通信的需求无限,所以必须在会话结束后回收资源。通常TCP会话通过协商的方式主动关闭连接,NAT网关可以跟踪这些报文,但总是存在例外的情况,要依赖自己的定时器去回收资源。而基于UDP的通信协议很难确定何时通信结束,所以NAT网关主要依赖超时机制回收外部端口。通过定时器老化回收会带来一个问题,如果应用需要维持连接的时间大于NAT网关的设置,通信就会意外中断。因为网关回收相关转换表资源以后,新的数据到达时就找不到相关的转换信息,必须建立新的连接。当这个新数据是由公网侧向私网侧发送时,就会发生无法触发新连接建立,也不能通知到私网侧的主机去重建连接的情况。这时候通信就会中断,不能自动恢复。即使新数据是从私网侧发向公网侧,因为重建的会话表往往使用不同于之前的公网IP和端口地址,公网侧主机也无法对应到之前的通信上,导致用户可感知的连接中断。NAT网关要把回收空闲连接的时间设置到不发生持续的资源流失,又维持大部分连接不被意外中断,是一件比较有难度的事情。在NAT已经普及化的时代,很多应用协议的设计者已经考虑到了这种情况,所以一般会设置一个连接保活的机制,即在一段时间没有数据需要发送时,主动发送一个NAT能感知到而又没有实际数据的保活消息,这么做的主要目的就是重置NAT的会话定时器。

    其次,NAT在实现上将多个内部主机发出的连接复用到一个IP上,这就使依赖IP进行主机跟踪的机制都失效了。如网络管理中需要的基于网络流量分析的应用无法跟踪到终端用户与流量的具体行为的关系。基于用户行为的日志分析也变得困难,因为一个IP被很多用户共享,如果存在恶意的用户行为,很难定位到发起连接的那个主机。即便有一些机制提供了在NAT网关上进行连接跟踪的方法,但是把这种变换关系接续起来也困难重重。基于IP的用户授权不再可靠,因为拥有一个IP的不等于一个用户或主机。一个服务器也不能简单把同一IP的访问视作同一主机发起的,不能进行关联。有些服务器设置有连接限制,同一时刻只接纳来自一个IP的有限访问(有时是仅一个访问),这会造成不同用户之间的服务抢占和排队。有时服务器端这样做是出于DOS攻击防护的考虑,因为一个用户正常情况下不应该建立大量的连接请求,过度使用服务资源被理解为攻击行为。但是这在NAT存在时不能简单按照连接数判断。
    总之,缺点大概如下:

    • 无法进行端到端的ip跟踪(破坏了端对端通信的平等性)
    • 很多应用层协议无法识别(比如ftp协议 )

    NAT穿越技术

    前面解释了NAT的弊端,为了解决IP端到端应用在NAT环境下遇到的问题,网络协议的设计者们创造了各种武器来进行应对。但遗憾的是,这里每一种方法都不完美,还需要在内部主机、应用程序或者NAT网关上增加额外的处理。

    应用层网关(ALG)

    前面我们已经介绍到了,NAT实现了对UDP或TCP报文头中的的IP地址及端口转换功能,但对应用层数据载荷中的字段无能为力(也就是净载中的数据无法修改),在许多应用层协议中,比如多媒体协议(H.323、SIP等)、FTP、SQLNET等,TCP/UDP载荷中带有地址或者端口信息,这些内容不能被NAT进行有效的转换,就可能导致问题。也就是说,NAT只是将数据包的包头的ip地址和端口号进行了转换,但是没有对包内数据中的ip地址和端口号进行转换于是我们开始设想能不能使用一种行之有效的方法保证包头的ip和端口号与包中数据里的Ip地址和端口号都转化为公网的ip地址和端口号。

    ALG的实际应用

    对于ALG的实现机制还是不清楚,如果有懂的大佬,推荐下书籍
    下面我们举个FTP传输的例子来简单介绍一下ALG的实际应用
    这里写图片描述
    图中私网侧的主机要访问公网的FTP服务器。
    NAT设备上配置了私网地址192.168.1.2到公网地址8.8.8.11的映射,实现地址的NAT转换,以支持私网主机对公网的访问。组网中,若没有ALG对报文载荷的处理,私网主机发送的PORT报文到达服务器端后,服务器无法根据私网地址进行寻址,也就无法建立正确的数据连接。整个通信过程包括如下四个阶段:

    (1) 私网主机和公网FTP服务器之间通过TCP三次握手成功建立控制连接。

    (2) 控制连接建立后,私网主机向FTP服务器发送PORT报文,报文中携带私网主机指定的数据连接的目的地址和端口,用于通知服务器使用该地址和端口和自己进行数据连接。

    (3) PORT报文在经过支持ALG特性的NAT设备时,报文载荷中的私网地址和端口会被转换成对应的公网地址和端口。即设备将收到的PORT报文载荷中的私网地址192.168.1.2转换成公网地址8.8.8.11,端口1084转换成12487。

    (4) 公网的FTP服务器收到PORT报文后,解析其内容,并向私网主机发起数据连接,该数据连接的目的地址为8.8.8.11,目的端口为12487(注意:一般情况下,该报文源端口为20,但由于FTP协议没有严格规定,有的服务器发出的数据连接源端口为大于1024的随机端口,如本例采用的是wftpd服务器,采用的源端口为3004)。由于该目的地址是一个公网地址,因此后续的数据连接就能够成功建立,从而实现私网主机对公网服务器的访问。

    NAT技术的未来

    在知乎上看到过这样一种言论,随着ipV6技术的到来,NAT技术已经不再需要了。在我看来,技术的革命一定是一步一步实现的,比如先是在局部地区使用IPV6,然后再逐步扩大其规模,减少IPv4的规模,所以NAT技术还是需要的。而且到了那个时候,网络世界中会充斥着两种地址ipV4和ipV6,这个时候更需要NAT技术了,因为NAT的中文翻译叫做网络地址转换啊。所以学好这个知识点对于我们理解网络是至关重要的。每到此时都会感慨,学校学到的知识真的只是皮毛,但是却是我现在所有知识的基础。

    参考文献

    1. 《CCNA学习指南》点此处下载此书
    2. ALG原理与应用
    3. P2P技术详解
    展开全文
  • 浅析如何把逻辑地址转换为物理地址

    万次阅读 多人点赞 2020-06-29 14:22:33
    本文只讲逻辑地址转换为物理地址的计算方法

    摘要:微信搜索【三桥君
    本文只讲逻辑地址转换为物理地址的计算方法

    一、依据

    (1)计算十六进制使用公式

    逻辑地址=页号+页内地址
    物理地址=块号+页内地址

    【解析】
    逻辑地址转换为物理地址其实就是页号转换为块号。

    他们之间的页内地址是一样的。

    然后,我们要搞清楚页号、块号、页内地址怎么求的,然后通过公式带进去就可以求出逻辑/物理地址。

    页内地址的表达方式是2进制的,所以不管给的逻辑地址、物理地址都先转换为2进制。具体页内地址取几位,通过题目给的去求,如“每页为1KB”。

    (2)计算非十六进制使用公式

    物理地址=块号*页内大小+页内地址
    页号=逻辑地址/页面大小字节=(取整数)
    页内地址=逻辑地址%页面大小字节=(取余数)

    二、例题

    1、十六进制

    设某用户的编程空间共32个页面,每页为1KB,内存容量为16KB。假定用户程序的页表如下所示。请计算逻辑地址0A5CH所对应的物理地址。(要写出计算过程)
    在这里插入图片描述
    【分析】
    逻辑地址为0A5CH;
    页内地址的位数通过“每页为1KB”转换成2的n次幂去求解,n次幂=位数。
    页号的位数通过逻辑地址的位数减去页内地址的位数,即16-页内地址的位数。

    【解答】
    因为 逻辑地址为0A5CH,
    所以 逻辑地址转换为2进制为 0000 1010 0101 1100;
    因为 1KB=2^10B,
    所以 页内地址的位数=10;
    所以 页内地址为10 0101 1100;即页号为0000 10。
    因为 页号转换为10进制为2,
    所以 对应的块号为4;
    所以 块号的2进制为000100。
    因此,物理地址= 000100 10 0101 1100,即0001 0010 0101 1100。
    转换为16进制为125CH。

    【说明】
    其实这题逻辑地址转换为物理地址的做法就是:
    把逻辑地址的页号部分:0000 1010 0101 1100
    转换成对应物理地址的块号:0001 0010 0101 1100
    这样就完成了转换。

    2、非十六进制

    在采用分页存储管理的系统中,某作业J的逻辑地址空间为4页(每页2KB),且已知该作业的页面映像表(即页表)如下:试借助地址变换图求出有效逻辑地址4865所对应的物理地址。(要写出计算过程)

    在这里插入图片描述
    【分析】
    页号=逻辑地址/页面大小字节=(取整数)
    页内地址=逻辑地址%页面大小字节=(取余数)

    【解答】
    页号P=4865/2K=4865/2048(转为10进制)=2,
    页内地址W=4865 % 2048=769;
    则通过查找页表,可知第2页放于第6块中,
    因此逻辑地址4865所对应的物理地址为:
    6*2048+769=13057


    文章整理不易,有帮助请点赞关注支持,谢谢!微信搜索【三桥君 】,回复【关注】有我准备的一份资源大礼包,后续持续更新。

    展开全文
  • NAT地址转换

    千次阅读 2018-08-22 23:37:00
    2017年1月12日, 星期四NAT地址转换SNAT:源地址转换 DNAT:目标地址转换 null
  • 地址转换方式 1.**NAT NO-PAT(动态转换):**多对多转换,不转换端口,只转换源IP地址2. NAPT(network and port translation ,网络地址和端口转换)类似pat:napt既转换报文源地址,又转换源端口。转换后的ip...
  • 操作系统_逻辑地址转换为物理地址

    万次阅读 多人点赞 2018-10-22 20:46:41
    分页存储逻辑地址转物理地址: 例如: 已知某个分页系统,页面大小为1K(即1024字节),某一个作业有4个页面,分别装入到主存的第3、4、6、8块中,求逻辑地址2100对应的物理地址。 解: 第一步:求该逻辑地址的...
  • PTA IP地址转换

    千次阅读 多人点赞 2019-01-12 21:02:44
    7-4 IP地址转换 (20 分) 一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出...
  • 页式地址变换 虚地址结构 ...虚地址转换为内存地址计算 如果,虚地址(逻辑地址、程序地址)以十六进制、八进制、二进制的形式给出 第一步,将虚地址转换成二进制的数; 第二步,按页的大...
  • IP地址转换

    千次阅读 2019-06-07 10:58:03
    7-92IP地址转换(20分) 一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 #include &...
  • 网络地址转换技术

    千次阅读 2019-05-02 15:55:51
    网络地址转换技术的基本概念 网络地址转换技术:也称为NAT技术,它的基本作用是实现私网IP地址与公网IP地址之间的转换。 私网IP地址:在IP地址的空间中,A、B、C三类地址中各有一部分地址,它们被称为私网IP地址...
  • Linux 虚拟地址到物理地址转换

    千次阅读 2019-03-08 13:58:14
    地址转换过程 概念 虚拟地址和物理地址的概念 CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit,内存管理单元),或者有MMU但没有启用,CPU核在取指令或...
  • IP地址转换与域名解析

    千次阅读 2020-02-27 20:57:20
    IP地址转换与域名解析IP地址与端口IP地址转换相关类域名解析代码分析![在这里插入图片描述](https://img-blog.csdnimg.cn/20200227205232196.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10...
  • IPv4与IPv6地址转换

    千次阅读 2020-08-19 12:25:10
    梳理了IETF的先关RFC文件,汇总IPv4与IPv6地址转换映射的方法。笔者资历较浅,难免有错误之处,还望指正。如真正深入研究,可以查看标准RFC文档。IETF官网文档下载链接 本文总体上根据RFC文档出版的时间先后顺序,...
  • 华为ensp NAT技术地址转换

    千次阅读 多人点赞 2020-06-08 17:10:36
    华为ensp NAT技术地址转换 NAT 网络地址转换(Network Address Translation),是一个互联网工程任务组的标准,它可以实现内部私有IP地址和公网IP地址的转换,能够起到节约公网IP地址的作用,以下将介绍NAT的三种方式,静态...
  • PCIe地址转换服务(ATS)详解

    千次阅读 多人点赞 2021-09-11 23:33:06
    PCIe地址转换服务(ATS)详解
  • 华为——NAT地址转换

    千次阅读 2019-12-12 19:25:44
    NAT的术语与转换表 NAT包含4类地址 NAT的转换条目 简单转换条目 扩展转换条目 静态转换和动态转换 ...下面我们来操作以下NAT地址转换的实验,拓扑如下: SW1配置: ######划分vlan [SW1]vla...
  • 一)SNAT源地址装换,俗称将私网地址转换成公网地址Snat:source network address translation 意思是当多个Pc机客户端需要共享adsl路由上网时,每个pc机都配置了内网ip,当pc机访问互联网时,防火墙把pc机的源...
  • 地址转换、目的地址装换

    千次阅读 2018-07-04 20:25:36
    NAT分为SNAT和DNAT,分别是源地址转换和目的地址装换超五类线一般使用与千兆以太网六类线是超五类线的提供2倍的带宽。路由器的基本的功能是路由转发 和 数据交换。...
  • 网络地址转换????前言????技术背景????NAT????NAT类型????配置案例 ????前言 IPV4地址枯竭限制网络发现的瓶颈,网络地址转换(NAT)用于实验公网地址不足的问题。将私网地址转换为公网地址。 ????技术背景 企业或庭...
  • IPv4网络地址转换(NAT)

    千次阅读 2018-08-19 15:32:24
    概述 应用领域 NAT地址基本转换原理 NAT的类型 静态NAT(Static NAT) 动态NAT(Dynamic NAT) 重载/复用NAT(Overloading NAT) 重叠NAT(Overlapping NAT) ...由于IPv4地址空间有限,所以目前的因特网面临...网络地址转换(...
  • C++将地址转换为字符串

    千次阅读 2019-05-29 11:05:50
    C++将地址转换为字符串 有时候在做程序设计的时候,有可能需要做一个类似messageBus的功能,并且需要一个key保证唯一,那么如何实现这个key的唯一呢?大致两种思路: 使用函数签名,因为messagebus绑定的是一个函数...
  • 华为设备配置Easy IP 地址转换

    千次阅读 2019-02-03 18:18:35
    2、配置easy IP 地址转换 3、地址映射 实验拓扑:   实验配置: [ar1]int g0/0/0 [ar1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [ar1-GigabitEthernet0/0/0]un shu [ar1]int g0/0/2 [ar1-...
  • 学习目标:理解 NAT 网络地址转换的原理及功能、掌握 NAPT配置实现局域网访问互联网 1.定义 ①NAT将网络划分为内部网络和外部网络两部分,局域网主机利用NAT访问网络时,是将局域网内部的本地地址转换为全局地址...
  • 防火墙网络地址转换技术(NAT)

    千次阅读 2021-03-13 19:45:39
    防火墙NAT地址转换技术使用场景:NAT处理流程:基于源地址转换的NATNo-PATNAPTsmart NAT:Easy-ip:基于目的地址转换的NAT服务器映射Nat-Server服务器负载均衡SLB黑洞路由: 使用场景: 私网用户访问Internet:通过...
  • 华为eNSP配置网络地址转换NAT

    千次阅读 2021-01-22 09:18:19
    华为eNSP配置网络地址转换NAT一、配置路由器R1和R2的接口地址(一)配置R1路由器接口(二)配置R2路由器接口二、配置缺省路由联通整个网络三、静态一对一映射NAT技术四、NAT Easy IP技术五、Server NAT 技术(一)...
  • 很好,很有用的地址转换工具 可以将普通下载地址转化成迅雷,快车,qq漩涡,ray下载地址,反之也可以

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,232,053
精华内容 492,821
关键字:

地址转换