54 GRE-VPN 点到点

news2024/11/13 15:21:08

一 理论

1  GRE 概念

GRE(Generic Routing Encapsulation,通用路由封装)协议用来对某种协议(如IP、以太网)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络(如IP)中传输。封装前后数据报文的网络层协议可以相同,也可以不同。封装后的数据报文在网络中传输的路径,称为GRE隧道。GRE隧道是一个虚拟的点到点的连接,其两端的设备分别对数据报文进行封装及解封装。

2 GRE 协议

图1-1所示,GRE封装后的报文包括如下几个部分:

· 净荷数据(Payload packet):需要封装和传输的数据报文。净荷数据的协议类型,称为乘客协议(Passenger Protocol)。乘客协议可以是任意的网络层协议。

· GRE头(GRE header):采用GRE协议对净荷数据进行封装所添加的报文头,包括封装层数、版本、乘客协议类型、校验和信息、Key信息等内容。添加GRE头后的报文称为GRE报文。对净荷数据进行封装的GRE协议,称为封装协议(Encapsulation Protocol)。

· 传输协议的报文头(Delivery header):在GRE报文上添加的报文头,以便传输协议对GRE报文进行转发处理。传输协议(Delivery Protocol或者Transport Protocol)是指负责转发GRE报文的网络层协议。设备支持IPv4和IPv6两种传输协议:当传输协议为IPv4时,GRE隧道称为GRE over IPv4隧道;当传输协议为IPv6时,GRE隧道称为GRE over IPv6隧道。

3 GRE 原理

(1)      Device A从连接IPv6 network 1的接口收到IPv6报文后,查找路由表判定此报文需要通过GRE隧道模式的Tunnel接口(本例中为Tunnel0)转发,并将报文发给相应的Tunnel接口。

(2)      GRE隧道模式的Tunnel接口收到此IPv6报文后,先在报文前封装上GRE头,再封装上IPv4头。IPv4头中的源地址为隧道的源端地址(本例中为Device A的Interface A接口的IP地址),目的地址为隧道的目的端地址(本例中为Device B的Interface B接口的IP地址)。

(3)      Device A根据封装的IPv4头中的目的地址查找路由表,将封装后的IPv4报文通过GRE隧道的实际物理接口(Interface A)转发出去。

(4)      封装后的IPv4报文通过GRE隧道到达隧道的目的端设备Device B后,由于报文的目的地是本设备,且IPv4头中的协议号为47(表示封装的报文为GRE报文),Device B将此报文交给GRE协议进行解封装处理。

(5)      GRE协议先剥离掉此报文的IPv4头,再对报文进行GRE Key验证、校验和验证、报文序列号检查等处理,处理通过后再剥离掉报文的GRE头,将报文交给IPv6协议进行后续的转发处理。

4  GRE 配置思路

(1)      进入系统视图。

system-view

(2)      创建模式为GRE over IPv4隧道的Tunnel接口,并进入该Tunnel接口视图。

interface tunnel number mode gre

[FW-Tunn1-1060]interface  Tunnel  1 mode  ?
  ds-lite-aftr  DS-Lite AFTR tunnel mode
  gre           Generic Routing Encapsulation (GRE)
  ipv4-ipv4     IPv4 over IPv4 tunnel mode
  ipv6          IPv6 tunnel mode
  ipv6-ipv4     IPv6 over IPv4 tunnel mode
  mpls-te       MPLS TE tunnel mode

[FW-Tunn1-1060]interface  Tunnel  1 mode  gr
[FW-Tunn1-1060]interface  Tunnel  1 mode  gre  ?
  ipv6  GRE over IPv6 tunnel mode
  <cr>  

[FW-Tunn1-1060]interface  Tunnel  1 mode  gre  ip
[FW-Tunn1-1060]interface  Tunnel  1 mode  gre  ipv6  ?
  <cr>  

[FW-Tunn1-1060]interface  Tunnel  1 mode  gre  ipv6  

在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败。

(3)      根据乘客协议,设置Tunnel接口的IP地址。

(IPv4网络)

IPv4地址的配置方法,请参见“三层技术-IP业务配置指导”中的“IP地址”。

(IPv6网络)

IPv6地址的配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”。

缺省情况下,Tunnel接口上未设置IP地址。

 ip address 30.30.30.1 255.255.255.0

(4)      设置隧道的源端地址或源接口。

source { ip-address | interface-type interface-number }

缺省情况下,未设置隧道的源端地址和源接口。

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IPv4地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IPv4地址。

(5)      设置隧道的目的端地址。

destination ip-address

