配置拓扑

这里使用ens33接口地址来建立隧道,使用ens37接口地址做隧道接口标识,使用ens38接口地址来模拟私网业务地址。实际场景中,用于建立隧道的地址是公网地址,而业务地址是私网地址,GRE隧道使得私网地址空间不会暴露于公网。

具体配置

1. node02

开启路由转发,加载GRE协议模块。

# 开启ipv4路由转发

echo 1 > /proc/sys/net/ipv4/ip_forward

# 查看GRE内核模块信息

modinfo ip_gre

# 查看GRE内核模块是否安装

lsmod | grep ip_gre

# 加载GRE内核模块

modprobe ip_gre

modprobe --first-time ip_gre

创建隧道虚接口tunnel2并配置隧道接口ip(隧道标识)。

# 配置GRE隧道的source和destination ip(外部,公网地址)

ip tunnel add tunnel2 mode gre local 192.168.91.129 remote 192.168.91.130 ttl 255 dev ens33

# 配置GRE tunnel接口的隧道标识(在数通设备上可以通过ip unnumber借用其他接口的primary ip)

ip addr add 172.16.18.10 dev tunnel2 peer 172.16.20.20/24

# 开启tunnel2接口

ip link set dev tunnel2 up

# 查看tunnel接口

ifconfig

ip a

添加指向隧道接口的路由以引导流量进入隧道。

# 添加私网路由指向隧道口

ip route add 10.10.20.20/32 dev tunnel2

ip route add 172.16.20.20/32 dev tunnel2

2. node03

开启路由转发,加载GRE协议模块。

# 开启ipv4路由转发

echo 1 > /proc/sys/net/ipv4/ip_forward

# 加载GRE内核模块

modprobe --first-time ip_gre

创建隧道虚接口tunnel2并配置隧道接口ip(隧道标识)。

# 配置GRE隧道的source和destination ip(外部,公网地址)

ip tunnel add tunnel2 mode gre local 192.168.91.130 remote 192.168.91.129 ttl 255 dev ens33

# 配置GRE tunnel接口的隧道标识(在数通设备上可以通过ip unnumber借用其他接口的primary ip)

ip addr add 172.16.20.20 dev tunnel2 peer 172.16.18.10/24

# 开启tunnel2接口

ip link set dev tunnel2 up

添加指向隧道接口的路由以引导流量进入隧道。

# 添加私网路由指向隧道口

ip route add 10.10.10.10/32 dev tunnel2

ip route add 172.16.18.10/32 dev tunnel2

3. 查看路由表

route -n # 推荐此法

或者

netstat -nr

4. 验证

隧道建立

[root@node02 ~]# ping -c3 -I 10.10.10.10 10.10.20.20

PING 10.10.20.20 (10.10.20.20) from 10.10.10.10 : 56(84) bytes of data.

64 bytes from 10.10.20.20: icmp_seq=1 ttl=64 time=0.708 ms

64 bytes from 10.10.20.20: icmp_seq=2 ttl=64 time=0.523 ms

64 bytes from 10.10.20.20: icmp_seq=3 ttl=64 time=0.555 ms

--- 10.10.20.20 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2001ms

rtt min/avg/max/mdev = 0.523/0.595/0.708/0.083 ms

[root@node02 ~]# ping -c3 -I 172.16.18.10 172.16.20.20

PING 172.16.20.20 (172.16.20.20) from 172.16.18.10 : 56(84) bytes of data.

64 bytes from 172.16.20.20: icmp_seq=1 ttl=64 time=1.12 ms

64 bytes from 172.16.20.20: icmp_seq=2 ttl=64 time=0.509 ms

64 bytes from 172.16.20.20: icmp_seq=3 ttl=64 time=0.469 ms

--- 172.16.20.20 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2006ms

rtt min/avg/max/mdev = 0.469/0.700/1.122/0.298 ms

隧道拆除

将tunnel2接口shutdown

ip link set dev tunnel2 down

再进行ping测试

[root@node02 ~]# ping -c3 -I 10.10.10.10 10.10.20.20

PING 10.10.20.20 (10.10.20.20) from 10.10.10.10 : 56(84) bytes of data.

--- 10.10.20.20 ping statistics ---

3 packets transmitted, 0 received, 100% packet loss, time 2017ms

[root@node02 ~]# ping -c3 -I 172.16.18.10 172.16.20.20

PING 172.16.20.20 (172.16.20.20) from 172.16.18.10 : 56(84) bytes of data.

--- 172.16.20.20 ping statistics ---

3 packets transmitted, 0 received, 100% packet loss, time 2023ms

5. 配置多个环回地址

在上述的配置中可以发现启用了多个物理网卡来提供本地IP,但在实际应用中可能不具备这样的条件。配置多个环回口地址是一个解决思路。

操作步骤如下:

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:1

vim ifcfg-lo:1

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

DEVICE=lo:1

IPADDR=10.199.18.16

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback1

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

systemctl restart network

ifconfig

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

lo:1: flags=73 mtu 65536

inet 10.199.18.16 netmask 255.255.255.255

loop txqueuelen 1000 (Local Loopback)

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

ip a

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

1: lo: 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

inet 10.199.18.16/32 brd 10.199.18.16 scope global lo:1

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

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

[root@node01 network-scripts]# ping -c3 10.199.18.16

PING 10.199.18.16 (10.199.18.16) 56(84) bytes of data.

