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. [ PyQt入门教程 ] PyQt5中数据表格控件QTableWidget使用方法

    如果你想让你开发的PyQt5工具展示的数据显得整齐.美观.好看,显得符合你的气质,可以考虑使用QTableWidget控件.之前一直使用的是textBrowser文本框控件,数据展示还是不太美观.其中 ...

  2. 201871010114-李岩松《面向对象程序设计(java)》第十二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  3. (数据科学学习手札71)在Python中制作个性化词云图

    本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 一.简介 词云图是文本挖掘中用来表征词频的数据可视化 ...

  4. SqlServer2005 查询 第四讲 in

    今天我们来说sql中的命令参数in in --in用于查询某个字段的指定的值的记录信息 注意一下:--对或(or)取反是并且(and),对并且(and)取反是或(or 数据库中不等于表示有两种:!= ...

  5. 小白学 Python 爬虫(1):开篇

    人生苦短,我用 Python 引言 各位同学大家好,好久不见(可能只有一两天没见:囧)~~~ 先讲一件事情,昨天为啥没更新. emmmmmmmmm,当然是因为加班啦,快到年底了,公司项目比较忙,最近的 ...

  6. ArcGIS API For Javascript :如何制作地图切换器

    大部分情况下我们开发会使用原生的地图切换器,由于每个项目的页面风格不同,业务场景不同,因此需要做一些样式不同的地图切换器. 首先可以照猫画虎,自己照着地图切换器的样式抄一个,或者看看主流的地图切换器都 ...

  7. Go 多变量赋值时注意事项

    说到多变量赋值时,先计算所有相关值,然后再从左到右依次赋值,但是这个规则不适用于python我们来看一例: package main import "fmt" func main( ...

  8. Docker从入门到实践(2)

    二.基本概念 Docker 镜像 我们都知道,操作系统分为内核和用户空间.对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持.而 Docker 镜像(Image),就相 ...

  9. 解构ffmpeg(二)

    通过比较DirectShow和ffmpeg两者的FilterGraph,分析ffmpeg的FilterGraph运作. 首先FilterGraph是一个图,图由点和边构成.在FilterGraph中的 ...

  10. 标准库bufio个人详解

    本文是我有通俗的语言写的如果有误请指出. 先看bufio官方文档 https://studygolang.com/pkgdoc文档地址 主要分三部分Reader.Writer.Scanner 分别是读 ...