网络基础知识讲座二十:初步了解隧道技术

  作者:Amteam.org
2006/9/5 9:51:00
本文关键字: 存储 备份

现在的计算机领域越来越依赖于各种类型的隧道技术。所有的远程接入VPN(虚拟专用网)都要用隧道,你还经常听到计算机狂人们在谈论SSH(安全Shell)隧道。利用隧道技术你可以完成许多令人惊讶的工作,所以请舒舒服服地坐好吧,愉快地享受这一期关于隧道技术及其用途的知识讲座。如果你想了解IP安全协议(IPSec)的具体情况,我们会在以后的基础知识讲座中阐述。

隧道技术的主要作用是让一种网络不支持的外来协议通过该网络。隧道协议可以让你利用诸如IP等协议通过IP数据包的“数据”部分发送另一种协议。大多数隧道协议作用在第4层,这就意味着这些协议可以用来代替TCP(传输控制协议)或UDP(用户数据报协议)等协议的功能。

VPN隧道技术允许远程客户通过隧道进入我们的网络,这一点证明了早前关于隧道被用于那些“不受支持协议”的观点,尽管该作用并不显而易见。如果我们要通过VPN才能实现打印机和文件共享,那可能是因为端口139和445(Windows的配对端口)已被关闭,实际上对于我们的边界路由器来说,这两个端口是不受支持的TCP端口。然而,如果在已知的VPN服务器上采用IPSec或PPTP(点对点隧道协议),那么一切就“都没问题”了。

被发往活动目录(Active Directory)服务器端口445的数据包将被隐藏为VPN数据包。当这些数据包到达VPN服务器时,服务器会对数据包进行解包(demux,即de-multiplex,也被称为disassemble),然后将其发送到内部网络上。当数据包到达内部网络时,其源地址现在就是VPN服务器的内部IP,这样内部网络做出的响应就能返回VPN服务器。除了这一点,数据包都会完全按照你的意图行事。VPN服务器一收到响应,就会给该数据包添加VPN头并封装起来,然后通过其外部接口把它发回给你。

关于VPN隧道要注意几个有意思的地方:一旦你的数据到达内部网络,它就已经被解密;而当这些数据通过Internet时,会有一些特别的“东西”被加入到数据包中。

有一点我们没有提及,但是也许很明显,那就是VPN协议在传送你的数据包之前会为其加密。对于理解隧道概念这无关紧要,不过却值得一提。注意这种加密并不是端对端,也就是说你和服务器之间的通信不是真正安全的。当然你自己和你的网络之间很安全,别人无法窥探,然而一旦数据包从VPN服务器出来,就会再一次被解密。

说到第二个有意思的地方,我们先来了解一下最基本的IP封装原理。从概念上来说,我们是把数据包嵌套,更确切地说, 外部的IP数据包的数据部分要包含一个完整的IP数据包。很妙,是不是?这样我们就解释了IPIP隧道的概念:IP被包含在IP数据包中。

图1

如图1所示,IP数据包的数据部分包含了一个崭新的IP数据包。除了加密,它与VPN隧道技术的作用是一样的。当你的数据包顶端带了个“附加的包头”时,你无法发送大量的数据,因为第一个IP头就占用了20个节字。认识这一点非常重要,因为在采用隧道技术时会突然出现Path MTU(最大传输单元)问题。

"建立SSH隧道"是一件很奇妙也很让人费解的事,也就是采用SSH协议通过隧道传送数据。X11程序(例如一个图形用户界面程序)如果需要连接一个显示终端。它可以非常轻松地通过SSH隧道传送数据。X的客户(例如弹出窗口程序)会试图连接显示器所在的工作站上的X服务器,如果你与一台服务器之间采用了SSH,并且各选项设置无误,那么程序试图连接X的信息将被通过隧道返回给你本地的计算机,解密后再传送给你本机机上的X服务器。现在来试着建立SSH隧道吧:执行“ssh-Y user@hostname.com”命令,然后一旦进入就运行firefox,它应该显示在你的本地计算机上,而且是通过加密SSH隧道实现的。