缺省情况下,未设置隧道的目的端地址。

隧道的目的端地址是对端从GRE隧道上接收报文的实际物理接口的地址,该地址将作为封装后隧道报文的目的IPv4地址。该地址不能与Tunnel接口的地址在同一网段。

(6)      (可选)开启GRE的keepalive功能,并配置keepalive报文发送周期及最大发送次数。

keepalive [ interval [ times ] ]

缺省情况下,GRE的keepalive功能处于关闭状态。

(7)      (可选)配置GRE安全功能。

?  开启GRE报文校验和功能。

gre checksum

缺省情况下,GRE报文校验和功能处于关闭状态。

?  设置GRE类型Tunnel接口的GRE Key。

gre key key

缺省情况下,未设置GRE类型Tunnel接口的GRE Key。

隧道两端必须设置相同的GRE Key,或者都不设置GRE Key。

(8)      (可选)设置封装后隧道报文的DF(Don’t Fragment,不分片)标志。

tunnel dfbit enable

缺省情况下(默认情况下),未设置隧道报文的不分片标志,即转发隧道报文时允许分片。

二 实操

FW1  脚本


vlan 1
#
object-group ip address untrust
#
interface NULL0
#
interface GigabitEthernet1/0/0
 port link-mode route
 combo enable copper
#
interface GigabitEthernet1/0/1
 port link-mode route
 combo enable copper
 ip address 192.168.0.1 255.255.255.0
#
interface GigabitEthernet1/0/2
 port link-mode route
 combo enable copper
#
interface GigabitEthernet1/0/3
 port link-mode route
 combo enable copper
#
interface GigabitEthernet1/0/4
 port link-mode route
 combo enable copper
 ip address 192.168.23.2 255.255.255.0
 manage http inbound
 manage http outbound
 manage https inbound
 manage https outbound
 manage ping inbound
 manage ping outbound
 manage ssh inbound
 manage ssh outbound
#
interface GigabitEthernet1/0/5
 port link-mode route
 combo enable copper
#
interface GigabitEthernet1/0/6
 port link-mode route
 combo enable copper
 ip address 10.10.10.10 255.255.255.0
 manage http inbound
 manage http outbound
 manage https inbound
 manage https outbound
 manage ping inbound
 manage ping outbound
 manage ssh inbound
 manage ssh outbound
 manage telnet inbound
 manage telnet outbound
#
interface GigabitEthernet1/0/7
 port link-mode route
 combo enable copper

interface Tunnel0 mode gre
 ip address 30.30.30.1 255.255.255.0
 source 10.10.10.10
 destination 20.20.20.1
#
security-zone name Local
#
security-zone name Trust
 import interface GigabitEthernet1/0/4
#
security-zone name DMZ
#
security-zone name Untrust
 import interface GigabitEthernet1/0/6
#
security-zone name Management
 import interface GigabitEthernet1/0/1

#
 ip route-static 20.20.20.0 24 10.10.10.2
#
 info-center loghost 127.0.0.1 port 3301 format default
 info-center source CFGLOG loghost level informational
#
 ssh server enable
#
domain system
#
 aaa session-limit ftp 16
 aaa session-limit telnet 16
 aaa session-limit ssh 16
 domain default enable system

local-user admin class manage
 password hash $h$6$0zYuhgGtsVVU4g33$2+AJbQUeSw+GVu3OhSAMGl8sQ3+wYqm2drHrRZ+pygF6uiDxa5tendwi8nti3c04WRvq7dxELJKWDlZRrgpu6A==
 service-type ssh telnet terminal http https
 authorization-attribute user-role level-3
 authorization-attribute user-role network-admin
 authorization-attribute user-role network-operator
#
local-user root class manage
 authorization-attribute user-role network-operator
#
 ip http enable
 ip https enable
#
security-policy ip
 rule 0 name grelocalout
  action pass
  source-zone local
  destination-zone untrust
  source-ip-host 10.10.10.10 
  source-ip-host 30.30.30.1 
  source-ip-host 192.168.23.2 
  destination-ip-host 20.20.20.1 
  destination-ip-host 30.30.30.2 
  destination-ip-host 192.168.24.2 
 rule 1 name grelocalin
  action pass
  source-zone untrust
  destination-zone local
  source-ip-host 20.20.20.1 
  source-ip-host 30.30.30.2 
  source-ip-host 192.168.24.2 
  destination-ip-host 10.10.10.10 
  destination-ip-host 30.30.30.1 
  destination-ip-host 192.168.23.2 
#
return

FW2 脚本


