linux gre隧道创建

实验环境

两台可以相互通信的虚拟机,两个虚拟机在不通的网段。如下所示

host A:


[root@10-10-10-47 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:f6:21:28 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.47/24 brd 10.10.10.255 scope global eth0
valid_lft forever preferred_lft forever

host B:


[root@192-168-0-118 ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:14:91:76 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.118/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever

两台虚拟机之间可以相互通信


[root@192-168-0-118 ~]# ping 10.10.10.47
PING 10.10.10.47 (10.10.10.47) 56(84) bytes of data.
64 bytes from 10.10.10.47: icmp_seq=1 ttl=63 time=1.04 ms
64 bytes from 10.10.10.47: icmp_seq=2 ttl=63 time=0.440 ms
64 bytes from 10.10.10.47: icmp_seq=3 ttl=63 time=0.368 ms
64 bytes from 10.10.10.47: icmp_seq=4 ttl=63 time=0.561 ms
^C
--- 10.10.10.47 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.368/0.602/1.040/0.262 ms

实验目的

在host A和host B之间建里gre隧道,另外在机器A 上面配置 2.2.2.2, 在机器B上面配置1.1.1.1 ,然后在A上面能够ping -I 2.2.2.2 1.1.1.1 能够通。

实验步骤

1、在host A(10.10.10.47)上面操作


ip tunnel add gre-test mode gre remote 192.168.0.118 local 10.10.10.47 ttl 255
ip link set gre-test up
ip route add 1.1.1.1/32 dev gre-test
ip addr add 2.2.2.2 dev gre-test
ip link set gre-test down

操作过程入下图


[root@10-10-10-47 ~]# ip tunnel add gre-test mode gre remote 192.168.0.118 local 10.10.10.47 ttl 255
[root@10-10-10-47 ~]# ip link set gre-test up
[root@10-10-10-47 ~]# ip route add 1.1.1.1/32 dev gre-test
[root@10-10-10-47 ~]# ip addr add 2.2.2.2 dev gre-test
[root@10-10-10-47 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:f6:21:28 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.47/24 brd 10.10.10.255 scope global eth0
valid_lft forever preferred_lft forever
3: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
4: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
5: gre-test@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1430 qdisc noqueue state UNKNOWN group default qlen 1000
link/gre 10.10.10.47 peer 192.168.0.118
inet 2.2.2.2/32 scope global gre-test
valid_lft forever preferred_lft forever
[root@10-10-10-47 ~]# ip r
default via 10.10.10.1 dev eth0
1.1.1.1 dev gre-test scope link
10.10.10.0/24 dev eth0 proto kernel scope link src 10.10.10.47

2、在host B(192.168.0.118)上面操作


ip tunnel add gre-test mode gre remote 10.10.10.47 local 192.168.0.118 ttl 255
ip link set gre-test up
ip route add 2.2.2.2/32 dev gre-test
ip addr add 1.1.1.1 dev gre-test
ip link set gre-test down
[root@192-168-0-118 ~]# ip tunnel add gre-test mode gre remote 10.10.10.47 local 192.168.0.118 ttl 255
[root@192-168-0-118 ~]# ip link set gre-test up
[root@192-168-0-118 ~]# ip route add 2.2.2.2/32 dev gre-test
[root@192-168-0-118 ~]# ip addr add 1.1.1.1 dev gre-test
[root@192-168-0-118 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:14:91:76 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.118/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
3: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
4: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
6: gre-test@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1430 qdisc noqueue state UNKNOWN group default qlen 1000
link/gre 192.168.0.118 peer 10.10.10.47
inet 1.1.1.1/32 scope global gre-test
valid_lft forever preferred_lft forever
[root@192-168-0-118 ~]# ip r
default via 192.168.0.1 dev eth0
2.2.2.2 dev gre-test scope link
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.118

实验结果

[root@10-10-10-47 ~]# ping -I 2.2.2.2 1.1.1.1 -c 4
PING 1.1.1.1 (1.1.1.1) from 2.2.2.2 : 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=64 time=0.635 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=64 time=0.702 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=64 time=0.588 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=64 time=0.565 ms --- 1.1.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.565/0.622/0.702/0.058 ms

还原实验环境

在host A(10.10.10.47)执行

ip link set gre-test down

ip tunnel del gre-test


[root@10-10-10-47 ~]# ip link set gre-test down
[root@10-10-10-47 ~]# ip tunnel del gre-test
[root@10-10-10-47 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:f6:21:28 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.47/24 brd 10.10.10.255 scope global eth0
valid_lft forever preferred_lft forever
3: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
4: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff

在host B(192.168.0.118)执行

ip link set gre-test down

ip tunnel del gre-test


[root@192-168-0-118 ~]# ip link set gre-test down
[root@192-168-0-118 ~]# ip tunnel del gre-test
[root@192-168-0-118 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:14:91:76 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.118/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
3: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
link/gre 0.0.0.0 brd 0.0.0.0
4: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff

最后还有一个gre0,不能用

ip link set gre0 down

ip tunnel del gre0

上面两个命令删除,否则会报错

[root@10-10-10-47 ~]# ip link set gre0 down

[root@10-10-10-47 ~]# ip tunnel del gre0

delete tunnel “gre0” failed: Operation not permitted

需要按照下面的命令删除:


[root@192-168-0-118 ~]# lsmod|grep gre
ip_gre 22931 0
gre 13144 1 ip_gre
ip_tunnel 25163 1 ip_gre
[root@192-168-0-118 ~]# rmmod ip_gre
[root@192-168-0-118 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:14:91:76 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.118/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
[root@192-168-0-118 ~]#

整个实验过程比较简单,自己操作一遍才能把这些基本的命令熟悉起来。

linux gre隧道创建的更多相关文章

  1. linux 下创建GRE隧道

    其他国家的互联网如同一个孤岛.要想访问国外网站异常的缓慢,甚至被和谐了.可以建立一条隧道来避免这种情况,下面说说GRE隧道如何建立. 1. GRE介绍 GRE隧道是一种IP-over-IP的隧道,是通 ...

  2. 内部办公网与IDC机房的GRE隧道配置实践

    背景 公司内网与机房服务器为了实现用内网IP通信的功能,故使用了linux的IP gre隧道的方式.使得公司内部可以直接通过路由直连的方式访问机房服务器. 拓扑图如下: 注:拓扑中的外网IP为虚构的I ...

  3. Gre 隧道与 Keepalived

    这一篇文章是做了不少功课的. 什么是 Gre 隧道 什么是 Vrrp KeepAlived 是什么 用Keepalived 怎么玩 附录 什么是 Gre 隧道 GRE 隧道是一种 IP-2-IP 的隧 ...

  4. Linux ipip隧道及实现

    一.IP隧道技术 IP隧道技术:是路由器把一种网络层协议封装到另一个协议中以跨过网络传送到另一个路由器的处理过程.IP 隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可 ...

  5. ROS+gre over ipv6,在ipv6的基础上建立GRE隧道

    感谢群众大神 @镜花水月全程技术支持.感谢! 环境: 1.阿里云华北5,申请ipv6测试,申请ECS带ipv6公网ip 2.为了便于测试便捷,在vultr创建2.5美元的vps,带ipv6 对了,测试 ...

  6. Open vSwitch系列实验(二):Open vSwitch的GRE隧道实验网络

    一.实验目的 了解GRE协议及原理 理解 Open vSwitch如何配置GRE隧道 二.实验原理 Open vSwitch创建GRE原理很简单,就是把对GRE头和外部IP头的一些操作从原来的代码中抽 ...

  7. 华三F100系列防火墙 、华为USG6300系列防火 GRE 隧道配置

    GRE概述: 通用路由封装(GRE: Generic Routing Encapsulation)是通用路由封装协议,可以对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在IPV4网络中传输 ...

  8. ubantu与CentOS虚拟机之间搭建GRE隧道

    Author       : Email         : vip_13031075266@163.com Date          : 2020.01.23 Copyright : 未经同意不得 ...

  9. GRE隧道协议

    1. GRE协议简介 GRE(General Routing Encapsulation ,通用路由封装)是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的报文能够在另一网络层协议 ...

随机推荐

  1. Elastic Stack 开源的大数据解决方案

    目的 本文主要介绍的内容有以下三点: 一. Elastic Stack是什么以及组成部分 二. Elastic Stack前景以及业务应用 三. Elasticsearch原理(索引方向) 四. El ...

  2. jquery ajax在 IE8/IE9 中无效

    你们是不是也曾经和我以为遇到过这样的情况呢,jquery ajax在 IE8/IE9 中无效获取不到数据呢,经过熬夜找到好的东西和你们分享一下就是jQuery-ajaxTransport-XDomai ...

  3. Mysql备份还有这么多套路,还不了解下?

    逻辑备份和物理备份 逻辑备份 逻辑备份用于备份数据库的结构(CREAET DATABASE.CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小.跨SQL服务器.需要修改数据等场 ...

  4. lqb 基础练习 回文数

    基础练习 回文数 时间限制:1.0s   内存限制:512.0MB     问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数. 输出格式 按从小到大的顺 ...

  5. ReadWriteLock: 读写锁

    ReadWriteLock: 读写锁 ReadWriteLock: JDK1.5提供的读写分离锁,采用读写锁分离可以有效帮助减少锁竞争. 特点: 1).使用读写锁.当线程只进行读操作时,可以允许多个线 ...

  6. ArcGIS Server10.4安装教程

    准备内容 安装环境:win10*64位专业版 安装文件:ArcGIS_Server_Ent_Windows_1041_150998.iso 破解文件:Lic10.4.1.ecp #安装Server前, ...

  7. Spring基于注解的配置1——@Required、@Autowired、@Qualifier示例及与传统注入方法的对比

    @Required注释 作用:用于属性的set方法,那么这个属性必须在xml文件的bean标签里面进行配置,否则就会抛出一个BeanInitializationException异常. 首先准备一个类 ...

  8. Python练习100题

    Python练习100题 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #Filename:001.py cnt = 0#count the sum of res ...

  9. 【集训Day1 测试】奇怪数

    奇怪数(odometer) [题目描述] 一个正整数Z是奇怪数,当且仅当满足的条件是:Z的所有数字中,只有一个数字不同于其他数字.例如:33323.110 都是奇怪数,而 9779.5555 都不是奇 ...

  10. PHP+Redis实现延迟任务,实现自动取消与完成订单

    简单定时任务解决方案:使用redis的keyspace notifications(键失效后通知事件) : (A)业务场景: 1.当一个业务触发以后需要启动一个定时任务,在指定时间内再去执行一个任务( ...