因为OpenSSH的能力很有趣,并且有助于我们理解隧道概念,所以我们来看看SSH另外两个小技巧。

你可以把到自己计算机上的一个端口的连接转发给一台远程计算机,它将你的数据通过SSH隧道传送,使之安全可靠。这看起来似乎没什么用处,毕竟,为什么我要把自己计算机上的端口发给另一台计算机呢?要回答这个问题我们先要澄清一些概念。SSH转发端口之前首先要侦听本地端口是否有连接,当建立连接后,SSH就把整个连接发送给远程主机和端口,这是一个单端口VPN!

例如:ssh -L80:workserver.com:80 user@workdesktop.com

这条命令在本机与workdesktop.com计算机之间建立一个SSH连接,而与此同时也打开了你本地计算机上的端口80。如果你让web浏览器指向http://localhost,此连接就会通过SSH连接被发送至workdesktop.com,进而又发送至workserver.com服务器的端口80上。这非常有益于从家里访问那些仅存在于Intranet上的站点,而无需先连接至VPN服务器。

最新的OpenSSH版本同样支持SSH上的IP隧道技术。实际上,它也支持以太网(Ethernet),目的是将两个以太网广播域桥接在一起;也就是通过SSH加密!在OpenSSH的隧道选项中,人们可以设置全功能的SSH-VPN隧道,使之在任何SSH网络上都能实现。它在两端都创建隧道接口,而唯一需要手动配置的只是路由表。如果你想让所有发往目的网络的数据都通过加密隧道来发送,那么你只需为目的网络增加一条路由,并把它指向SSH自动创建的隧道接口。这确实是目前最无可争议的VPN设置了。

隧道也传送其它协议。希望上述内容能够让你深入了解隧道技术,激发一点兴趣,或者至少让某些人不再觉得这种技术多么神秘。

小结

隧道技术用于在各种不同的网络中发送不受支持的协议。

通过隧道的数据、VPN或其它内容使数据包增大,所以每个数据包所发送的数据量减少。

一般来说,通过SSH隧道发送数据是一种根据具体应用建立的VPN,然而最新版本的OpenSSH可实现一个完全成熟、无可争议的VPN。

 
(责任编辑: 51CTO.com TEL:010-68476606)

网络基础知识讲座十九:了解多播路由协议
网络基础知识讲座十八:了解iBGP路由协议
网络基础知识讲座十七:BGP路由协议初步
网络基础知识讲座十六:因特网路由和对等互联
网络基础知识讲座十五:OSPF路由协议进阶
网络基础知识讲座十四:OSPF路由协议初步
网络基础知识讲座十三:路由信息协议(RIP)
网络基础知识讲座十二:路由协议基础知识
网络基础知识讲座之十一:互联网的管理架构
网络基础知识讲座之十:TCP协议理解进阶
网络基础知识讲座之九:初步理解TCP协议
网络基础知识讲座之八:初步理解IP协议
网络基础知识讲座之七:理解和使用ICMP协议
网络基础知识讲座之六:实现子网(包括IPv6)
网络基础知识讲座之五:学习生成树协议
网络基础知识讲座之四:理解数据链路层
网络基础知识讲座之三:理解OSI网络分层
网络基础知识讲座之二:理解子网和CIDR
网络基础知识讲座之一:理解IPv4地址的含义
责编:
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

著作权声明:kaiyun体育官方人口 文章著作权分属kaiyun体育官方人口 、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
最新专题
网络安全热点透析

随着移动互联、大数据、云计算、物联网等技术的日益发展,在这些热点技术为个人生活带来便利的同时,也为企业发展..

数据安全医药行业解决方案

采用身份鉴别、访问控制、数据加密以及权限控制等多种安全防护技术手段,保障数据库中医药数据只能被合法用户合规..

    畅享
    首页
    返回
    顶部
    ×
      信息化规划
      IT总包
      供应商选型
      IT监理
      开发维护外包
      评估维权
    客服电话
    400-698-9918
    Baidu
    map