首页 > 新闻 > 专家观点 >

《FreeSWITCH 1.2》:NAT处理

2014-05-05 14:04:31   作者:   来源:CTI论坛   评论:0  点击:


  在本书的开头我们讨论了传统。越来越多的事物发生了改变,而越来越多的人希望事物保持原貌。它仅是科技演变的一个部分。我们的汽车仍然需要一个里程表;我们喜爱的网站的图片看上去还是老式风格的按钮开关。我们作为社会的一员,座右铭: "如果东西没被损坏的话,那就不要修补它!" 伴随我们一生。同样的道理也可以应用在一些看起来相对现代的事情上,例如"我们如何获得网络"。我们大部分人还是对如何通过我们的一些小创新发明来访问网络这些细节毫不知情。在这个精彩的VOIP世界中,当我们面对令人担心的NAT问题(网络地址转换)来临时之前,我们可以冒险尝试一下这个离我们不远的挑战。

  在这一章节,我们将讨论:

  ·NAT 简要介绍,包括一个历史简介

  ·四个NAT陷阱

  ·在FreeSWITCH 配置设置来帮助克服NAT

  ·排查技巧

  NAT简要介绍

  给一个根本不关心技术术语的人介绍NAT问题,一个好的办法就是采用一个类似的方法来做介绍。想想一个巨大的报告大楼和和它的邮件收发室。一个在第十层工作的员工给你寄一个包裹,这个员工需要把包裹放到第一层的邮件收发室。这个包裹被投送到邮局,然后再转寄到你的住处。 在包裹上标明的寄回地址实际上是整栋办公大楼的地址,不是那个第十层的小办公间的地址。现在你计划把这个包裹再寄回去,你把这个包裹再投送到邮局,邮局再次把这个包裹投送到这个办公大楼,在邮件收发室的员工必须找出这个包裹需要分发的具体办公室地址,通过你的名字和在本大楼的办公室号码地址匹配查询,然后找到第十层的员工,最后把这个包裹发送到第十层的员工办公室。这里,邮件收发室就像一个NAT路由器,因为邮件收发室代理了邮局和办公大楼之间的邮件来往。办公室就像一个内网地址,因为它们不能直接获得或访问这些邮件。想象一下这样的场景,如果这个办公室投递的信息非常散乱,没有在包裹上标明办公室名称,当你寄回这个包裹时,邮件收发室的员工根本没有办法知道是哪个办公室寄出的包裹。这个就是一个NAT问题,包裹可能会丢失,就像你的呼叫一样。也许你可以收到这个包裹,同时也注意到包裹上没有标明办公室名称或号码,但是因为你正在等待这个包裹,可能你清楚是哪一个办公室寄出来的包裹,当你寄回到时候,你在包裹上做了一个办公室的标注。这个功能就是你创建的ANTI-NAT 功能。

  当谈到网络时,NAT是一个技术话题,当整个内网(网络不能直接访问外网) 连接到一个单独的设备,这个设备可以访问外网,并且有一个单独的公网IP地址,通过这样的方式对内网提供网络连接。因为我们目前的IP地址资源非常紧张,因此主要的目的是降低对公网IP数量的要求。到现在我们写这本书的时候,已经使用了四百万个IP地址。

  把所有的内网设备都放置在NAT背后可以保护用户计算机设备和其他的设备不受攻击因为这些设备对于外网来说是不可见的。专家认为这不是最终的解决安全方案,因为仍然有一些方法可以威胁到NAT背后的设备安全,但是这种方法可以作为一个额外的保护,并且当配合其他的安全措施时,可以提高我们的对内网安全的保护。另外,用户将在第十三章VoIP安全中了解更多细节。

  了解NAT的演变

  自从网络技术普及以后,IPv4 地址的需求一直在增加。当需求增加时,地址池中的地址资源已经耗尽,出现了IPv4 地址的短缺。目前最受欢迎的解决地址短缺的两个主要解决办法是- NAT和IPv6。

  NAT 已经变成了一种非常受欢迎的方法,通过采用公网IP地址子集,利用他们来覆盖一个网内地大量设备,通过分配不同的内网地址来支持这些设备。NAT开始使用是在二十世纪90年代左右,当时是为了解决IP 地址的短缺问题直到现在IPv6已经开始使用,因为这种方式比较受欢迎,人们还是继续使用这种方式。与此同时,系统管理员还要被迫接受NAT的一些传统架构,并且因为它的流行我们还要接受这种方式来支持我们的软件和其他设备。

  新标准IPv6可以解决IP地址短缺的问题,它添加了很多公网IP地址,我们有上万亿的IP地址,这些地址可以覆盖地球表面的每一个平方英寸的地方。我们可以设定一个IP地址段为我们目前所知道的整个网络世界,对每一个在这个星球的生命,即使这样设置地址资源也不会对整个IPv6 地址池有任何不利的影响。IPv6 规范在1998年发布,使用的势头真正慢慢开始增长。IPv6相对于已经从二十世纪70年代开始广泛使用的IPv4,它目前还落后于IPv4。很有可能,即使我们全部采用了IPv6,NAT问题的仍然会伴随我们很长一段时间。

  (也许如果用户一直考虑这个问题,FreeSWITCH已经支持了在IPv6 网络环境下的SIP和RTP。更多关于这个话题的讨论,请访问:http://wiki.freeswitch.org.)

  对于IP通信世界中的用户,NAT是一个尽人皆知的不雅的词汇(至少经常在一些语言交流中会伴随出现不雅的用词)。因为当用户遇到NAT问题时,常常被搞的抓耳挠腮。用户已经对IP网络环境有了一定的了解,并且用户可以轻松找到各种介绍关于NAT的文档,我们尽量省略了IP网络的细节。用户现在需要做到事情就是对NAT陷阱有足够的了解,这样可以为用户即使大量的时间,否则你可能真的要用头撞墙或让你愁的拽自己的头发了。本章的目标是对用户讲述如何通过使用FreeSWITCH的ANTI-NAT功能来成功地航行于NAT的危险水域。祝你好运!我们所有的人都在支持你!

  处理NAT问题的关键是因为设备(电话)一般都在NAT背后,并且VOIP网络对于公共网络来说是不可见的,所以当用户呼叫这个设备时,非常困难连接到这个相应的设备。另外一个比较严重的问题是一些协议,例如SIP,当部署在NAT环境中时,协议可能被破坏。如果用户觉得整个事情让你彻底迷惑时,放松一下,事实上,我们已经为用户简化了NAT的设置。现在貌似看起来让人发疯,但是以前的环境可能更加糟糕。

  老实说,FreeSWITCH 开发人员最初对NAT 其他的立场是, "不是我们的问题!"在理想世界下,每个在NAT防火墙背后的设备都应该非常了解它们的环境,并且可以成功解决自己的问题。不幸的是,我们没有生活在那个理想的世界(当然,如果我们生活在一个理想的世界,我们都没有工作,因为没有任何问题需要我们解决)。所以,我们决定, "好吧,我们试试!" 我们从用户中学习,他们使用的各种各样的设备来配合FreeSWITCH工作,但是这些设备完全没有任何办法来应对NAT问题。不久,我们开始了这个意义深远的任务,尽管这些设备本身还有很多缺陷,我们还是希望通过开发一种技术来支持这些设备。

  NAT是一个非常难缠的对手,软弱的人是没有机会应对的。

  NAT的四个陷阱

  有四个基本的NAT陷阱,我们每个人都需要学习。了解了这些陷阱,用户学习到了处理NAT场景的技巧,就不会面对太多的疑问:

  ·NAT 可以在那些用户自己都不知道的地方。不一定非要涉及到网络(Internet)。

  ·任何两种解决NAT的技术在一起使用,会导致互相之间冲突。

  ·一些设备使用SIP ALG (Application Layer Gateway) 来战胜NAT问题。

  ·NAT纠正技术可以错误地定位一个环境,可能使得环境变得更加糟糕。

  尽量熟悉这些陷阱。我们会经常讨论这些问题,这些问题会贯穿整个章节。让我们现在详细讨论一下这些细节:

  NAT 可以在任何用户不知道的地方。不一定涉及网络。

  如果用户正在使用家庭网络服务,或商业级的服务,他们可能使用NAT来管理他们的客户,把客户端服务设置在一个分离的网络环境中,然后在进行一个网络地址转换,转换到其他的网络分段。在用户设备和目的地之间这样的情况不仅仅发生一次可能多次发生用户不能控制这样的事情发生。对很多使用VOIP的用户来说,这样的情况会引起很多问题。大部分的VoIP 协议仅支持基本的NAT处理功能而且经常出现问题。这就是很多家庭用户从家里面使用VOIP时首先面对的问题。NAT可以出现在一个内网地址访问多个其他内网地址无需连接外网网络服务的环境中。对于NAT,访问网络是最普遍的使用方法,但是可以在内部网络中划分一个独立的网络来获得网络访问。如果用户询问邻居VOIP专家在线问题,他可能判断是一个NAT问题,不一定是因为你使用没有访问网络,或可能用户自己也不清楚是否存在NAT问题。

  未完待续······

相关阅读:

分享到: 收藏

专题