gre隧道终结功能_Juniper vMX与Linux建立GRE隧道实验
发布日期:2021-06-24 17:05:36 浏览次数:2 分类:技术文章

本文共 1937 字,大约阅读时间需要 6 分钟。

1. GRE隧道基础知识

GRE是一种隧道协议,可以在IP隧道内封装各种网络层协议数据包类型,在隧道远端的路由器之间创建虚拟点对点链路。 如图所示,GRE隧道用于隧道IP流量以及非IP流量,例如IPX和AppleTalk。除了引用的协议数据包类型之外,GRE隧道还常用于通过IP传输网络隧道传输IPv6和MPLS协议流量。在这些情况下,GRE隧道连接隔离的IPv6网络,并代替通常由RSVP和LDP创建的隧道。

6f97a4cb66b95ad04ed76977b0424b93.png

为了将GRE分组封装在IP分组中,添加GRE报头和外部IP报头。GRE报头和外部IP报头为数据包添加了额外的24字节开销。 外部头部包括源IP地址,隧道的入口点和目标IP地址,也就是隧道的出口点。除了TTL字段之外,内部数据包(也称为有效负载数据包)不会被修改。封装在IP数据包中的GRE数据包使用IP协议类型47。

思科开发了GRE协议,目前已经被包括Juniper在内的很多厂商支持,RFC1702定义了GRE over IPv4 networks。

2. 实验拓扑及环境描述

为了对GRE隧道有一个初步认识,我们准备了如下实验:

7fb32187a9ff2f545cb8e6f4d913325b.png

实验涉及到4台设备,其中一台vMX14.1,一台CentOS 6.5,还有模拟的2台PC,作为客户端设备。

两台客户端电脑的地址分别如图,网关指向vMX和CentOS。

两台骨干GRE设备不跑路由,而通过GRE将两个客户端网段打通。

实验平台选择vmware workstation完成,在vmware里面部署好所有需要的设备并将所有涉及到的网卡全部桥接在vmnet0上。

我的实验环境中左边PC用了一个vmx模拟,右边是一个win7。

3. 配置详情

实际的配置非常简单

3.1. vMX配置

首先打开fpc的tunnel功能,否则不能使用gre接口

09b0bcd31fc53aac3d4dedd5358e2114.png

然后配置gr-0/0/10.0接口

9a90e81c1684f3c9bc044d1269c04dd8.png

最后写一条到对面172.16.1.0/24的静态路由,指向gr接口

61acef00078291e75a039cf691af9aa4.png

配置语句:

set chassis fpc 0 pic 0 tunnel-services bandwidth 1g

set interfaces ge-0/0/1 unit 0 family inet address 192.168.1.1/24

set interfaces ge-0/0/2 unit 0 family inet address 172.16.0.1/24

set interfaces gr-0/0/10 unit 0 tunnel source 192.168.1.1

set interfaces gr-0/0/10 unit 0 tunnel destination 192.168.1.2

set interfaces gr-0/0/10 unit 0 family inet

set routing-options static route 172.16.1.0/24 next-hop gr-0/0/10.0

3.2. Linux配置

首先确保vmware环境中的linux上有2个网卡:

ab4f6f5c1500d760d86464066adc425a.png

1、配置好2个网卡接口地址:

333e65413e4b3631899010c7b772b99e.png

注意:如本图所规划,2个PE直连,就不需要在2个网卡上写网关路由,如果PE之间还有其他设备路由,那么需要在2个PE外口打通路由。

2、关闭防火墙

service iptables stop

chkconfig iptables off

3、查看并加载gre模块

modprobe ip_gre

lsmod | grep gre

29853bdb3a816dc58325ef2ebce5ed20.png

有这个显示,才表明内核打开了GRE功能。

4、配置隧道

ip tunnel add tunnel0 mode gre remote 192.168.1.1 local 192.168.1.2 ttl 245

ip link set tunnel0 up

增加一条到对端的路由

ip route add 172.16.0.0/24 dev tunnel0

5、设置开机启动

vi /etc/init.d/gre.sh

ip tunnel add tunnel0 mode gre remote 192.168.1.1 local 192.168.1.2 ttl 245

ip link set tunnel0 up

ip route add 172.16.0.0/24 dev tunnel0

chmod +x /etc/init.d/gre.sh

echo "/etc/init.d/gre.sh">> /etc/rc.d/rc.local(将该文件加载到开机启动的系统文件中)

4. 验证

1、Linux上查看接口状态

e70c192eb930aff26e56c343fc7aa1c1.png
02d2fc9331d87560e0fd840a0f351578.png

2、2个PC对ping

320e48ed4110b558fea37de1620bfb98.png
0fc680be4fe732e71e4d806c666de057.png

3、查看vMX下gr接口统计

46e4ec9d9526563cbb2cc3dfefbda2ab.png

实验完成

dc832750cef275596b97ef869e10063e.png
71178955d7c4cc526cbe6cc22fcb2d81.png

转载地址:https://blog.csdn.net/weixin_34005314/article/details/113075582 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:idea 一打开 就提示内存溢出_JAVA内存分析:基于dump内存溢出快照分析
下一篇:读研期间一定得看论文吗_真学霸!读研期间发表18篇SCI论文,包括4篇Nature/Science子刊!...

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月02日 14时52分04秒