64 bytes from 10.199.18.16: icmp_seq=1 ttl=64 time=0.045 ms

64 bytes from 10.199.18.16: icmp_seq=2 ttl=64 time=0.050 ms

64 bytes from 10.199.18.16: icmp_seq=3 ttl=64 time=0.053 ms

如果是非持久化的添加(重启后失效),可以使用如下命令:

ip addr add 10.199.18.16/32 dev lo:1

使用上述命令添加的环回接口地址只能使用“ ip a ”命令才可以查看到,使用“ ifconfig ”命令是看不到的。但是在系统中可以ping通。

linux gre配置,Linux中配置GRE隧道相关推荐

  1. visual studio编译linux,在 Visual Studio 中配置 Linux MSBuild C++ 项目

    在 Visual Studio 中配置 Linux MSBuild C++ 项目Configure a Linux MSBuild C++ project in Visual Studio 10/16 ...

  2. yii配置mysql_YII2中配置MySQL读写分离

    在实际开发中,为了服务更好的响应,通常会设置数据库的读写分离,主库负责写入更新等操作,从库负责读操作. 以下是yii2中配置mysql读写分离,一主多从设置.设置好后,这些从库其中之一将被建立起连接并 ...

  3. php怎么配置环境变量,php环境变量配置_windows中配置PHP环境变量

    摘要 腾兴网为您分享:windows中配置PHP环境变量,中国天气,之了课堂,真还赚,永辉生活等软件知识,以及城市地摊财富秘籍,捆绑工具,golo技师盒子,作家登录,情侣绿钻,keepass,小一寸照 ...

  4. Linux学习笔记007---Centos7中配置静态ip

    JAVA技术交流QQ群:170933152 按步骤来是没问题的: 这里注意vim,有的系统没有装,所以需要用vi来配置 如果linux操作系统通过dhcp无法自动获取IP地址,需要手动设置静态IP地址 ...

  5. centos 配置php开发环境变量配置,CentOS中配置PHP和Nginx环境变量

    搜索热词 一.摘要 在Linux CentOS系统上 安装完PHP和Nginx后,一般需要执行查看版本命令'PHP -v'和'Nginx -v',确认是否安装成功,如果在没有添加到环境变量之前,执行& ...

  6. java怎么配置tomcat_Eclipse中配置Tomcat

    1.下载Tomcat网址:http://tomcat.apache.org/ 2.在右边Download导航栏中挑选自己要的版本 3.选择下载exe版本的(当然也可以下载zip的)我win10 64位 ...

  7. Mybatisplus配置类中配置分页、乐观锁

    @Configuration//配置类 @MapperScan("com.xxx.mapper")//扫描路径 @EnableTransactionManagement//事务处理 ...

  8. eclipse链接mysql数据池配置_Eclipse中配置Tomcat的数据库连接池 | 学步园

    前提是把需要的msutil.jar mssqlserver.jar msbase.jar mssqlserver4v65.jar 放到tomcat/common/lib下 1.把数据库JDBC驱动拷贝 ...

  9. kettle-3(linux环境调度kjb并配置定时读取)

    1.首先要把kettle搬到Linux系统下,rar包解压需要操作下,直接提供.tar.gz : https://pan.baidu.com/s/1_tzcy8GCKJ7qHzjTSqNnxQ    ...

  10. SpringSecurity权限管理框架系列(七)-SpringSecurity自定义配置类中自定义Filter的使用详解

    1.Filter请求过滤器 filter请求过滤器可以帮助我们进行HttpServletRequest请求和HttpServletResponse响应的过滤 在自定义的Filter过滤器中我们可以对我 ...

最新文章

  1. linux 脚本 符号,Shell脚本 入门 —— 符号篇
  2. Add Digits
  3. 将中缀表达式转化为后缀表达式
  4. 三极管的发射极与集电极之间的关系
  5. 探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
  6. Javascript中typeof instanceof constructor的区别
  7. hive操作create,alter等
  8. cmd中如何切换指定目录
  9. Element-UI分页组件使用——点第几页查第几页
  10. centos 6.9 NTP基准时间服务器配置
  11. git使用教程(初次配置+错误提示)
  12. python numpy数组动态写入csv文件_python - 将NumPy数组转储到csv fi中
  13. 图像锐化拉普拉斯算子matlab,Matlab图像锐化-Sobel,Laplacian算子 实验教程
  14. java只有值传递_为什么说java只有值传递?
  15. AI人才供不应求:应届生年薪可达50万 没出校门已被抢光
  16. 豆瓣9.3的高分! 牛逼的Git !!!
  17. Fiddler2教程(Web调试工具)
  18. 找一下不男不女 ?。。?
  19. 关于华为鸿蒙创新的作文,关于创新的高中作文4篇
  20. matplotlib如何绘制网格线

热门文章

  1. MISC解题思路总结(一)XCTF平台
  2. 电脑摄像头一会好使一会不好使
  3. PS中的画笔工具和修饰模式(画笔模式)
  4. [图论]---[网络流]---最小点割数/最小点割集
  5. td可编辑(html标签可编辑)
  6. 内网穿透工具-Ngrok
  7. SpringBoot+jdk1.8邮件发送
  8. (ORACLE)PL/SQL 数据库概念
  9. oracle中的存储过程是什么,oracle存储过程是什么?
  10. 新手入门PS人像磨皮教程