如何正确应用网络地址转换(NAT)技术

使用C#开发一个简单的P2P应用 作者: 刘彦青 本篇文章讨论了一种设计P2P网络应用程序的简单方法。        尽管有许多P2P网络不需要索引服务器或中央服务器,各客户机之间可以互相直接通讯,但下面的图1还是显示了P2P网络的基本工作原理,一般来说,P2P概念中包含一台中央索引服务器,这台服务器并不存储有任何文件,它只存储有登录到该网络上的所有用户的信息、客户端的IP地址以及用户提供的供共享的文件,客户机和服务器使用简单 阅读详情
如何正确应用网络地址转换(NAT)技术  

  
前言:随着Internet技术的不断以指数级速度增长,珍贵的网络地址分配给专用网络终于被视作是一种对宝贵的虚拟房地产的浪费。因此出现了网络地址转换(NAT)标准,就是将某些IP地址留出来供专用网络重复使用。本文将详细告诉你如何正确应用网络地址转换NAT技术。

一、NAT技术的定义

NAT英文全称是Network Address Translation,称是网络地址转换,它是一个IETF标准,允许一个机构以一个地址出现在Internet上。NAT将每个局域网节点的地址转换成一个IP地址,反之亦然。它也可以应用到防火墙技术里,把个别IP地址隐藏起来不被外界发现,使外界无法直接访问内部网络设备,同时,它还帮助网络可以超越地址的限制,合理地安排网络中的公有Internet 地址和私有IP地址的使用。

二、NAT技术的基本原理和类型

1、NAT技术基本原理

NAT技术能帮助解决令人头痛的IP地址紧缺的问题,而且能使得内外网络隔离,提供一定的网络安全保障。它解决问题的办法是:在内部网络中使用内部地址,通过NAT把内部地址翻译成合法的IP地址在Internet上使用,其具体的做法是把IP包内的地址域用合法的IP地址来替换。 NAT功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。NAT设备维护一个状态表,用来把非法的IP地址映射到合法的IP地址上去。每个包在NAT设备中都被翻译成正确的IP地址,发往下一级,这意味着给处理器带来了一定的负担。但对于一般的网络来说,这种负担是微不足道的。

2、NAT技术的类型

NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。其中静态NAT设置起来最为简单和最容易实现的一种,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而动态地址NAT则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。根据不同的需要,三种NAT方案各有利弊。

动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。

网络地址端口转换NAPT(Network Address Port Translation)是人们比较熟悉的一种转换方式。NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。

  在Internet中使用NAPT时,所有不同的TCP和UDP信息流看起来好像来源于同一个IP地址。这个优点在小型办公室内非常实用,通过从ISP处申请的一个IP地址,将多个连接通过NAPT接入Internet。实际上,许多SOHO远程访问设备支持基于PPP的动态IP地址。这样,ISP甚至不需要支持NAPT,就可以做到多个内部IP地址共用一个外部IP地址上Internet,虽然这样会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用NAPT还是很值得的。

三、在Internet中使用NAT技术

NAT技术可以让你区域网路中的所有机器经由一台通往Internet的server 线出去,而且只需要注册该server的一个IP就够了。 在以往没有NAT技术以前,我们必须在server上安装sockd,并且所有的clients都必须要支援sockd,才能够经过server的sockd连线出去。这种方式最大的问题是,通常只有telnet/ftp/www-browser支援sockd,其它的程式都不能使用;而且使用sockd的速度稍慢。因此我们使用网络地址转换NAT技术,这样client不需要做任何的更动,只需要把gateway设到该server上就可以了,而且所有的程式(例如kali/kahn等等) 都可以使用。最简单的NAT设备有两条网络连接:一条连接到Internet,一条连接到专用网络。专用网络中使用私有IP地址(有时也被称做Network 10地址,地址使用留做专用的从10.0.0.0开始的地址)的主机,通过直接向NAT设备发送数据包连接到Internet上。与普通路由器不同NAT设备实际上对包头进行修改,将专用网络的源地址变为NAT设备自己的Internet地址,而普通路由器仅在将数据包转发到目的地前读取源地址和目的地址。

四、应用NAT技术的安全策略

1、应用NAT技术的安全问题