interface GigabitEthernet1/0/1
 port link-mode route
 combo enable copper
 ip address 192.168.0.2 255.255.255.0
#
interface GigabitEthernet1/0/6
 port link-mode route
 combo enable copper
 ip address 20.20.20.1 255.255.255.0
 manage http inbound
 manage http outbound
 manage https inbound
 manage https outbound
 manage ping inbound
 manage ping outbound
 manage ssh inbound
 manage ssh outbound
 manage telnet inbound
 manage telnet outbound
#
interface GigabitEthernet1/0/8
 port link-mode route
 combo enable copper
 ip address 192.168.24.2 255.255.255.0
 manage http inbound
 manage http outbound
 manage https inbound
 manage https outbound
 manage ping inbound
 manage ping outbound
 manage ssh inbound
 manage ssh outbound

interface Tunnel0 mode gre
 ip address 30.30.30.2 255.255.255.0
 source 20.20.20.1
 destination 10.10.10.10
#
security-zone name Local
#
security-zone name Trust
 import interface GigabitEthernet1/0/8
#
security-zone name DMZ
#
security-zone name Untrust
 import interface GigabitEthernet1/0/6
#
security-zone name Management
 import interface GigabitEthernet1/0/1
#
 ip route-static 10.10.10.0 24 20.20.20.2
#
 info-center loghost 127.0.0.1 port 3301 format default
 info-center source CFGLOG loghost level informational
#
 ssh server enable

local-user admin class manage
 password hash $h$6$UbIhNnPevyKUwfpm$LqR3+yg1IjNct39MkOR0H0iQXLkYB3jMqM4vbAeoXOhbabIIFnjJPEGR00YiYA1Sz4LiY3FmEdru2fOLMb1shQ==
 service-type telnet terminal http
 authorization-attribute user-role level-3
 authorization-attribute user-role network-admin
 authorization-attribute user-role network-operator
#
local-user root class manage
 password hash $h$6$GZ6Hlw+QN9floEjl$zAAAoM8tPLMDtyLMDjudNXm4adPyVQsgEK1Rcta9Rz+L342wGHx9+Ff32n+HtVh51vMOxi3c/6FDNQ4uxoEKWQ==
 service-type ssh telnet terminal http https
 authorization-attribute user-role level-15
 authorization-attribute user-role network-root
 authorization-attribute user-role network-operator
#
 ip http enable
 ip https enable
#
security-policy ip
 rule 0 name grelocalout
  source-zone local
  destination-zone untrust
  source-ip-host 20.20.20.1 
  source-ip-host 30.30.30.2 
  source-ip-host 192.168.24.1 
  destination-ip-host 10.10.10.10 
  destination-ip-host 30.30.30.1 
  destination-ip-host 192.168.23.2 
 rule 1 name grelocalin
  source-zone untrust
  destination-zone local
  source-ip-host 10.10.10.10 
  source-ip-host 30.30.30.1 
  source-ip-host 192.168.23.2 
  destination-ip-host 20.20.20.1 
  destination-ip-host 30.30.30.2 
  destination-ip-host 192.168.24.1 
#
return

R1 脚本

#
interface GigabitEthernet0/1
 port link-mode route
 combo enable copper
 ip address 10.10.10.2 255.255.255.0
#
interface GigabitEthernet0/2
 port link-mode route
 combo enable copper
 ip address 20.20.20.2 255.255.255.0
#

GRE 测试

[FW-Tunn1-1060]display  interface  Tunnel 0
Tunnel0
Current state: UP
Line protocol state: DOWN
Description: Tunnel0 Interface
Bandwidth: 64 kbps
Maximum transmission unit: 1468
Internet address: 30.30.30.1/24 (Primary)
Tunnel source 10.10.10.10, destination 20.20.20.1
Tunnel keepalive enabled, Period(34 s), Retries(3)
Tunnel TTL 255
Tunnel protocol/transport GRE/IP
    GRE key value is 5
    Checksumming of GRE packets enabled
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 4 packets, 128 bytes, 0 drops
[FW-Tunn1-1060]display  interface  Tunnel brief 
Brief information on interfaces in route mode:
Link: ADM - administratively down; Stby - standby
Protocol: (s) - spoofing
Interface            Link Protocol Primary IP      Description                
Tun0                 UP   DOWN     30.30.30.1      

