Linux GRE tunnel的构建原理

Generic Enapsulation Tunnel是一种网络隧道技术,之所以称为通用隧道技术,是它可以用来将Ethernet、IP、MPLS等多种报文封装在IP报文中予以转发,在网络中存在较为大规模的应用。

Linux系统原生支持了GRE接口,其配置命令如下:

ip tunnel add gret1 mode gre remote 45.42.104.183 local 189.245.246.51 ttl 128  # 配置一条以189.245.246.51为源地址,45.42.104.183为目的地址的gre tunnel
ip link set gret1 up # 设置为up
ip addr add  1.1.1.2/32 dev gret1 # 为此gre tunnel配置ip地址
ip route add 2.2.2.2/32 dev gret1 # 配置路由2.2.2.2/32到gre1

在上面的配置后,访问2.2.2.2/32这个地址就会通过gret1封装成gre报文出去,外层IP报文的源目的地址为:189.245.246.51/45.42.104.183,内层IP报文的源目的地址为:1.1.1.2/2.2.2.2。

通过这样的配置,我们可以在两台设备间建立一条端到端的通路,入口设备可通过iptables将访问自身的流量DNAT到2.2.2.2这个ip上,从而通过gre tunnel到达2.2.2.2所在的机器,在2.2.2.2上部署代理服务器就可以实现以隧道形式穿越internet。

利用这样的技术可以实现较多功能,如借助此技术可以实现科学地上网(类似产品可参考http://www.youmen.in)。

时间: 2024-12-17 11:50:00

Linux GRE tunnel的构建原理的相关文章

[转]深入理解GRE tunnel

Posted in Linux Kernel at November 8th, 2012 / 1 Comment ? 我以前写过一篇介绍 tunnel 的文章,只是做了大体的介绍.里面多数 tunnel 是很容易理解的,因为它们多是一对一的,换句话说,是直接从一端到另一端.比如 IPv6 over IPv4 的 tunnel,也就是 SIT,它的原理如下图所示: 显然,除了端点的 host A 和 host B之外,中间经过的任何设备都是看不到里面的 IPv6 的头,对于它们来说,经过 sit

[转]深入理解 GRE tunnel

我以前写过一篇介绍 tunnel 的文章,只是做了大体的介绍.里面多数 tunnel 是很容易理解的,因为它们多是一对一的,换句话说,是直接从一端到另一端.比如 IPv6 over IPv4 的 tunnel,也就是 SIT,它的原理如下图所示: 显然,除了端点的 host A 和 host B之外,中间经过的任何设备都是看不到里面的 IPv6 的头,对于它们来说,经过 sit 发出的包和其它的 IPv4 的包没有任何区别. GRE tunnel 却不一样了,它的原理从根本上和 sit,ipip

[转]在openvswitch上配置GRE tunnel

Posted in Linux Application at November 13th, 2012 如果你是用 openvswitch 内置的 GRE tunnel,那么配置很简单,基本上就一条命令: ovs-vsctl add-port br0 gre0 -- set interface gre0 type=gre options:remote_ip=192.168.1.10 本文想谈的显然不是这个.因为 upstream 内核(指 Linus tree)中的 openvswitch 是不支

gre tunnel

http://searchenterprisewan.techtarget.com/tip/GRE-tunnel-vs-IPsec-tunnel-What-is-the-difference Encapsulating a packet for secure transportation on the network can be done using either GRE or IPsec protocols. This tip explains under what circumstance

【Cisco】 GRE Tunnel隧道

说明:A公司的PC1所在网段192.168.1.0/24要和B公司PC2所在网段172.16.2.0/24建立GRE tunnel通信 配置思路:1.R1与R2要能通信--R1和R2分别配置默认路由到ISP2.新建tunnel端口,设置IP,双方要在同一网段:配置source即公网出口IP和destination即对方公网出口ip3.此时双方tunnel已经建立起来了,需要建立路由,PC1网段到PC2网段,PC2网段到PC1网段,下一跳地址为对端ip:此时配置结束. 拓扑图如下: 配置信息: R

Linux安装Axis C构建WebService服务

在安装Axis C++之前有两个组件是必须安装的,分别是Apache HTTP Server以及用于处理XML的程序Xerces:为了编译Axis以及Apache HTTPD,你的Linux机器还应该装有gcc编译器. 3个部件的都采用源码安装,它们都有类似的步骤: 上传并解压安装包 设置环境变量 利用configure生成Makefile 编译安装到usr/local/对应目录下 本文部署路径为apache安装在/usr/local/apache2,Axis2C 1.6 安装到/usr/loc

Linux网络服务02——DHCP原理与配置

Linux网络服务02--DHCP原理与配置 一.DHCP服务概述 1.DHCP(Dynamic Host Configuration Protocol)动态主机配置协议 DHCP是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议. 使用DHCP可以减少管理员的工作量,避免IP地址冲突,当网络更改IP地址网段时不需要再重新配置每个用户的IP地址,提高了IP地址的利用率,方便客户端的配置. 2.可分配的地址信息主要包括: 网卡的IP地址.

(转)linux下文件删除的原理精华讲解(考试题答案系列)

linux下文件删除的原理精华讲解(考试题答案系列) 说明:本文为老男孩linux培训某节课前考试试题及答案分享博文内容的一部分,也是独立成题的,你可以点下面地址查看全部的内容信息.http://oldboy.blog.51cto.com/2561410/791245 5.描述linux下文件删除的原理(记时3分钟)<?xml:namespace prefix="o"> ?xml:namespace> Linux文件删除原理:     Linux是通过link的数量来

linux cent os 6.4 建立GRE tunnel

加载GRE模块 modprobe ip_gre 创建Tunnel 名为office ip tunnel add office  mode gre  remote 111.206.164.122  local 111.206.0.88 ttl 255 ip link set office up 为tunnel 增加IP地址 ip add add 10.100.100.1/30  dev office 创建一个路由表,表名为136 ip route add default via 103.246.1