在使用NAT时,Internet上的主机表面上看起来直接与NAT设备通信,而非与专用网络中实际的主机通信。输入的数据包被发送到NAT设备的IP地址上,并且NAT设备将目的包头地址由自己的Internet地址变为真正的目的主机的专用网络地址。而结果是,理论上一个全球唯一IP地址后面可以连接几百台、几千台乃至几百万台拥有专用地址的主机。但是,这实际上存在着缺陷。例如,许多Internet协议和应用依赖于真正的端到端网络,在这种网络上,数据包完全不加修改地从源地址发送到目的地址。比如,IP安全架构不能跨NAT设备使用,因为包含原始IP 源地址的原始包头采用了数字签名。如果改变源地址的话,数字签名将不再有效。 NAT还向我们提出了管理上的挑战。尽管NAT 对于一个缺少足够的全球唯一Internet地址的组织、分支机构或者部门来说是一种不错的解决方案,但是当重组、 合并或收购需要对两个或更多的专用网络进行整合时,它就变成了一种严重的问题。甚至在组织结构稳定的情况下,NAT系统不能多层嵌套,从而造成路由噩梦。

2、应用NAT技术的安全策略

当我们改变网络的IP地址时,都要仔细考虑这样做会给网络中已有的安全机制带来什么样的影响。如,防火墙根据IP报头中包含的TCP端口号、信宿地址、信源地址以及其它一些信息来决定是否让该数据包通过。可以依NAT设备所处位置来改变防火墙过滤规则,这是因为NAT改变了信源或信宿地址。如果一个NAT设备,如一台内部路由器,被置于受防火墙保护的一侧,将不得不改变负责控制NAT设备身后网络流量的所有安全规则。在许多网络中,NAT机制都是在防火墙上实现的。它的目的是使防火墙能够提供对网络访问与地址转换的双重控制功能。除非可以严格地限定哪一种网络连接可以被进行NAT转换,否则不要将NAT设备置于防火墙之外。任何一个淘气的黑客,只要他能够使NAT误以为他的连接请求是被允许的,都可以以一个授权用户的身份对你的网络进行访问。如果企业正在迈向网络技术的前沿,并正在使用IP安全协议(IPSec)来构造一个虚拟专用网(VPN)时,错误地放置NAT设备会毁了计划。原则上,NAT设备应该被置于VPN受保护的一侧,因为NAT需要改动IP报头中的地址域,而在IPSec报头中该域是无法被改变的,这使可以准确地获知原始报文是发自哪一台工作站的。如果IP地址被改变了,那么IPSec的安全机制也就失效了,因为既然信源地址都可以被改动,那么报文内容就更不用说了。那么NAT技术在系统中我们应采用以下几个策略:

①网络地址转换模块

NAT技术模块是本系统核心部分,而且只有本模块与网络层有关,因此,这一部分应和Unix系统本身的网络层处理部分紧密结合在一起,或对其直接进行修改。本模块进一步可细分为包交换子模块、数据包头替换子模块、规则处理子模块、连接记录子模块与真实地址分配子模块及传输层过滤子模块。

②集中访问控制模块

集中访问控制模块可进一步细分为请求认证子模块和连接中继子模块。请求认证子模块主要负责和认证与访问控制系统通过一种可信的安全机制交换各种身份鉴别信息,识别出合法的用户,并根据用户预先被赋予的权限决定后续的连接形式。连接中继子模块的主要功能是为用户建立起一条最终的无中继的连接通道,并在需要的情况下向内部服务器传送鉴别过的用户身份信息,以完成相关服务协议中所需的鉴别流程。

③临时访问端口表

为了区分数据包的服务对象和防止攻击者对内部主机发起的连接进行非授权的利用,网关把内部主机使用的临时端口、协议类型和内部主机地址登记在临时端口使用表中。由于网关不知道内部主机可能要使用的临时端口,故临时端口使用表是由网关根据接收的数据包动态生成的。对于入向的数据包,防火墙只让那些访问控制表许可的或者临时端口使用表登记的数据包通过。

④认证与访问控制系统