三 脚本技术解析

  1. IRF(Intelligent Resilient Framework):IRF是华三交换机的高可用性技术,可以将多台交换机虚拟化为单个逻辑设备,提供冗余和容错功能。

  2. VLAN:虚拟局域网(VLAN)是将局域网划分为多个逻辑网段的技术,可以增强网络的安全性和性能。

  3. 接口配置:配置了各个物理接口(GigabitEthernet1/0/0到GigabitEthernet1/0/23)的链路模式、协议类型和IP地址。

  4. 安全区域(Security Zone):安全区域将不同的接口划分到不同的安全域中,可以实现流量隔离和安全策略。

  5. 用户角色(User Role):配置了用户角色,用于授权不同用户访问交换机的权限。

  6. SSH、Telnet和HTTP/HTTPS管理:配置了通过SSH、Telnet、HTTP和HTTPS协议对交换机进行远程管理。

  7. IP路由:配置了静态路由,用于指定数据包的转发路径。

  8. 安全策略(Security Policy):配置了IP层面的安全策略,包括允许或禁止特定源和目的IP地址之间的通信。

  9. GRE(Generic Routing Encapsulation)是一种隧道协议,可用于在不同的网络中传输IP数据包。GRE VPN(GRE Virtual Private Network)是通过GRE协议在公共网络上创建一个私密的虚拟网络。它可以通过将IP数据包封装在GRE封装中来实现数据的安全传输和隐私保护。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1982906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

职场“老油条”的常规操作,会让你少走许多弯路,尤其这三点

有句话说得好&#xff1a;“在成长的路上&#xff0c;要么受教育&#xff0c;要么受教训。” 挨过打才知道疼&#xff0c;吃过亏才变聪明&#xff0c;从职场“老油条”身上能学到很多经验&#xff0c;不一定全对&#xff0c;但至少有可以借鉴的地方&#xff0c;至少能让你少走…

Python实现AI自动化微信回复脚本

脚本相关技术 wxauto Windows版本微信客户端&#xff08;非网页版&#xff09;自动化&#xff0c;可实现简单的发送、接收微信消息&#xff0c;简单微信机器人 GitHub地址 AI 脚本联动的是讯飞星火的api&#xff08;主要是免费且无限token数&#xff08;必须实名后才能领…

嵌入式学习---DAY19:标准IO

1. I&#xff1a; input 输入 键盘 O&#xff1a;output 输出 显示器 2.Linux操作系统当中IO都是对文件的操作&#xff0c;linux下一切皆文件&#xff0c;文件用来存储数据&#xff08;数据&#xff0c;指令&#xff09;。 3.stdio.h 标准输入输出头文件。 …

最新全国各省市水系矢量数据(2024年更新)

【数据简介】 来源于OSM在2024年7月份更新的全国范围的水系数据&#xff0c;并将其处理成各省、各市区域。OpenStreetMap&#xff08;OSM&#xff09;是一个全球性的开放源地图项目&#xff0c;旨在通过用户合作创建一个免费的、可编辑的世界地图。其数据广泛被用于地理信息系…

K个一组翻转链表(LeetCode)

题目 给你链表的头节点 &#xff0c;每 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值&…

Java单元覆盖率工具JaCoCo使用指南

JaCoCo&#xff08;Java Code Coverage Library&#xff09;是一款开源的Java代码覆盖率工具&#xff0c;它提供了详细的代码覆盖信息&#xff0c;帮助开发人员了解测试用例对代码的覆盖情况&#xff0c;从而发现潜在的问题和改进空间。以下是关于JaCoCo的详细介绍&#xff1a;…

[算法]二叉搜索树(BST)

二叉搜索树&#xff08;Binary Search Tree&#xff09;&#xff0c;也称二叉排序树或二叉查找树。 一、二叉搜索树的性质 二叉搜索树是一棵二叉树&#xff0c;可以为空。 当二叉搜索树不为空时&#xff1a; 1、非空左子树的所有键值小于其根结点的键值。 2、非空右子树的所有…

linux开发板配置-双网卡桥接-问题记录

韦东山i.mx6ull开发板 使用usb网卡连接电脑&#xff0c;ubuntu进行双网卡配置 问题&#xff1a; mount: mounting 192.168.96.131:/home/book/nfs_rootfs on /mnt failed: No route to host 乱七八糟各种配置&#xff0c;能ping通&#xff0c;但是nfs挂载不上 解决&#xff1a…

推荐系统与搜索系统架构

一、推荐系统逻辑 推荐的本质就是为了解决信息过载造成的“选择困难症”&#xff0c;便于用户能够在自己选物之前&#xff0c;系统已经帮用户筛选到了最想要的信息。 以下是我按照用户打开APP进入推荐页面时&#xff0c;推荐系统返回给该用户推荐列表的整体流程&#xff1a; …

