精华内容
下载资源
问答
  • 几种不同的NAT方式

    千次阅读 2009-05-25 16:18:00
    几种不同的NAT方式1 背景 目前,NGN正逐步从试验走向商用,在此过程中遇到了很多实际问题,特别是NGN用户的接入问题。NGN是一个基于分组网承载的网络,接入用户都是通过IP地址来寻址的,但当前网络的...

    几种不同的NAT方式

    1 背景

      目前,NGN正逐步从试验走向商用,在此过程中遇到了很多实际问题,特别是NGN用户的接入问题。NGN是一个基于分组网承载的网络,接入用户都是通过IP地址来寻址的,但当前网络的实际情况是,由于IP地址资源紧缺以及安全等原因,网上大量的企业网和驻地网基本都采用私有IP地址通过出口的NAT(NetworkAddress Translation,网络地址转换)/FW(Fire Wall,防火墙)接入公网,而目前在IP上承载语音和视频的协议(如H.323、SIP、MGCP、H248等),由于其本身的特点所决定,在私网用户接入应用中,这些协议的控制通道/媒体通道难以穿越传统的NAT/FW 设备与公网进行互通,或者说目前的NAT/FW大多支持HTTP的数据应用协议穿透,而不支持会话业务的控制与媒体NAT/FW穿透。NGN最大的好处就是能为用户提供丰富的业务,特别是能为企业用户提供语音、数据、视频融合的IPCentrex业务,因此上面所提到的问题就成为目前开展NGN业务最大的障碍,迫切需要解决。目前业界的解决方案有如下几种:

      NAT/ALG(Application Layer Gateway,应用层网关)方式;

      MIDCOM(Middlebox Communication)方式;

      STUN(Simple Traversal of UDP Through Network Address Translators,UDP对NAT的简单穿越)方式;

      TURN(Traversal Using Relay NAT,通过中继方式穿越NAT)方式;

      Full Proxy(信令代理+媒体中继)方式。

    2 技术方案

    2.1 NAT/ALG方式

      普通的NAT是通过修改UDP或TCP报文头部地址信息实现地址转换的,但部分承载于TCP/UDP的应用,如多媒体会话、文件共享、游戏等“端到端”的应用,在TCP/UDP负载中也需要携带地址信息。一般的方法是应用程序在负载中填写其自身地址,此地址信息在通过NAT时被修改为NAT上对外的地址。这就是我们常说的ALG方式。

      对于NGN业务应用,ALG需要支持对IP 语音和视频协议(H.323、SIP、MGCP/H.248)的识别和对NAT/FW的控制,以便使NGN业务顺利穿越NAT/FW。

      NAT/ALG方式的应用组网的关键为:企业网/驻地网内部终端设备能穿透NAT/ALG注册到公网软交换上,通过软交换进行协议解析和呼叫处理。

      公网软交换和企业网终端通过SIP/H.323/MGCP/H.248 协议互通,NAT/ALG需要识别SIP/ H.323/MGCP/H.248协议信令并建立媒体流通道,以支持媒体流顺利穿越NAT/FW。

      对于ALG应用来说,需要在应用业务安全要求上做一些折衷,因为ALG 不能识别加密后的报文内容,必须保证报文采用明文传送,这使得报文在公网中传送时存在很大的安全隐患。

      NAT/ALG是支持NGN应用的一种最简单的方式,但由于网络已部署了大量的、不支持NGN业务应用的NAT/FW设备,因此我们不推荐采用这种方式,理由如下:

      网上大量的NAT/FW设备因不具备ALG能力,需要更换或升级;

      NGN业务的ALG生产厂商少,也没有一套产品特性需求基线;

      NAT/FW设备厂商一般不是IP业务领域的专业厂商,难以支持业务的变化(如SIP的扩展多种多样);

      用户不愿意重新购买NAT/FW设备,更无法判断各种ALG的可行性;

      用户普遍希望运营商在不改变已有网络设备(NAT)的情况下就可以提供新的IP业务。

    2.2 MIDCOM方式

      与NAT/ALG不同的是,MIDCOM的框架结构采用可信的第三方(MIDCOM Agent)对Middlebox (NAT/FW )进行控制的机制,应用业务识别智能也由Middlebox转移到外部的MIDCOMAgent上,因此应用协议对Middlebox是透明的。

      由于应用业务识别的智能从Middlebox转移到外部的MIDCOM Agent上,因此根据MIDCOM 的架构,在不需要更改Middlebox基本特性的基础上,通过对MIDCOMAgent的升级就可以支持更多的新业务,这是MIDCOM相对NAT/ALG方式的一个很大的优势。

      在NGN业务实际应用中,Middlebox功能可驻留在NAT/FW中,通过软交换设备(即MIDCOM Agent)实现对IP语音和视频协议(H.323、SIP、MGCP/H.248)的识别和对NAT/FW的控制,因此它可以作为NGN业务穿越NAT/FW的一个解决方案。

      从安全性方面考虑,MIDCOM方式可支持控制报文和媒体流的加密,因此安全性比较高。

      MIDCOM 方式的应用组网的关键为:公网软交换通过MIDCOM协议对私网边缘的NAT/FW设备进行控制,软交换识别主、被叫侧的SIP/H.323/MGCP/H.248协议,如主、被叫侧均为局内的私网用户,软交换需要通过MIDCOM协议控制主、被叫两侧的NAT/FW,在NAT/FW上创建了媒体流通道后,媒体流可顺利穿越NAT/FW。

      由于软交换设备上已经实现了对SIP/H.323/MGCP/H.248协议的识别,因此只需在软交换和NAT/FW设备上增加MIDCOM协议即可,而且以后新的应用业务识别将支持软交换所支持的一切功能。因此,这种方案是一种比较有前途的解决方案,但现有的NAT/FW设备需升级以支持MIDCOM协议。

    2.3 STUN方式

      解决NGN中NAT问题的另一种思路是:私网接入用户通过某种机制预先得到其地址对应在出口NAT上的对外地址,然后直接填写出口NAT上的对外地址,而不是私网内用户的私有IP地址,这样报文负载中的内容在经过NAT时就无需被修改了,只需按普通NAT流程转换报文头的IP地址即可,而此时负载中的IP地址信息和报文头地址信息是一致的。STUN协议就是基于此思路来解决应用层地址转换问题的。

      STUN协议最大的优点是无需对现有的NAT/FW设备做任何改动。由于实际的网络环境中已有大量的NAT/FW,并且这些NAT/FW并不支持VoIP的应用,因此若采用MIDCOM或NAT/ALG方式来解决此问题,则需要替换现有的NAT/FW,这是不太容易实现的。除此之外,STUN方式还可在多个NAT串联的网络环境中使用,这也是MIDCOM方式无法做到的。

      STUN的局限性是:需要应用程序支持STUN Client的功能,即NGN终端需要具备STUN Client的功能;不适合支持TCP连接的穿越,因此不支持H?郾323应用协议;不支持NGN业务对防火墙的穿越,也不支持对称NAT(Symmetric NAT)类型(在安全性要求较高的企业网中,出口NAT通常就是这种类型)的穿越。

      STUN方式的应用组网的关键是:STUN Server必须放在公网中,也可以内嵌在公网软交换中。由于通过STUN协议已在NAT上预先建立媒体流的NAT映射表项,因此媒体流可顺利穿越NAT。

    2.4 TURN方式

      TURN方式解决NAT问题的思路与STUN相似,实际应用原理也基本相同。

      TURN应用方式采用TURN Server的地址和端口作为客户端对外的接收地址和端口,即私网用户发出的报文都要经过TURN Server进行Relay转发。这种应用方式除了具有STUN方式的优点外,还解决了STUN应用无法穿透对称NAT(SymmetricNAT)以及类似的FW设备的问题(即无论企业网/驻地网出口为哪种类型的NAT/FW,都可以实现NAT的穿透),同时TURN还支持基于TCP的应用,如H.323协议。此外,TURNServer控制分配地址和端口,能分配RTP/RTCP地址对(RTCP端口号=RTP端口号+1)作为本端客户的接收地址,从而避免了STUN应用方式下出口NAT对RTP/RTCP地址端口号的任意分配。

      TURN的局限性是:需要终端支持TURN Client,且所有报文都必须经过TURN Server转发,增大了包的延迟和丢包的可能性。

    2.5 Full Proxy方式

      Full Proxy方式通过对私网内用户呼叫的信令和媒体同时做Relay来实现出口NAT/FW的穿越。

      当私网终端呼叫信令到达Full Proxy时,Full Proxy将对呼叫信令协议中携带的RTP/RTCP信息进行解析与处理,在记录用户私网内RTP/RTCP地址和端口号的同时,修改RTP/RTCP私网地址信息为FullProxy本身对外的公网IP地址,并修改媒体流端口为Full Proxy上分配的外部端口,然后将呼叫信令发送到软交换或对端。这样呼叫信令以及媒体流就可以通过FullProxy在主被叫之间进行中转了。

      在Full Proxy 方式下,无需对现有的NAT设备做任何改动,采用普通的设备即可,同时私网内的终端也无需支持STUN和TURN协议即可开展NGN业务,这是其较大的一个优势。它的局限性同TURN一样,增加了包的延时和丢包的可能性。

      Full Proxy方式的应用组网的关键是:同时完成对终端呼叫信令的代理转发和媒体Relay。同时,Full Proxy还可借鉴TURN的应用组网方式,拓展应用范围。

      由于Full Proxy方式会对呼叫协议进行解析,因此除了可以处理NAT问题外,还可完成对每次呼叫带宽等QoS信息的解析与处理,从接入层保证QoS的安全问题。此外,通过对呼叫状态的把握,还可实现对媒体流的动态防火墙,保证网络安全和防止带宽被盗用等。

      在应用领域,Full Proxy由于配置灵活,因此组网应用也很灵活,除了可实现私网地址向公网地址的转换外,还可实现公网地址向私网地址的转换,或其它不同地址域之间的变换,以满足NGN不同场合下的组网应用。

    3 小结

      根据上面的方案介绍和方案的对比分析,推荐采用Full Proxy和MIDCOM两种解决方案。

      Full Proxy方式由于不用对运营商和客户端的现有网络设备进行任何改造,因此具有很强的适应性,并且组网灵活,可满足NGN初期多样化的组网和用户接入要求。除了解决NAT问题外,其功能还可以大大地被扩展,同时在接入层可完成对会话业务QoS和安全的处理,从而可发展成为一个NGN的用户接入平台。

      MIDCOM方式具有很强的扩展性,一旦NAT/FW设备支持MIDCOM协议,MIDCOM Agent就可内嵌于软交换中,便可一劳永逸地解决NGN业务的NAT/FW的穿透问题;同时,由于软交换自身对用户呼叫协议的解析与处理同样能动态下发呼叫的QoS和安全信息,下面的Middlebox(NAT/FW)设备可根据这些信息采取必要的保证措施。由于目前网上大量的NAT/FW设备不支持MID.COM功能,需要对目前网上NAT/FW设备进行修改,同时NGN应用初期软交换设备布点数量过少,网络层次较高,因此在一定程度上影响了这种方式在现有网络情况下的应用。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

                    徐文卓
    UT斯达康(中国)通讯有限公司 宽带传输交换事业部



      摘 要:软交换系统中,如何给防火墙/NAT后的用户提供完善的多元化服务是很多运营商和设备制造商困惑已久的问题。现在,有不少标准化组织和设备生产厂家针对这个困难提出了自己的解决方案。UT斯达康凭借丰富的通讯行业经验和深厚的技术研发能力,在软交换系统中实现防火墙/NAT穿越问题上提出了完善的解决方案—使用SBC(边界媒体控制器)控制信令和媒体穿越FW/NAT。该方案不仅很好地解决了防火墙/NAT穿越问题,还基于考虑用户、源自信令和下行网络拓扑结构的策略使用,满足网络所需的独特的QoS和安全要求。

      关键词:FW、NAT、防火墙、穿越、Softswitch、软交换、VoIP、mSwitch



      1 FW/NAT问题简介

      随着近年IP网宽带业务的蓬勃发展,基于分组的多媒体通信系统标准H.323、SIP、MGCP广泛运用于视频会议和IP电话中。VoIP业务的应用也带来一个值得关注的问题:绝大部分企业部门从网络安全考虑配置了专用防火墙,但H.323、SIP、MGCP很难通过传统专用防火墙。原因在于,复杂的H.323、SIP、MGCP协议动态分配端口并产生和维护多个UDP数据流。

      同时由于Internet快速膨胀,IPV4地址空间处于严重耗尽的境况。为解决这个问题,人们设计出了网址转换器(NAT)。然而NAT后的IP语音和视频设备仅有私有IP地址,这些地址在公众网上是不可路由的。

      这样一来,多媒体通讯中的防火墙和NAT问题严重地制约了IP电话和视频会议的应用。解决这个问题也就成为多业务宽带IP网络至关重要的事情。

      在这里,我们先简要回顾一下防火墙和NAT设备是如何保护网络安全的和为什么实时多媒体通讯协议是对安全问题的一个挑战。

    1.1 网络防火墙和NAT如何工作

    1.1.1 防火墙

      为了网络的安全性,公司一般都安装防火墙,它是一个放于私有网的设备,用来保护网络资源免受外部的恶意破坏。
      防火墙检查从外部进来的每个数据包的IP地址和目的端口号,它经常如此设置:如果防火墙内的一台计算机A向防火墙外的一台计算机B主动发出请求要数据,防火墙会让外部计算机B的数据包通过,而且当且仅当数据包的目的地址和端口号与防火墙内发起请求的计算机A的地址和端口号相同;如果计算机B发来的数据包仅仅目的地址是防火墙内发起请求的计算机A的地址,而端口号不是计算机A发出请求的那个端口号,防火墙也将会丢弃那个外来的数据包。
      防火墙总是被配置过滤掉所有不请自到的网络通信,有一个例外是在防火墙内提供Web Server供外部访问。在这种情况下,公司会配置防火墙允许目的地址是Web Server的IP地址且目的端口号为80的数据包通过,这就使得公司外部可以主动向公司的Web Server发起请求得到一些公司放在Server上的数据。

    1.1.2 NAT

      网络地址转换(NAT)是一个Internet标准,置于两网间的边界,其功能是将外网可见的IP地址与内网所用的地址相映射,这样,每一受保护的内网可重用特定范围的IP地址(例如192.168.x.x),而这些地址是不用于公网的。从外网来的含公网地址信息的数据包先到达NAT,NAT使用预设好的规则 (其组元包含源地址、源端口、目的地址、目的端口、协议) 来修改数据包,然后再转发给内网接受点。对于流出内网的数据包也须经过这样的转换处理。NAT服务有两个主要目的:

      1. 许多公司使用NAT用作一个网络安全设备,因为它隐藏了内部IP地址,如果黑客不知道特定计算机的IP地址,想要攻击那台计算机是更困难的。

      2. NAT让一个公司可以使用更多的内部IP地址,因为这些地址仅仅在内部使用,不可能与被别的公司和组织的IP地址产生冲突。

      2 防火墙和NAT阻碍IP语音和视频通讯

      基于IP的语音和视频通讯协议,象H.323,要求终端之间使用IP地址和数据端口来建立数据通信通道。因此存在一个两难境地:为了建立数据连接终端必须随时侦听外来的呼叫,而防火墙却通常被配置来阻止任何不请自到的数据包通过。

      即使网络管理者打开防火墙上的一个端口来接收呼叫建立数据包,例如1720端口,但IP语音和视频通讯协议还要求打开许多别的端口接收呼叫控制信息来建立语音和视频通道,这些端口号事先并不知道,是动态分配的,这也就是说网络管理者为了允许语音和视频通讯将不得不打开防火墙上所有的端口,防火墙也就失去了存在的意义。由于网络安全的原因,很少企业会让他们的网络防火墙如此开放。

      在IP语音和视频通讯中NAT问题也是常见的问题。一个NAT设备允许一个公司为局域网上设备分配私有的IP地址。不幸的是控制Internet上信息流向的路由设备仅仅能把数据送到具有可路由IP地址(公众IP地址)的设备。
      NAT后的终端可以向位于相同局域网上的任何别的终端发起呼叫,因为在局域网内的这些IP地址是可路由的,然而他们的IP地址是私有的,对局域网外来说是不可路由的,因此NAT后的终端不能接收局域网外终端的呼叫。
      即使NAT内的终端可以向NAT外的终端发起呼叫,这仍然存在问题。当进行呼叫时,发起呼叫的终端A的IP地址会包含在数据包负载中,根据H.323协议被呼叫的终端B收到呼叫建立(call setup)数据包后,会从该数据包负载中获取终端A的IP地址,并开始发送音频和视频数据到这个IP地址的终端A。如果这个IP地址是私有的,Internet路由器将丢弃从外部终端发送往内部终端的音频和视频数据包,因为这些数据包正被送往一个不可路由的IP地址。这个呼叫将显示已经连接上,但NAT后的终端A将永远不会收到外部终端B的音频和视频。

      3 现有VoIP的FW/NAT穿透技术

      3.1 不使用防火墙/NAT

      其实解决防火墙和NAT问题的一个最简单的办法就是避免使用它们,对大多数机构来说,这种方法太冒险,网络安全没有保证,而且要得到足够多的可路由的IP地址或许是困难的,昂贵的。对运营商来说也是这样,若不是用FW/NAT来保护核心设备,使核心交换设备直接跟用户端联接,这样无疑是很冒险的做法。

      3.2 使用PSTN网关

      如果不太关心在局域网外是否基于IP通信,那么可以使用网关把局域网上的IP语音和视频转换为公共电路交换网上的PSTN语音和视频。使用这样一个网关就不用关心网络防火墙的穿透问题了,因为没有数据包要通过防火墙。这也解决了NAT问题,所有到局域网内终端的呼叫都是可路由的,因为通过网关进入局域网的呼叫都是可路由的。今天大多数IP电话都是通过一个网关和非IP电话来进行通讯的。网关方法是一个局部解决方案,要求所有参与呼叫者在最后一道NAT和防火墙后要有一个相应的网关。

      3.3 隧道穿透方案

      一般企业网都不想升级或者改动他们的防火墙和NAT设备的配置,也不想让内外的交互通讯绕过这些设备,采用允许IP语音和视频穿越防火墙和NAT的隧道穿透方案也许是最合适的,目前提供此类解决方案的有美国的Ridgeway公司。
      隧道穿透解决方案由两个组件构成,Server软件和Client软件。Client放在防火墙内的私有网,它同时具有网守功能和代理功能,私有网内的终端注册到Client上,它和防火墙外的Server创建一个信令和控制通道,可以把所有的注册和呼叫控制信令转发到Server,也把音视频数据转发到Server,在转发时它把内部终端发送的和外部发往终端的数据包的地址和端口号替换为自己的。Server放在防火墙外的公众空间,可以位于服务提供商网络或者位于企业网的DMZ区域,Server扮演网守代理的角色,从Client收到的所有注册和呼叫信令都被Server转发到中心网守。

    3.4 STUN

      STUN (Simple Traversal of UDP Through NATs)是一种由IETF研制的UDP流协议穿透NAT的协议。STUN可以在不改变NAT的情况下,与任何现有NAT共存。在STUN服务器和客户端之间可以有任意多的NAT设备。STUN技术仅针对NAT穿越有效,对防火墙穿越没有帮助,所以,如果在整个通话话路中没有防火墙仅有NAT,STUN将是一种成本低廉的穿越NAT的选择方案。就STUN协议本身而言,对哪种协议并没有要求,不过目前为止的一些成功案例,都是在基于SIP协议的系统中实现的。

      UT斯达康自行研制的软电话—iSmart,就是采用了STUN技术的SIP终端。在用户侧和网络侧都没有设置防火墙,而仅有NAT转换问题的时候,借助iSmart上的STUN穿越机制,就可以正常使用其服务,STUN支持NAT的多重穿越。

    3.5 MidCom

      Middlebox Communications (MidCom) 是通过在第三方实体和防火墙/NAT之间建立中间盒通讯,使防火墙/NAT设备变为可控的一种新的概念。这种方法是允许第三方成为受防火墙/NAT信任的实体,然后代表防火墙/NAT做出决定,强迫其开放端口传送媒体流或数据流。这些受信任的实体通过“MidCom”定义的新协议与防火墙/NAT进行通信。受信任的第三方实体帮助防火墙/NAT操作,而不必在其中加入智能程序去判断是否允许媒体流通过。这样,防火墙/NAT可以在对应用层内容未知的情况下继续提供安全服务。

    3.6 Full Proxy

      SIP或H.323 proxy可以用于穿越NAT或者FW/NAT,但穿越防火墙时要考虑防火墙是如何配置的。Proxy有点类似于网关,只是在Proxy的两边都是同样的协议,它起不到协议转换的作用。Proxy可以对内外的IP网络都有所了解,并使基于IP的呼叫看起来像两个完全分离的呼叫:其中一个是从内部网络起呼的终端到Proxy,另一个是从Proxy到外部网络上的终呼终端。而这个Proxy则起到把两个呼叫融合在一起的作用,从而解决了NAT的问题。

    3.7 ALG(Application Level Gateway)
      应用层网关(Application layer gateways)是被设计能识别指定IP协议(象H.323、SIP或MGCP)的设备。它不是简单地察看包头信息来决定数据包是否可以通过,而是更深层的分析数据包负载内的数据,也就是应用层的数据。H.323和SIP协议都在负载中放了重要的控制信息,例如语音和视频终端使用哪一个数据端口来接收别的终端的语音和视频数据。通过分析哪一个端口需要打开,防火墙动态地打开那些被应用的端口,而所有别的端口依然安全地保持关闭状态。如果一个NAT被应用来屏蔽内部IP地址,这时ALG就需要一个代理,一些防火墙生产厂商把代理结合到ALG上越过NAT。
      应用层网关可以是单独的连接于外网和内网之间的设备,也可以是内置于防火墙内的插件。当防火墙发现外网呼叫信号为H.323、SIP或MGCP呼叫信息时,将其转发到ALG(应用层网关),通过ALG建立起内网伪地址终端与外网终端的通信连接。它主要完成以下几个功能:H.323、SIP或MGCP协议栈的部分功能、H.323、SIP或MGCP代理服务器、网守、IP地址翻译等。


    3.8 SBC(Session Border Controller)
      SBC方案,是迄今为止,对FW/NAT问题解决最完善的方案,也是UT斯达康公司推荐使用的解决方案之一。实施SBC方案,不仅不用对原有网络中的FW/NAT设备做任何改动,而且对原有网络没有任何特殊要求。
      SBC本身可以被看作支持VoIP的Proxy,它是一种“可识别应用层”的设备,可以识别第五层和第七层的消息,并且还可以处理第五层的众多会话信令协议,修改数据包头的地址,从而实现SBC内外网地址变换。
      SBC同时还可以用于协助VoIP穿越远端防火墙/NAT设备。它一般放置在网络核心交换设备侧。所有经过SBC的信令和媒体流经过SBC的协调和修改,可以在系统侧和用户侧正确传输。用户侧的NAT/Firewall可以接受这种修改后的信令和媒体流并把他们传送到用户侧内网。这种利用SBC实现的防火墙穿越技术可以称之为“远端防火墙穿越”。
      SBC可以帮助SIP/MGCP信令穿越已经存在的FW/NAT,而不需要对现有的FW/NAT设备做任何改变。具体来说,对于SIP终端,SIP终端设备会周期性发注册消息到SBC;对于MGCP终端,当收到MGCP设备的第一个注册消息后,SBC会周期性发AUEP消息到终端,强制其再不停的周期性回复200OK消息。这样,由于不停的有信令消息经过防火墙/NAT设备,可以使防火墙/NAT对通过的消息流始终保持一个确定的端口;同时,当注册信息经过SBC,它将记录在防火墙上的第三层的IP地址和端口等信息,并且将此信息与防火墙后面的终端的用户名或电话号码等第五层信息进行绑定记录。这样,当一个信令到来,SBC将通过防火墙上正确的地址和端口发送给被叫方。
      当呼叫建立后,双向的媒体流端口都是动态建立的。由于媒体流同样也通过SBC,SBC将通过与该媒体流相关的呼叫(第五层消息中的用户名或电话号码)识别出防火墙上的IP地址和端口。因此,SBC可以把相应的媒体流发送到防火墙上的相关IP地址和端口,然后正确的使媒体流到达防火墙后的用户侧。
      SBC本身可以被看作支持VoIP的防火墙,不过它们不仅仅有此功能。它们还可以修改IP包的包头,使IP包能够顺利通过网络边缘设备(如:FW或NAT)。SBC是一种“可识别应用层”的设备,可以识别第五层和第七层的消息,并且还可以处理第五层的众多会话信令协议,修改数据包头的地址,从而实现“远端防火墙穿越”。同时,SBC可以通过对会话数目的限制,实现应用层防D.O.S.攻击。
      4 各种语音穿越防火墙技术的优劣比较




      5 满足市场需求的解决方案
      作为下一代电信网的核心技术, 基于VoIP技术的软交换技术在实际应用时, 无疑需要很多的IP地址,在IPv6技术大规模应用前,VoIP软交换网络中利用私有IP地址是一个节省有限共有IP资源的现实选择,所以实际布网时常常会大量使用NAT。
      防火墙技术是建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,越来越多地应用于专用网络与公用网络的互联环境之中,尤以Internet网络为最甚。
      而作为电信网,互联互通是软交换所必须的,显而易见,使用NAT和防火墙在节省了公有IP资源和保障安全性的同时,也带来了需要解决一些互联互通的问题。
      UT斯达康公司的防火墙/NAT穿透技术针对电信运营商的具体网络需求,给出了完整解决方案。其中,SBC方案可以在不改变网络中其他设备的情况下,保障防火墙/NAT后面的终端用户能够使用所有mSwitch系统所提供的语音/视频/数据服务。不仅如此,SBC设备还可以为mSwitch核心网络提供安全防护功能。传统的数据防火墙不能达到运营商网络在传送实时媒体通信所需要的动态特点和规模,大多数的边缘路由器在执行一些安全功能,如许可控制和地址转换时,主要都是用于单向而非实时的通信,却并不是针对处理VoIP信号通信的特别要求而设计。SBC设备正好就可以跟传统数据防火墙和边缘路由器起到互补作用。UT斯达康公司提供的应用于软交换系统中的FW/NAT穿越方案,结合了高性能和可靠性的优越特点,为运营商提供更多能为其带来盈利的服务。
      6 结语与展望

      从上述各项FW/NAT穿越技术的研究和分析可看出,UT斯达康的软交换系统采用了先进的STUN、SBC等技术,力求为运营商和终端用户提供更为完善的多元化服务。随着科技的进一步发展,FW/NAT穿越技术也必将走向成熟和完善。

    摘要:本文主要参考IETF关于NGN网络中会话业务穿透NAT技术的各种草案,介绍了目前业务开展可以使用的几种NAT穿透技术和方案,并对几种技术方案结合网络的实际情况进行了对比和分析,最后给出了华为公司对NGN业务穿透NAT的解决方案建议。

    缩略语:

    NAT
     Network Address Translation
     网络地址转换
     
    FW
     Fire Wall
     防火墙
     
    ALG
     Application Layer Gateway
     应用层网关
     
    MIDCOM
     Middlebox Communication
     
     
    STUN
     Simple Traversal of UDP Through Network Address Translators
     UDP对NAT的简单穿越
     
    TURN
     Traversal Using Relay NAT
     通过中继方式穿越NAT
     
    Full Proxy
     
     信令代理+媒体中继
     
    SoftX
     
     软交换
     
    SIP
     Session Initiationl Protocol
     会话初始协议
     
    MGCP
     Media Gateway Control Protocol
     网关控制协议
     
    H.248
     
     网关控制协议
     
    H.323
     
     IP网络的会话协议
     
    RTP
     RealTime Transfer Protocol
     实时传输协议
     
    RTCP
     RealTime Transfer Control Protocol
     实时传输控制协议
     

    1         问题背景

    目前NGN网络逐步从试验走向商用,在应用过程中遇到了很多实际问题,特别是NGN用户的接入问题,由于NGN是一个基于分组网承载的网络,接入用户都是通过IP地址来寻址,当前的网络实际情况是,由于IP地址紧缺以及安全等各种原因,网上大量的企业网和驻地网基本上都采用了私有IP地址通过出口的NAT/FW接入公网,而目前NGN网络中在IP 上承载语音和视频的协议,如H323,SIP,MGCP,H248 等,本身具有的特点,在私网用户接入应用中,这些协议的控制通道/媒体通道难以穿越传统的NAT/FW 设备与公网进行互通,或者说目前的NAT/FW大多支持HTTP的数据应用协议穿透,而无法支持这种会话业务的控制与媒体NAT/FW穿透。而NGN网络最大的好处就是能为用户提供丰富的业务,特别是为企业用户提供语音、数据、视频融合的IP Centrex业务,因此上面所提到问题的解决就更加的迫切,成为目前NGN网络业务开展最大的障碍。目前业界的解决方案有如下几种:

    (1)NAT/ALG 方式

    (2)MIDCOM 方式

    (3)STUN 方式

    (4)TURN方式

    (5)Full Proxy 方式

    下面针对企业网、驻地网小区用户接入NGN网络解决方案,对上述几种方式进行简单介绍与分析。

    2         技术方案

    2.1        NAT/ALG方式

    普通NAT是通过修改UDP或TCP报文头部地址信息实现地址的转换,但部分承载于TCP/UDP的应用,例如多媒体会话、文件共享、游戏等“端到端”的应用,在TCP/UDP负载中也需带地址信息。一般的方法,应用程序在负载中填写的是其自身地址,此地址信息在通过NAT时被修改为NAT上对外的地址,即我们常说的ALG方式。

    ALG功能目前主要驻留在一些NAT/Firewall设备中,要求这些设备本身具备应用识别的智能.同时每增加一种新的应用都将需要对NAT/Firewall进行升级。

    对NGN业务应用,ALG需要支持IP 语音和视频协议(H323、SIP、MGCP/H248)的识别和对NAT/Firewall的控制,以使NGN业务顺利穿越NAT/Firewall。
    图1为NAT/ALG方式的应用组网模型,其关键点为:企业网/驻地网内部终端设备能穿透NAT/ALG注册到公网SoftX上,通过SoftX 进行协议解析和呼叫处理.

    公网SoftX和企业网终端通过SIP/H323/MGCP/H248 协议互通,NAT/ALG需要识别SIP/ H323/MGCP/H248协议信令并建立媒体流通道,以支持媒体流顺利穿越NAT/FW。

    对于ALG应用来说,在应用业务安全要求上需要作一些折衷,因为ALG 不能识别加密后的报文内容,所以必须保证报文采用明文传送,这使得报文在公网中传送时有很大的安全隐患。

    NAT/ALG是支持NGN应用一种最简单的方式,但由于网络实际情况是已部署了大量的不支持NGN业务应用的NAT/FW设备,因此我们不推荐使用这种方式,理由如下:

    ¨         网上大量NAT/FW因不具备ALG能力,需要更换或升级

    ¨         NGN业务的ALG生产厂家少,也没有一套产品特性需求基线

    ¨         NAT/FW厂家一般不是IP业务领域的专家,难以支持业务的变化(如SIP的扩展多种多样)

    ¨         用户不愿意重新购买NAT/FW设备,更无法判断各种ALG的可行性

    ¨         用户普遍要求运营商在不改变已有网络设备(NAT)的情况下就可以提供新的IP业务

    2.2        MIDCOM方式

    与NAT/ALG不同的是,MIDCOM的框架结构是采用可信的第三方(MIDCOM Agent)对Middlebox (NAT/FW )进行控制的机制,应用业务识别的智能也由Middlebox转移到外部的MIDCOM Agent上,因此应用协议对Middlebox是透明的 。

    由于应用业务识别的智能从Middlebox移到外部的MIDCOM Agent上,根据MIDCOM 的架构,在不需要更改Middlebox基本特性的基础上,通过对MIDCOM Agent的升级就可以支持更多的新业务,这是相对NAT/ALG方式的一个很大的优势。

    在NGN业务实际应用中,Middlebox功能可驻留在NAT/Firewall,通过软交换设备  (即MIDCOM Agent) 对IP语音和视频协议(H323、SIP、MGCP/H248)的识别和对NAT/ Firewall 的控制,可以作为NGN 业务穿越NAT/Firewall 的一个解决方案。

    从安全性考虑MIDCOM方式可支持控制报文的加密,可支持媒体流的加密,因此安全性比较高。
    图2为MIDCOM 方式的应用组网模型,其关键点为:公网SoftX通过MIDCOM协议对私网边缘的NAT/FW设备进行控制,SoftX识别主被叫侧的SIP/H323/MGCP/H248协议,如主被叫侧均为局内的私网用户,SoftX需要通过MIDCOM协议控制主被叫两侧的NAT/FW,在NAT/FW上创建了媒体流通道后,媒体流可顺利穿越NAT/FW。

    由于软交换设备上已实现了对SIP/H323/MGCP/H248协议的识别,只需在软交换和NAT/FW设备上增加MIDCOM协议即可,而且以后新的应用业务识别随着软交换的支持而支持,因此这种方案是一种比较有前途的解决方案,但现有的NAT/FW设备需升级支持MIDCOM协议。

    2.3        STUN方式

    解决NGN NAT问题的另一思路是,私网接入用户通过某种机制预先得到其地址对应在出口NAT上的对外地址,然后在报文负载中所描述的地址信息就直接填写出口NAT上的对外地址,而不是私网内用户的私有IP地址,这样报文负载中的内容在经过NAT时就无需被修改了,只需按普通NAT流程转换报文头的IP地址即可,负载中的IP地址信息和报文头地址信息又是一致的。STUN协议就是基于此思路来解决应用层地址的转换问题。

    STUN的全称是Simple Traversal of UDP Through Network Address Translators,即UDP对NAT的简单穿越方式。应用程序(即STUN CLIENT)向NAT外的STUN SERVER通过UDP发送请求STUN 消息,STUN SERVER收到请求消息,产生响应消息,响应消息中携带请求消息的源端口,即STUN CLIENT在NAT上对应的外部端口。然后响应消息通过NAT发送给STUN CLIENT,STUN CLIENT通过响应消息体中的内容得知其在NAT上对应的外部地址,并且将其填入以后呼叫协议的UDP负载中,告知对端,本端的RTP接收地址和端口号为NAT外的地址和端口号。由于通过STUN协议已在NAT上预先建立媒体流的NAT映射表项,故媒体流可顺利穿越NAT。

    STUN协议最大的优点是无需现有NAT/FW设备做任何改动。由于实际的网络环境中,已有大量的NAT/FW,并且这些NAT/FW并不支持VoIP的应用,如果用MIDCOM或NAT/ALG方式来解决此问题,需要替换现有的NAT/FW,这是不太容易的。而采用STUN方式无需改动NAT/FW,这是其最大优势,同时STUN方式可在多个NAT串联的网络环境中使用,但MIDCOM方式则无法实现对多级NAT的有效控制。

    STUN的局限性在于需要应用程序支持STUN CLIENT的功能,即NGN的网络终端需具备STUN Client功能。同时STUN并不适合支持TCP连接的穿越,因此不支持H323 应用协议。另外STUN方式还不支持NGN业务对防火墙的穿越,同时STUN方式不支持对对称NAT(Symmetric NAT)类型(在安全性要求较高的企业网中,出口NAT通常就是这种类型)的穿越。

    STUN的应用模型如下:

    图3为STUN方式的应用组网模型,其关键点为:根据STUN原理,STUN Server必须放在公网中,可以内嵌在公网SoftX中,由于通过STUN协议已在NAT上预先建立媒体流的NAT映射表项,故媒体流可顺利穿越NAT。

    2.4  TURN方式

    TURN方式的解决NAT问题的思路与STUN相似,也是基于私网接入用户通过某种机制预先得到其私有地址对应在公网的地址(STUN方式得到的地址为出口NAT上的地址,TURN方式得到地址为TURN Server上的地址),然后在报文负载中所描述的地址信息就直接填写该公网地址的方式,实际应用原理也是一样的。

    展开全文
  • NAT 穿透的几种方式

    千次阅读 2018-01-31 14:00:00
    NAT穿透的几种方式 项目需要,学习了一些NAT方面的知识,想着应该怎么通俗易懂的来说一下,但是一直没有好的思路,直到在看雪论坛发现了一个老帖子,我觉得写的非常好,这里做了一些修改后分享给大家。 作者:...

    NAT穿透的几种方式
    项目需要,学习了一些NAT方面的知识,想着应该怎么通俗易懂的来说一下,但是一直没有好的思路,直到在看雪论坛发现了一个老帖子,我觉得写的非常好,这里做了一些修改后分享给大家。

    作者:heyuehui
    原文地址:http://bbs.pediy.com/showthread.php?t=131961

    1. 什么是NAT? 为什么要使用NAT?
      NAT是将私有地址转换为合法IP地址的技术,通俗的讲就是将内网与外网通信时怎么将内网私有IP地址转换为可在网络中传播的合法IP地址。NAT的出现完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

    2. NAT的分类
      STUN标准中,根据内部终端的地址(LocalIP:LocalPort)到NAT出口的公网地址(PublicIP:PublicPort)的映射方式,把NAT分为四种类型:

    Full Cone NAT: 内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,任何外部主机只要知道这个(PublicIP:PublicPort)就可以发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。

    Restricted Cone NAT: 内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机IP发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,任何端口)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。

    Port Restricted Cone NAT: 内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机(IP,Port)发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,Port)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。

    Symmetric NAT: 内网主机建立一个socket(LocalIP,LocalPort),当用这个socket第一次发数据给外部主机1时,NAT为其映射一个(PublicIP-1,Port-1),以后内网主机发送给外部主机1的所有数据都是用这个(PublicIP-1,Port-1),如果内网主机同时用这个socket给外部主机2发送数据,NAT会为其分配一个(PublicIP-2,Port-2), 以后内网主机发送给外部主机2的所有数据都是用这个(PublicIP-2,Port-2).如果NAT有多于一个公网IP,则PublicIP-1和PublicIP-2可能不同,如果NAT只有一个公网IP,则Port-1和Port-2肯定不同,也就是说一定不能是PublicIP-1等于 PublicIP-2且Port-1等于Port-2。此外,如果任何外部主机想要发送数据给这个内网主机,那么它首先应该收到内网主机发给他的数据,然后才能往回发送,否则即使他知道内网主机的一个(PublicIP,Port)也不能发送数据给内网主机,这种NAT无法实现P2P通信,但是如果另一方是Full Cone NAT,还是可以实现穿透的,下面我会详细分析各种类型NAT穿透的情况。

    1. NAT的原理
      NAT功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中,所以大家很少会感知到NAT,上面NAT类型的概念描述是比较通俗的,但为了便于理解,再举例阐述一下NAT的原理。

    3.1 一方NAT
    现有通信双方A和B,当A和B都是在公网的时候,通信是不用NAT的。假设A在内网,内网IP是192.168.1.3,端口号是5000,A经过NAT后的IP是221.221.221.100,端口号是8000,B的IP是202.105.124.100,端口是8500。如果B要去主动连接A,即使B知道A经过NAT后的IP和端口也是无法连接成功的,因为A没有向B(202.105.124.100:8500)发送过数据,所以B的数据包会被A的NAT丢弃,于是连接失败。但是A如果去主动连接B,由于B是在公网,所以会连接成功,通信也就会建立。这也是反弹连接木马“反弹”二字的精髓。

    3.2 二方NAT
    当A和B都处在内网时,双方由于都不知道对方的公网IP和端口,就会无从下手,所以要在A和B之间架设一台服务器S来为它们牵线,而且S是处在公网,以保证A和B都能连接到S。A和B登录时都首先连接S,S就会知道A和B经过NAT后的IP和端口,当A想要连接B时,就向S发出请求,S会把B经过NAT后的IP和端口告诉A,同时S向B发送A经过NAT后的IP和端口,并要求B发送数据给A,B发送数据到达A时会被A的NAT抛弃,但是B的NAT会有B发送数据到A的记录,这时A再向B发送数据时就会被B的NAT放行,因为B曾经向A的外网IP和端口发送过数据。

    A往B发送数据的唯一阻碍就是NAT_B,所以想要成功发送数据,必须把NAT_B穿一个洞,A是无法完成这项工作的,所以就得让B完成这个打洞操作,也就是让B往A发送数据,这样NAT_B就会误以为A发送的数据是上次会话的一部分从而不予阻拦。但是,由于NAT的类型没有一个统一的标准,所以NAT穿透使用的技术有很多种,穿透的成功率也不一样。还有些NAT类型的内网之间几乎无法穿透。下面我们用实例详细分析一下各种NAT类型穿透的可行性。

    1. NAT穿透
      A机器在私网(192.168.0.3)
      A侧NAT服务器(221.221.221.100)
      B机器在另一个私网(192.168.0.5)
      B侧NAT服务器(210.30.224.70)
      C机器在公网(210.202.14.36)作为A和B之间的中介
      A机器连接C机器,假使是A(192.168.0.3:5000)-> A侧NAT(转换后221.221.221.100:8000)-> C(210.202.14.36:2000)
      B机器也连接C机器,假使是B(192.168.0.5:5000)-> B侧NAT(转换后210.30.224.70:8000)-> C(210.202.14.36:2000)
      A机器连接过C机器后,A向C报告了自己的内部地址(192.168.0.3:5000),此时C不仅知道了A的外部地址(C通过自己看到的221.221.221.100:8000)也知道了A的内部地址。同理C也知道了B的外部地址(210.30.224.70:8000)和内部地址(192.168.0.5:5000)。之后,C作为中介,把A的两个地址告诉了B,同时也把B的两个地址告诉了A。

    假设A先知道了B的两个地址,则A从192.168.0.3:5000处同时向B的两个地址192.168.0.5:5000和210.30.224.70:8000发包,由于A和B在两个不同的NAT后面,故从A(192.168.0.3:5000)到B(192.168.0.5:5000)的包肯定不通,现在看A(192.168.0.3:5000)到B(210.30.224.70:8000)的包,分如下两种情况:

    1.B侧NAT属于Full Cone NAT
    则无论A侧NAT属于Cone NAT还是Symmetric NAT,包都能顺利到达B。如果程序设计得好,使得B主动到A的包也能借用A主动发起建立的通道的话,则即使A侧NAT属于Symmetric NAT,B发出的包也能顺利到达A。

    结论1:只要单侧NAT属于Full Cone NAT,即可实现双向通信。
    2.B侧NAT属于Restricted Cone或Port Restricted Cone, 则包不能到达B。再细分两种情况
    A侧NAT属于Restricted Cone或Port Restricted Cone
    虽然先前那个初始包不曾到达B,但该发包过程已经在A侧NAT上留下了足够的记录:A(192.168.0.3:5000)->(221.221.221.100:8000)->B(210.30.224.70:8000)。如果在这个记录没有超时之前,B也重复和A一样的动作,即向A(221.221.221.100:8000)发包,虽然A侧NAT属于Restricted Cone或Port Restricted Cone,但先前A侧NAT已经认为A已经向B(210.30.224.70:8000)发过包,故B向A(221.221.221.100:8000)发包能够顺利到达A。同理,此后A到B的包,也能顺利到达。

    结论2:只要两侧NAT都不属于Symmetric NAT,也可双向通信。换种说法,只要两侧NAT都属于Cone NAT,即可双向通信。
    A侧NAT属于Symmetric NAT
    因为A侧NAT属于Symmetric NAT,且最初A到C发包的过程在A侧NAT留下了如下记录:A(192.168.0.3:5000)->(221.221.221.100:8000)-> C(210.202.14.36:2000),故A到B发包过程在A侧NAT上留下的记录为:
    A(192.168.0.3:5000)->(221.221.221.100:8001)->B(210.30.224.70:8000)(注意,转换后端口产生了变化)。而B向A的发包,只能根据C给他的关于A的信息,发往A(221.221.221.100:8000),因为A端口受限,故此路不通。再来看B侧NAT,由于B也向A发过了包,且B侧NAT属于Restricted Cone或Port Restricted Cone,故在B侧NAT上留下的记录为:B(192.168.0.5:5000)->(210.30.224.70:8000)->A(221.221.221.100:8000),此后,如果A还继续向B发包的话(因为同一目标,故仍然使用前面的映射),如果B侧NAT属于Restricted Cone,则从A(221.221.221.100:8001)来的包能够顺利到达B;如果B侧NAT属于Port Restricted Cone,则包永远无法到达B。

    结论3:一侧NAT属于Symmetric NAT,另一侧NAT属于Restricted Cone,也可双向通信。
    反过来想,则可以得出另一个结论:

    结论4:两个都是Symmetric NAT或者一个是Symmetric NAT、另一个是Port Restricted Cone,则不能双向通信,因为NAT无法穿透。
    上面的例子虽然只是分析了最初发包是从A到B的情况,但是,由于两者的对称性,前面得出的几条结论没有方向性,双向都适用。

    我们上面得出了四条结论,natcheck网站则把他归结为一条:

    只要两侧NAT都属于Cone NAT(含Full Cone、Restricted Cone和Port Restricted Cone三者),即可双向通信。
    没有把我们的结论3包括进去。

    一般情况下,只有比较注重安全的大公司会使用Symmetric NAT,禁止使用P2P类型的通信,很多地方使用的都是Cone NAT,因此穿透技术还是有发展前景的。

    5.使用UDP、TCP穿透NAT
    上面讲的情况可以直接应用于UDP穿透技术中,使用TCP 协议穿透NAT 的方式和使用UDP 协议穿透NAT 的方式几乎一样,没有什么本质上的区别,只是将无连接的UDP 变成了面向连接的TCP 。

    值得注意是:B在向A打洞时,发送的SYN 数据包,会被NAT_A丢弃。同时,B需要在原来的socket上监听,由于重用socket ,所以需要将socket 属性设置为SO_REUSEADDR 。

    A向B发送连接请求。同样,由于B到A方向的孔已经打好,所以连接会成功,经过3 次握手后,A到B之间的连接就建立起来了。具体过程如下:

    1. S启动两个网络侦听,一个叫【主连接】侦听,一个叫【协助打洞】的侦听。
    2. A和B分别与S的【主连接】保持联系。
    3. 当A需要和B建立直接的TCP连接时,首先连接S的【协助打洞】端口,并发送协助连接申请。同时在该端口号上启动侦听。注意由于要在相同的网络终端上绑定到不同的套接字上,所以必须为这些套接字设置 SO_REUSEADDR 属性(即允许重用),否则侦听会失败。
    4. S的【协助打洞】连接收到A的申请后通过【主连接】通知B,并将A经过NAT-A转换后的公网IP地址和端口等信息告诉B。
    5. B收到S的连接通知后首先与S的【协助打洞】端口连接,随便发送一些数据后立即断开,这样做的目的是让S能知道B经过NAT-B转换后的公网IP和端口号。
    6. B尝试与A经过NAT-A转换后的公网IP地址和端口进行connect,大多数路由器对于不请自到的SYN请求包直接丢弃而导致connect失败,但NAT-B会纪录此次连接的源地址和端口号,为接下来真正的连接做好了准备,这就是所谓的打洞,即B向A打了一个洞,下次A就能直接连接到B刚才使用的端口号了。
    7. 客户端B打洞的同时在相同的端口上启动侦听。B在一切准备就绪以后通过与S的【主连接】回复消息“我已经准备好”,S在收到以后将B经过NAT-B转换后的公网IP和端口号告诉给A。
    8. A收到S回复的B的公网IP和端口号等信息以后,开始连接到B公网IP和端口号,由于在步骤6中B曾经尝试连接过A的公网IP地址和端口,NAT-B纪录了此次连接的信息,所以当A主动连接B时,NAT-B会认为是合法的SYN数据,并允许通过,从而直接的TCP连接建立起来了。
      参考网址:

    http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt
    http://www.vckbase.com/document/viewdoc/?id=1773

    展开全文
  • 摘要:KVM虚拟机网络配置的两方式:NAT方式和Bridge方式。Bridge方式的配置原理和步骤。Bridge方式适用于服务器主机的虚拟化。NAT方式适用于桌面主机的虚拟化。 Bridge方式 问题 客户机安装完成后,需要为...

    摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式。Bridge方式的配置原理和步骤。Bridge方式适用于服务器主机的虚拟化。NAT方式适用于桌面主机的虚拟化。


    nat  的网络结构图:



    bridge 的网络结构见图:



    Bridge方式


    问题

    客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。

    KVM 客户机网络连接有两种方式:

    • 用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。
    • 虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式。

    本文主要解释Bridge方式的配置。


    Bridge方式原理

    Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机

    桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。

    如上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。



    Bridge方式的适用范围

    服务器主机虚拟化。



    网桥方式配置步骤

    1、编辑修改网络设备脚本文件,增加网桥设备br0

    vi /etc/sysconfig/network-scripts/ifcfg-br0
    DEVICE="br0"
    ONBOOT="yes"
    TYPE="Bridge"
    BOOTPROTO=static
    IPADDR=10.0.112.39
    NETMASK=255.255.255.0
    GATEWAY=10.0.112.1
    DEFROUTE=yes

    上述配置将虚拟网卡配置在了10.0.112.* 网段。如果不需要静态地址,可以把配置地址的相关项屏蔽。如:

    DEVICE="br0"
    ONBOOT="yes"
    TYPE="Bridge"
    BOOTPROTO=dhcp


    2、编辑修改网络设备脚本文件,修改网卡设备eth0

    DEVICE="eth0"
    NM_CONTROLLED="no"
    ONBOOT="yes"
    TYPE=Ethernet
    BOOTPROTO=none
    BRIDGE="br0"
    NAME="System eth0"
    HWADDR=44:37:E6:4A:62:AD

    NM_CONTROLLED这个属性值,根据RedHat公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。

    3、重启网络服务

    #service network restart

    4、校验桥接接口

    #brctl show
    bridge name     bridge id               STP enabled     interfaces
    br0             8000.4437e64a62ad       no              eth0



    客户机配置

    客户机安装时注意,网络要选择用br0桥接方式。

    图形化的方式:


    文本方式:

    编辑修改虚拟机配置文件 /etc/libvirt/qemu/v1.xml,增加如下内容

        <interface type='bridge'>
          <mac address='52:54:00:da:c3:dc'/>
          <source bridge='br0'/>
          <model type='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>


    虚拟机启动后,验证网络接口是否正常:

    # brctl show
    bridge name     bridge id               STP enabled     interfaces
    br0             8000.4437e64a62ad       no              eth0
                                                                                  vnet0


    NAT方式的影响

    网桥方式的配置与虚拟机支持模块安装时预置的虚拟网络桥接接口virbr0没有任何关系,配置网桥方式时,可以把virbr0接口(即NAT方式里面的default虚拟网络)删除。

    # virsh net-destroy default
    # virsh net-undefine default
    # service libvirtd restart



    =================================hzhsan:我是一条帅气而又低调的做分隔线================================================


    NAT方式

    问题

    客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。

    KVM 客户机网络连接有两种方式:

    • 用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。
    • 虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式。

    本文主要解释NAT方式的配置。

    NAT方式原理

    NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。

    检查当前的网络设置:

    #virsh net-list --all
    Name State Autostart
    -----------------------------------------
    default active yes

    default是宿主机安装虚拟机支持模块的时候自动安装的。

    检查当前的网络接口:

    #ifconfig
    eth0      Link encap:Ethernet  HWaddr 44:37:E6:4A:62:AD  
              inet6 addr: fe80::4637:e6ff:fe4a:62ad/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:987782 errors:0 dropped:0 overruns:0 frame:0
              TX packets:84155 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:109919111 (104.8 MiB)  TX bytes:12695454 (12.1 MiB)
              Interrupt:17 

    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:4 errors:0 dropped:0 overruns:0 frame:0
              TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:240 (240.0 b)  TX bytes:240 (240.0 b)

    virbr0    Link encap:Ethernet  HWaddr 52:54:00:B9:B0:96  
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2126 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 b)  TX bytes:100387 (98.0 KiB)

    virbr0-nic Link encap:Ethernet  HWaddr 52:54:00:B9:B0:96  
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:500 
              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

    其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把内容分发到各虚拟机。

    几个虚拟机管理模块产生的接口关系如下图:

    从图上可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机

    virbr0是一个桥接器,接收所有到网络192.168.122.*的内容。从下面命令可以验证:

    # brctl show
    bridge name     bridge id               STP enabled     interfaces
    virbr0          8000.525400b9b096       yes             virbr0-nic

    # route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0

    同时,虚拟机支持模块会修改iptables规则,通过命令可以查看:

    # iptables -t nat -L -nv
    Chain PREROUTING (policy ACCEPT 16924 packets, 2759K bytes)
    pkts bytes target     prot opt in     out     source               destination
    Chain POSTROUTING (policy ACCEPT 2009 packets, 125K bytes)
    pkts bytes target     prot opt in     out     source               destination        
     421 31847 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24   ----------->这条是关键,它配置了NAT功能。
    Chain OUTPUT (policy ACCEPT 2011 packets, 125K bytes)
    pkts bytes target     prot opt in     out     source               destination        

        
    # iptables -t filter -L -nv
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in     out     source               destination        
     1    74 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           udp dpt:53    ---->由libvirt脚本自动写入
     0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53    ---->由libvirt脚本自动写入
     3   984 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           udp dpt:67    ---->由libvirt脚本自动写入
     0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           tcp dpt:67    ---->由libvirt脚本自动写入
    178K  195M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED    ---->iptables的系统预设
     2   168 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0                ---->iptables的系统预设
    1148  216K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0                ---->iptables的系统预设
     1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22  ---->iptables的系统预设
    16564 2721K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited ---->iptables的系统预设
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in     out     source               destination        
    3726 3485K ACCEPT     all  --  *      virbr0  0.0.0.0/0            192.168.122.0/24    state RELATED,ESTABLISHED  ---->由libvirt脚本自动写入
    3491  399K ACCEPT     all  --  virbr0 *       192.168.122.0/24     0.0.0.0/0                ---->由libvirt脚本自动写入
     0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0                ---->由libvirt脚本自动写入
     0     0 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable  ---->由libvirt脚本自动写入
     0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable  ---->由libvirt脚本自动写入
     0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited  ---->iptables的系统预设
    Chain OUTPUT (policy ACCEPT 181K packets, 138M bytes)
    pkts bytes target     prot opt in     out     source               destination


    如果没有default的话,或者需要扩展自己的虚拟网络,可以使用命令重新安装NAT。

    NAT方式的适用范围

    桌面主机虚拟化。

    创建步骤

    #virsh net-define /usr/share/libvirt/networks/default.xml

    此命令定义一个虚拟网络,default.xml的内容:

    <network>
      <name>default</name>
      <bridge name="virbr0" />
      <forward/>
      <ip address="192.168.122.1" netmask="255.255.255.0">
        <dhcp>
          <range start="192.168.122.2" end="192.168.122.254" />
        </dhcp>
      </ip>
    </network>

    也可以修改xml,创建自己的虚拟网络。

    标记为自动启动:

    #virsh net-autostart default
    Network default marked as autostarted

    启动网络:

    #virsh net-start default
    Network default started

    网络启动后可以用命令brctl show 查看和验证。

    修改/etc/sysctl.conf中参数,允许ip转发:

    net.ipv4.ip_forward=1


    客户机安装

    客户机安装时注意,网络要选择用NAT方式。

    图形化的方式:

    文本方式:

    编辑修改虚拟机配置文件 /etc/libvirt/qemu/v1.xml,增加如下内容

        <interface type='network'>
          <mac address='52:54:00:4f:1b:07'/>
          <source network='default'/>
          <model type='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>


    虚拟机启动后,验证网络接口是否正常:

    # brctl show
    bridge name     bridge id               STP enabled     interfaces
    virbr0          8000.525400b9b096       yes             virbr0-nic
                                                                                     vnet0

    Bridge方式的影响

    Bridge方式配置出来的接口对NAT方式没有影响,因为NAT方式并没有使用物理网卡。但作为客户机,只能选择其中的一种。

    ----------------------------------------------------------
    转自:
    http://www.linuxidc.com/Linux/2012-05/61445.htm
    http://www.linuxidc.com/Linux/2012-05/61445p2.htm

    展开全文
  • 目前几种常见穿NAT的方法分析

    NAT的出现在一定程度上解决了发展中国家网络地址资源不足的情况,然而,这种解决方法也带来了一些问题,尤其是对网络要求十分苛刻的流媒体传输方面,这些问题变得尤为突出(什么是NAT请参考BOLG的另外一篇文章),在一个带有NAT结构的网络环境中,不能实现P2P(peer to peer也就是点对点)的数据传输是VOIP的一个硬伤,而如何穿过这些NAT,实现数据的点对点传输也成了VOIP开发人员不得不面对的一个头疼问题.

           目前,解决NAT问题的方法大体有四种(按照我的个人观点,不同意的请拍砖):修改设备、辅助探测、设备支持和流中转。下面我来分别说明。

           (1)修改设备。这种方法也就是通过修改防火墙、router等方法,对在有NAT情况下,实现P2P的数据传输方式。优点很明显,不用对UA做任何修改,缺点也同样突出:不可能指望所有的防火墙或者router都支持。这种方法不牵扯到技术方面的东西,更多的工作交了防火墙或者router开发人员,我不想多说。

           (2)辅助探测。和第一种方法相比较,这种方法不需要对防火墙或者router做任何修改,但UAC需要做一些配合,才能完成NAT的穿越。STUN是这种穿越方式的典型代表。STUN是RFC为了解决NAT而做出的一个标准(你可以在RFC下载到相关文挡,在我的开发资源里面有连接),符合这个标准的UAC和服务器,依靠他们之间的一些信息交换,可以确定出UAC在公网的IP地址和端口,从而达到穿越NAT实现P2P的目的。STUN不需要修改网络的任何部分,也可以在多层NAT下,实现P2P(注:并不是真正意义上的P2P),是一种很可靠的NAT解决方法,因此,STUN在NAT的初期得到了迅速的发展,你可以找到很多支持STUN的UAC和server资源。STUN的缺点也是显而易见的:首先,他需要UAC支持。其次用这种方法必须要得到服务器的支持并且要求UAC不停的向一个公网IP发送数据包以维持端口(keep alive)。而这几个都不是STUN的硬伤,真正置STUN于死地的是一种叫对称NAT的NAT类型,对于这种NAT类型,STUN 无能为力。在NAT的早期,这种对称NAT是很少的,然而,随着对网络安全要求的提高,目前生产的NAT几乎全是对称NAT,这也就等同于宣布STUN的死亡。

          (3)设备支持。这种方法和第一种有些类似,但是区别也是很大的,我用这种方法的典型实例:UPNP来说明。UPNP是微软和Intel力推的一种标准(显然这两个家伙大家都不喜欢,但这并不意味着它们的东西不好),你可以认为这种标准是另一种USB标准,只要你符合这种标准,你生产的USB设备可以被世界上任何一天USB设备使用(我不想讨论主从的问题)。而UPNP是网络设备的USB标准,只要你生产的设备符合UPNP标准,那么它就变成了可以连接到网络上的,通过网络控制的USB设备,你用就可以,而不需要关心如何用,怎么用。

          第一次看到UPNP的协议文挡的时候,我就对自己说:这是个好东西。尤其是当我看到,目前绝大部分(近期生产)网络设备都支持UPNP的时候,我就更加坚信了我的观点。

         事实上,我们穿越NAT所需要用的只是UPNP协议族中的一个:WANIPCONNECT SERVICE,也就是互连网接入服务(请允许我这么翻译,虽然这么有点不恰当,但是更加通俗)。你可以理解为USB设备有N多,而我们用的是U盘一样。通过这个协议,你可以控制互连网接入设备(通常是router),来做一些特殊操作,打开一个IP地址影射来实现P2P。这个过程很简单,只是发几个符合要求的数据包给UPNP服务设备,但功能却很强大,的确很迷人。(你可以在开发资源里面找到UPNP的相关连接)

         UPNP的优点如上所说,不需要在累述,但缺点也是有的:1、他需要UAC支持,完成对UPNP设备的控制,令人高兴的是,这不是很难。2、这种方法不支持多层NAT嵌套。3、总会碰到不支持UPNP或者号称支持,实际上却不支持的UPNP设备。

         (4)流中转。流中转是依靠一个公网服务器对两个UAC的RTP流进行中转的方式解决NAT问题(注意:只是解决,而不是实现P2P),在这种方式下,UAC不需要做任何修改(或者很少修改),并且可以穿越所有的NAT。典型的是outbound。也就是具有公网IP的一台RTP流转发服务器。如果outbound server和sip server 没有合成到一个程序中,那么你必须首先把信令发送给outbound server,其它的你不需要再关心。如果是已经合成了一个,那你可以象在公网中一样使用你的UAC,不必再考虑NAT的问题(舒服吧)。

          流转发(outbound)方式简单,可靠。它使你不再需要考虑NAT的任何东西,可以穿越所有NAT,并且UAC不需要做任何修改,目前网络上有很多SERVER都是工作在这种方式下。但是它的代价也是昂贵的:它不能实现P2P。这在两个UAC距离服务器很远的情况下,会有高的网络延时和高的丢包率,而这种环境下的语音或者视频效果,可能是你不能忍受的。

          由于我水平有限,我所知道的NAT解决方案就这四种。如果你问我:xxx方式(比如ICE)怎么没有的时候,请您先考虑下这种方法是不是上面方法中的一种或几种的组合(比如汽车是一种交通工具,船也是一种,而我并不认为你把汽车和船弄到了一起就是种新的交通工具),当您知道有别的好的NAT解决方案的时候,麻烦您通知我下,在此谢过。

     

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wcl0715/archive/2006/04/25/676078.aspx

    展开全文
  • 虚拟机就是利用真实机的环境用软件的方式模拟成类似真实机系统的一个软件,现在主流的有微软的虚拟机,有vmare,orcale virtualBOx(orcale virtualBOx原名叫Sun virtualBOx 前不久刚被orcale公司收购所以改名为...
  • 其实现方式主要有三:   1.静态转换(一对一)  静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。私有地址和公有地址的对应...
  • 种NAT方式

    千次阅读 多人点赞 2020-07-20 22:54:18
    1.什么叫NAT(network address translations)?网络地址转换 :把企业网引人internet 2.把 企业内部的私网地址转换成公网地址后,应用公网地址共享连接internet的服务。 3.IP地址从用途上分类? 私网地址和公网地址 ...
  • wmware nat host-only等几种网络连接详解

    千次阅读 2011-04-21 11:57:00
    在说到VMware的网络模型之前,先说一下VMware的个虚拟设备:   VMnet0:这是VMware用于虚拟桥接网络下的虚拟交换机; VMnet1:这是VMware用于虚拟Host-Only网络下的虚拟交换机;...
  • NAT几种类型

    万次阅读 2018-09-27 15:40:17
    NAT(Network Address Translation,网络地址转换),当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法...
  • Summary 使用libvirt安装完qemu kvm...KVM虚拟机网络配置一般的两种方式NAT (默认上网) 虚拟机利用host机器的ip进行上网.对外显示一个ip Bridge 将虚拟机桥接到host机器的网卡上,guest和host机器都通过brid...
  • 配置 NAT 的 3 种方式

    千次阅读 2020-12-07 14:03:48
    文章目录NAT作用场景困难的背后原因Easy-ipAddrees-GroupServer NAT Network Address Translation,网络地址转换,是 1994 年提出的。 作用 解决 IP 地址不足的问题。(宽带分享) 有效避免来自网络外部的攻击,...
  • 种NAT网络结构

    2020-04-08 20:39:07
    种NAT网络结构引言1 完全圆锥型NAT2 IP限制圆锥型NAT3 Port限制圆锥型NAT4 对称型NAT5 总结 引言 NAT是将内网地址映射转换为外网地址的一地址转换方式,这节省了有限的IP地址资源。一般来讲,分为对称型NAT和...
  • 桥接模式:这是最简单的 也是最方便的一模式,使用的虚拟网卡我们的网络适配器界面中的Vmnet0;这种情况下:虚拟机会占用宿主机网段内的真实IP地址,宿主机、虚拟机以及网络之间的相互通讯都是通的;缺点就是会占用...
  • Sisco的几种常见 NAT 配置

    千次阅读 2009-12-26 21:26:00
    Sisco的几种常见 NAT 配置网络图如下: 1. 动态NAT配置 动态NAT一般用于局域网中多个私有IP在出口时,从公有IP地址池中提取合法的公有IP对外访问。 设内部局域网使用10.0.0.0网络,公网IP地址 133.1.1.33~133.1....
  • 磨刀不误砍柴工,为了更好地使用虚拟机,了解这几种连接模式的主要用途以及它们之间的区别是非常有必要的。在这里,我们就以下面的网络连接示意图为例来进行相关介绍。 在VMware中,虚拟机的网络连接主要是由VMware...
  • NAT网络地址转换的3实现方式

    千次阅读 2009-08-07 09:08:00
    1、静态NAT(一对一) 2、动态NAT(多对多) 3、端口多路复用PAT(多对一) 1、静态配置 (1)配置外部接口IP地址 (2)配置内部接口IP 地址 (3)在内部局部和内部全局地址之间建立地址转换 router(config)#ip nat ...
  • VirtualBox虚拟机几种网络连接方式介绍

    万次阅读 多人点赞 2018-04-11 00:27:59
    为了学习和使用Linux,多数人选择了使用VirtualBox...本文将主要介绍常用的桥接、NAT和host-only三种网络连接方式的区别,以减少大家在使用中的困扰。一、不同网络连接方式对网络网络影响简介: 桥接NAThost-on...
  • Vm三种网络模式介绍以及配置NAT网络连接模式,并进行xshell远程连接 点击网络适配器后,会发现有三种网络模式,分别为桥接模式、NAT模式、主机模式 1)、三种网络模式介绍 分别介绍三种模式的区别,以及详细介绍...
  • 虚拟机几种联网模式详解_桥接_nat_模式解析
  • NAT有哪几种?和端口映射有什么区别? 参考链接:https://blog.csdn.net/csdn10086110/article/details/100895703 私有地址: 10.0.0.0-10.255.255.255; 172.16.0.0-172.31.255.255; 192.168.0.0-192.168.255....
  • VirtualBox四种网络模式仅主机模式、NAT模式、桥接网络和内部网络模式介绍 ①VirtualBox四种网络选型原则 第一:每个网络只负载一种业务类型的数据流量,功能单一化。 例如连接外网用一个网络、虚拟机之间互...
  • 私有地址: 10.0.0.0-10.255.255.255; 172.16.0.0-172.31.255.255;...此种方式下,转换上层协议就是不必要的,因为一个公网IP就能唯一对应一个内部主机。显然,这种方式对节约公网IP没有太大意义,主要...
  • 文章目录出现原因基本概念NAT技术基本原理源NAT技术静态NAT动态NATNAPTEasy IPNAT ALGNAT服务器双向NAT技术...为了解决由于IPv4地址短缺问题,有以下几种解决方法: VLSM:可变长子网掩码 NAT网络地址转换技术 I...
  • 自结:NetworkManager管理指定配置文件配置的网络接口,根据接口配置定义网络环境。/etc/sysconfig/network-scripts/ifcfg-ens88 中定义nm_controlled=yes那么此配置文件就被networkmanager管理了。 问题产生背景...
  • 虚拟机的几种网络方式详解

    千次阅读 2011-01-24 13:29:00
    虚拟机的几种网络方式详解本部分作为2部分进行讲解1.虚拟机常见的上网模式详细解析2.在使用虚拟机中常见的问题处理先看问题1虚拟机常见的上网模式详细解析虚拟机就是利用真实机的环境用软件的方式模拟成类似真实机...
  • 在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥接模式、NAT模式、仅主机...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,445
精华内容 15,778
关键字:

几种方式网络nat