认证与访问控制系统包括用户鉴别模块和访问控制模块,实现用户的身份鉴别和安全策略的控制。其中用户鉴别模块采用一次性口令(One-Time Password)认证技术中Challenge/Response机制实现远程和当地用户的身份鉴别,保护合法用户的有效访问和限制非法用户的访问。它采用Telnet和WEB两种实现方式,满足不同系统环境下用户的应用需求。访问控制模块是基于自主型访问控制策略(DAC),采用ACL的方式,按照用户(组)、地址(组)、服务类型、服务时间等访问控制因素决定对用户是否授权访问。

⑤网络安全监控系统

监控与入侵检测系统作为系统端的监控进程,负责接受进入系统的所有信息,并对信息包进行分析和归类,对可能出现的入侵及时发出报警信息;同时如发现有合法用户的非法访问和非法用户的访问,监控系统将及时断开访问连接,并进行追踪检查。

⑥基于WEB的防火墙管理系统

管理系统主要负责网络地址转换模块、集中访问控制模块、认证与访问控制系统、监控系统等模块的系统配置和监控。它采用基于WEB的管理模式,由于管理系统所涉及到的信息大部分是关于用户帐号等敏感数据信息,故应充分保证信息的安全性,我们采用JAVA APPLET技术代替CGI技术,在信息传递过程中采用加密等安全技术保证用户信息的安全性。

结尾:尽管NAT技术可以给我们带来各种好处,例如无需为网络重分IP地址、减少ISP帐号花费以及提供更完善的负载平衡功能等,NAT技术对一些管理和安全机制的潜在威胁仍在,看你如何正确应用好网络地址转换NAT技术.
NAT技术详解(网络地址转换) 那一年(20世纪90年代)互联网的发展究竟遭遇了什么? 阅读详情

相关推荐

网络技术:NAT 网络地址转换及原理

NAT 网络地址转换(NAT)技术的理论部分可以看博客——网络层——NAT。NAT 的功能大致为:在局域网中组织会为内部主机分配私有地址,当内部主机发送数据包到外部网络时私有地址就会自动转换为公有 IP 地址,公有 IP 地址返回的流量的目的地址也会自动转换为内部私有地址。NAT 通常工作在末节网络的边界。 在 NAT 术语中,NAT 转换后的地址称之为全局地址,NAT 转换前的地址为本地地址。内部本地地址是需要进行 NAT 转换的主机的私有地址,外部本地地址是与 ISP 相连的路由器接口的地址

Linuxhus的博客 7577