Xshell安装图文

1.下载 通过百度网盘分享的文件&#xff1a;Xshell安装图文 链接&#xff1a;https://pan.baidu.com/s/1k4ShbhUVQmdxpM9H8UYOSQ 提取码&#xff1a;kdxz --来自百度网盘超级会员V3的分享 2.安装 3.连接与使用 见下载

vector 简单模拟实现

目录 一. vector成员变量 二. vector的构造函数和析构函数 三. vector的成员函数 1. 容量操作函数 扩容操作 (1). finish更新问题 (2). 扩容深浅拷贝问题 resize与尾插、尾删与判空 insert与erase与clear 2. 函数重载 (1). 赋值运算符重载 (2). [ ]重载进行访问 四. …

phpstudy搭建sqlilabs本地靶场

请先在网上解决好前置条件的下载和安装&#xff1a;phpstudy、vscode、navicat premium(非必要)、sqlilab的压缩包/文件夹 phpstudy--安装sqlilabs 1.打开phpstudy后&#xff0c;我们会用到MySQL5.7.26和Nginx1.15.11 #mysql5.7.26是因为sqlilabs靶场不支持高版本MySQL 2.在软…

练习实践 web中间件httpd-id:2-编译安装-web登录认证设置

参考来源&#xff1a; 用编译的方式安装apache httpd服务 编译安装过程记录 1.下载准备环境&#xff1a; yum -y install gcc gcc-c make pcre pcre-devel gd-devel openssl-devel zlib zlib-devel apr-*根据之前的操作文档和实际安装经验&#xff0c;提前将所需依赖项安装…

sqli-labs注入练习1,2关

sqli-labs第一关 判断是否存在sql注入 可见&#xff0c;根据输入数字的不同&#xff0c;结果也不同 判断sql语句是否是拼接&#xff0c;且是字符型还是数字型 由上可见&#xff0c;这关指定是字符型且存在sql注入漏洞 使用联合注入 第一步&#xff1a;首先知道表格有几列&…

PyCharm 2024.1 最新变化

文章目录 PyCharm 2024.1 最新变化一、新的 AI Assistant 功能 PyCharm Professional1、一键创建包含生成代码的文件2、生成架构感知型 SQL 查询 二、缩小整个 IDE 的选项三、新终端 Beta PyCharm 2024.1 最新变化 pycharm是什么 作为 JetBrains 旗下的一款专为 Python 开发者设…

SQL注入之sqli-labs靶场第二关

手工注入less-2 1.找注入点 通过 ?idsdfsdf 报错发现注入点 经过尝试没有闭合发现是数字型注入 2.猜解字段数量 发现字段数量为3 3.通过union联合查询判断回显点 发现回显点2&#xff0c;3&#xff0c; 4&#xff0c;进行信息收集 数据库版本号&#xff1a;5.7.26 数据库…

【MongoDB】1.MongoDB下载与安装

目录 一、下载 二、安装 三、安装MongoDB Compass 四、连接 一、下载 官网地址&#xff1a; https://www.mongodb.com/download-center/community 二、安装 详细的安装教程可参考&#xff1a; MongoDB安装&#xff08;超详细&#xff09;_安装mongodb-CSDN博客 注意事项1&…

亚马逊爬虫(Amazonbot)IP地址,真实采集数据

一、数据来源&#xff1a; 1、这批亚马逊爬虫&#xff08;Amazonbot&#xff09;IP来源于尚贤达猎头公司网站采集数据&#xff1b; ​ 2、数据采集时间段&#xff1a;2023年10月-2024年7月&#xff1b; 3、判断标准&#xff1a;主要根据用户代理是否包含“Amazonbot”和IP核…

C# Unity 面向对象补全计划 七大原则 之 依赖倒置原则 (DIP)难度:☆☆ 总结:多抽象,多接口,少耦合

本文仅作学习笔记与交流&#xff0c;不作任何商业用途&#xff0c;作者能力有限&#xff0c;如有不足还请斧正 本系列作为七大原则和设计模式的进阶知识&#xff0c;看不懂没关系 请看专栏&#xff1a;http://t.csdnimg.cn/mIitr&#xff0c;查漏补缺 1.依赖倒置原则 (DIP) 这…

【算法题】无重复字符的最长子串(滑动窗口)

目录 一、题目描述 二、解题思路 1、什么是滑动窗口算法&#xff1f; 2、滑动窗口一般解题模板 三、参考答案 一、题目描述 无重复字符的最长子串 给定一个字符串s &#xff0c;请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: s "abcabcbb"…