Linux中IP隧道的分析与建议

好想做个局外人

好想做个局外人

2016-01-29 19:43

Linux中IP隧道的分析与建议,Linux中IP隧道的分析与建议
  ****************************************************************

作者的话:

本文系在阅读Linux源码及一些相关资料的基础上写成的。

欢迎就文章的各个方面提出建议和批评意见,作者希望更多的交流和探讨。

欢迎在保留原文完整性的前提下在网上转贴,需部分引用请通知作者。

传统媒体转载和引用此文,请务必经过作者同意。

欢迎在实际的应用中使用此文提出的思想,希望同时知会作者。



作者信箱: xiaoman04@hotmail.com



欢迎来信!!
*****************************************************************

O、

由于网络的日益普及,网络的安全成为目前的热门话题。本文对隧道技术的分析,

就侧重安全领域,对利用隧道技术实现虚拟专网提出建议。



为什么需要IP隧道?没有接触过这个概念的人自然提出这样的疑问。实际上概念

最初的提出很简单,为了在TCP/IP网络中传输其他协议的数据包。设想IPX协议或

X.25封装的数据包如何通过Internet网进行传输,在已经使用多年的桥接技术中是

通过在源协议数据包上再套上一个IP协议头来实现,形成的IP数据包通过Internet后

卸去IP头,还原成源协议数据包,传送给目的站点。对源协议数据来说,就如被IP

带着过了一条隧道。这种技术在业余无线网络(Amateur Packet Radio network,

应该怎么翻,请告诉我)得到了最广泛的应用。

利用IP隧道来传送的协议包也包括IP数据包,本文主要分析的IPIP封包就是如此,从字

面来理解IPIP就对了,就是把一个IP数据包又套在一个IP包里。为什么要这么做呢?

多此一举嘛。其实不然,见过一些应用就会明白,移动IP(Mobile-IP)和IP多点广播

(IP-Multicast)是两个通常的例子。目前,IP隧道技术在构筑虚拟专网( Virtual 

Private Network)中也显示出极大的魅力。本文也将对利用IP隧道技术构筑VPN做

简单设想。







背景:隧道的多种理解和实现



Internet的研究者多年前就感到需要在网络中建立隧道,最初的理解是在网络

中建立一条固定的路径,以绕过一些可能失效的网关。可以说,隧道就是一条

特定的路径。

这样的隧道是通过IP报头中的源路由选项来实现的,在目前看来,这个方法的缺陷

十分明显。要设置源路由选项就必须知道数据包要经过的确切路径,而且目前

多数路由实现中都不支持源路由。



另一个实现隧道的机制是开发一种新的IP选项,用来表明源数据包的信息,原IP头

可能成为此选项的一部分。这种隧道的意义与我们所说的隧道已十分接近。但它的

不足在于要对目前IP选项的实现和处理做较大的修改,也缺乏灵活性。



最后常用的一种实现方法是开发一种新的IP封包协议,仍然套用当前的IP头格式。

通过IP封包,不须指明网络路径,封包就能透明地到达目的地。也可以通过封包空

间把未直接连接的机器绑在一起,从而创建虚拟网络。这种方法易行、可靠、可扩

展性强,Linux采用了这一方法,这也是目前我们所理解的隧道思想。







一、

封包协议的结构和实现



封包协议的实现原理十分简单。先看看通过隧道传送的数据报在网络中如何流动,

如图一。

为了叙述简便,我把在隧道中传送的IP数据包称为封包。



     --------------                    -----------

    /    子网A                       /   子网C   

   /                                /             

  |                  |              |               |

  |     &      
展开更多 50%)
分享

猜你喜欢

Linux中IP隧道的分析与建议

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux中IP隧道的分析与建议

发现Linux中IP地址冲突的方法

服务器
发现Linux中IP地址冲突的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Linux下如何实现IP与Mac地址的捆绑?

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux下如何实现IP与Mac地址的捆绑?

SQL中与IP相关的常见问题

SQLServer
SQL中与IP相关的常见问题

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Linux系统中防火墙的框架分析

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux系统中防火墙的框架分析

Linux拒绝国外IP访问的步骤

电脑入门
Linux拒绝国外IP访问的步骤

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

两级联动的select XML版

两级联动的select XML版

Linux历史篇

Linux历史篇
下拉加载更多内容 ↓