[C#]使用TCP监听发送

本文就通过一个程序,向大家介绍一下C#下的P2P编程的方法和实现机理。本文的这个程序虽然不是很有用,但却很直观地给出了P2P(点对点)编程以及套接口编程的一些基本知识和概念。它是建立在TcpListener以及TcpClient这两个类基础上的,除外还有相应的输入和输出控制。实现的原理也比较简单,但是用到了P2P技术重返"非中心化"的基本原则。简言之,用这个程序可以在网络中发送、接受信息,任何一台...

weixin_33918114的博客 674

网络地址转换NAT详解及配置

网络地址转换NAT详解及配置

qdz060525的博客 6679

C#中的P2P

P2P 编程  1,P2P 概念     P2P(Peer-to-Peer),对等互联或点对点技术。      P2P 不是一种新的协议,而是利用现有的网络协议实现网络数据或资源信息  共享的技术,它使用的可能是 TCP、UDP 或其他协议。     使用 P2P 技术,可以让一台计算机与另一台计算机直接交换数据,通过  internet直接使用对方的文件。  2,P2P 的设计架构

ProfessionalStudy的专栏 1060

NAT网络地址转换技术原理介绍:NAT原理及其应用,Basic NAT、NAPT、NAT Serve

什么是NAT技术? NAT(Network Address Translation,网络地址转换)是将IP数据报文中的IP地址转换为另一个IP地址的过程。当内部IP想要访问外网时,NAT主要实现内部网络和外部网络之间IP的转换,这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用IP地址空间的枯竭。 为什么要用NAT? IPv4即网际网协议第四版,IPv4定义了一个跨域各种不同网络互联的超级网络。IPv4使用32bit整数表达一个地址,32bit大约可以排列成43亿的不同的数据。以I

zhongyuanjy的博客 3401

C# P2P通讯实现与代码实践

本文还有配套的精品资源,点击获取 简介:本项目展示如何用C#语言实现P2P通讯,通过详细的文件结构和代码实现,带领开发者构建一个基础的P2P通信应用。包括用户界面、网络设置、资源管理及解决方案的构建,并涉及套接字编程、多线程、网络协议、数据编码/解码、错误处理、节点发现和安全通信等关键技术点。 1. P2P通信模式基础 1.1 P2P通信模式概述 P2...

weixin_33812391的博客 1934

C# - P2P与NAT技术之一

前言:随着Internet技术的不断以指数级速度增长,珍贵的网络地址分配给专用网络终于被视作是一种对宝贵的虚拟房地产的浪费。因此出现了网络地址转换(NAT)标准,就是将某些IP地址留出来供专用网络重复使用。本文将详细告诉你如何正确应用网络地址转换NAT技术。  一、NAT技术的定义  NAT英文全称是Network Address Translation,称是网络地址转换,它是一个

记录成长的每一步 778

C#的基于p2p的C/S聊天室

C#的基于p2p的C/S聊天室,chat是服务端,chatclient是客户端,很简单。有大量代码被注释了,注释掉的部分是我试验各种方法时用过的部分,注释掉的部分并不是错误的,只是觉得没有其他方法好而已。

网络地址转换—NAT——总结

一、NAT——网络地址转化技术 1、网络地址转换技术NAT——主要用于实现位于内部网络的主机访问外部网络的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样既可保证网络互通,又节省了公网地址。 NAT是将IP数据报文头部中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部...

Knowledge warehouse 1万+

c# P2P的使用,TCP,点对点聊天,群发,文件发送

c# P2P的使用,TCP,点对点聊天,群发,文件发送

P2P之UDP穿透NAT的原理与C#实现(C#源码) 已调试成功

P2P之UDP穿透NAT的原理与C#实现(C#源码) 个人已调试成功

NAT网络地址转换实验(思科)

NAT(Network Address Translation),即网络地址转换技术,是一种在现代计算机网络中广泛应用的技术,主要用于有效管理和利用IP地址。NAT技术通过将内部网络中的IP地址转换为公共可路由的IP地址,实现了多个内部计算机共享一个或一组公共IP地址的功能。NAT技术主要有静态NAT动态地址NAT以及地址端口转换NAPT等几种类型① 静态NAT将内部私网地址与合法公网地址进行一对一的转换,且转换是确定的② 动态NAT。

qq_65150735的博客 4209

从零到一:RagFlow源码架构深度解析与二次开发实战指南

本文深入解析RagFlow源码架构,提供从环境搭建到二次开发的全流程实战指南。作为企业级AI搜索框架,RagFlow通过模块化设计和多模态处理能力,支持自定义智能体开发与文搜文档功能,帮助开发者高效构建智能搜索系统。

w1x2y3的博客 267

网络地址转换——NAT技术详解

NAT技术作为一种重要的网络地址转换技术,在解决IP地址资源短缺、提高网络安全性、实现负载均衡等方面发挥着重要作用。然而,NAT技术也存在一些缺点,如可能影响网络性能、增加网络管理难度等。因此,在实际应用中需要根据具体场景和需求进行合理的配置和管理。随着网络技术的不断发展,NAT技术也将面临新的机遇和挑战。未来,NAT技术将与更多先进技术结合使用,实现更加智能化、自动化的网络地址转换功能,以满足未来网络发展的需求。

陈辰学长的博客 2107

突破Cloudflare 5秒盾:Python爬虫+GPT分析JS混淆,零基础也能爬

传统突破Cloudflare 5秒盾的门槛极高,需要精通JS逆向、浏览器指纹伪造、行为模拟,而本文的“Playwright+GPT”方案,彻底降低了门槛——无需懂逆向、无需手动改指纹、无需写复杂JS代码,只需3步就能突破大部分网站的防护。低门槛:新手1小时内就能上手,无需逆向工程知识;高成功率:覆盖80%+的普通防护网站,15%的中等防护网站;易扩展:适配不同类型网站,可结合代理、打码平台升级为高可用系统。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1163

swl安装无法与服务器建立链接,如何解决?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 2075
上一篇: SSL和数字证书服务慨述
下一篇: 对FTP登入产生的帧的分析
Corey
博客等级 码龄26年 9粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值