searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

紫金DPU支持对gre报文卸载

2024-12-11 08:57:54
22
0

1. 背景介绍

通用路由封装(GREGenetic Routing Encapsulation)是一种隧道技术,它规定了如何将一种网络协议下的数据报封装在另外一种网络协议中,使这些被封装的数据报能够在另一个网络层协议中传输

骨干网中一般采用单一网络协议(例如IPv4)进行数据报文传输,但是不同的非骨干网上可能会使用不同网络协议(例如:IPv6IPX等)进行数据报文传输。由于骨干网与非骨干网使用的协议不同,这样将导致非骨干网之间无法通过骨干网传输数据报文。GRE协议通过实现一种协议封装另一种协议来解决这个问题。

 紫金DPU是自研的一款弹性裸金属,可支持弹性网卡,这些弹性网卡之间通信支持icmp,tcp,udp, gre协议等,且这些协议的报文可卸载到硬件上。

2GRE基本原理

GRE工作原理:


内层协议作为payloadGRE封装被外层协议承载


GRE header格式:


 

 3. 紫金DPU支持对GRE报文的卸载

   两台弹性裸金属通信的报文,其中host  client发起的报文通过gre报文封装后,流量到了DPU侧,会卸载到硬件上,报文再次经过vxlan封装,到了server上,流量在DPU侧,经过硬件卸载后,进行vxlan解封装,最终报文回到host server侧,进行gre解封装。

 

4.测试步骤

环境准备:两台弹性裸金属,弹性网卡同一个网段可正常通信

搭建gre隧道:

两台弹性裸金属host上都开启ip_gre功能

#modprobe ip_gre

#lsmod |grep ip_gre

弹性裸金属B作为服务端,在对应的host上开启:

ip tunnel add tun1 mode gre local 20.11.9.152 remote 20.11.9.100 ttl 255

ip addr add 192.168.0.8 peer 192.168.0.10 dev tun1

ip link set tun1 up

 

弹性裸金属A作为客户端,在对应的host上开启:

ip tunnel add tun1 mode gre local 20.11.9.100 remote 20.11.9.152 ttl 255

ip addr add 192.168.0.10 peer 192.168.0.8 dev tun1

ip link set tun1 up

 

连通性验证:

ping 192.168.0.8

 

1)不配置安全组

报文可正常转发卸载,但不过CT,对端可以收到报文

Host上抓包,可见host发出去的报文是已经封装好的gre报文

同时在DPU侧查看gre协议报文已经卸载,但是未过ct


 

2配置GRE规则

配置gre规则,GRE大包/小包流量不通,TCP/UDP/ICMP大包/小包流量正常

修改gre规则action/direction/ip-version/priority/protoctol/remote-type/remote-cidr,均可以修改成功

修改gre规则--ip-version 6 drop,对应ipv4 gre大包/小包流量正常

修改gre规则--remote-cidr 20.11.9.0/24 drop,对应ipGRE流量不通

vpcs security-group-rule-create sg-lti4beniq4 --action drop --direction egress --ip-version 4 --priority=15 --protocol=gre --remote-type cidr --remote-cidr 0.0.0.0/0


删除gre规则,GRE流量恢复

0条评论
0 / 1000
m****n
4文章数
0粉丝数
m****n
4 文章 | 0 粉丝
原创

紫金DPU支持对gre报文卸载

2024-12-11 08:57:54
22
0

1. 背景介绍

通用路由封装(GREGenetic Routing Encapsulation)是一种隧道技术,它规定了如何将一种网络协议下的数据报封装在另外一种网络协议中,使这些被封装的数据报能够在另一个网络层协议中传输

骨干网中一般采用单一网络协议(例如IPv4)进行数据报文传输,但是不同的非骨干网上可能会使用不同网络协议(例如:IPv6IPX等)进行数据报文传输。由于骨干网与非骨干网使用的协议不同,这样将导致非骨干网之间无法通过骨干网传输数据报文。GRE协议通过实现一种协议封装另一种协议来解决这个问题。

 紫金DPU是自研的一款弹性裸金属,可支持弹性网卡,这些弹性网卡之间通信支持icmp,tcp,udp, gre协议等,且这些协议的报文可卸载到硬件上。

2GRE基本原理

GRE工作原理:


内层协议作为payloadGRE封装被外层协议承载


GRE header格式:


 

 3. 紫金DPU支持对GRE报文的卸载

   两台弹性裸金属通信的报文,其中host  client发起的报文通过gre报文封装后,流量到了DPU侧,会卸载到硬件上,报文再次经过vxlan封装,到了server上,流量在DPU侧,经过硬件卸载后,进行vxlan解封装,最终报文回到host server侧,进行gre解封装。

 

4.测试步骤

环境准备:两台弹性裸金属,弹性网卡同一个网段可正常通信

搭建gre隧道:

两台弹性裸金属host上都开启ip_gre功能

#modprobe ip_gre

#lsmod |grep ip_gre

弹性裸金属B作为服务端,在对应的host上开启:

ip tunnel add tun1 mode gre local 20.11.9.152 remote 20.11.9.100 ttl 255

ip addr add 192.168.0.8 peer 192.168.0.10 dev tun1

ip link set tun1 up

 

弹性裸金属A作为客户端,在对应的host上开启:

ip tunnel add tun1 mode gre local 20.11.9.100 remote 20.11.9.152 ttl 255

ip addr add 192.168.0.10 peer 192.168.0.8 dev tun1

ip link set tun1 up

 

连通性验证:

ping 192.168.0.8

 

1)不配置安全组

报文可正常转发卸载,但不过CT,对端可以收到报文

Host上抓包,可见host发出去的报文是已经封装好的gre报文

同时在DPU侧查看gre协议报文已经卸载,但是未过ct


 

2配置GRE规则

配置gre规则,GRE大包/小包流量不通,TCP/UDP/ICMP大包/小包流量正常

修改gre规则action/direction/ip-version/priority/protoctol/remote-type/remote-cidr,均可以修改成功

修改gre规则--ip-version 6 drop,对应ipv4 gre大包/小包流量正常

修改gre规则--remote-cidr 20.11.9.0/24 drop,对应ipGRE流量不通

vpcs security-group-rule-create sg-lti4beniq4 --action drop --direction egress --ip-version 4 --priority=15 --protocol=gre --remote-type cidr --remote-cidr 0.0.0.0/0


删除gre规则,GRE流量恢复

文章来自个人专栏
智能网卡
3 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
1
1