GRE/VXLAN 过nat的一些尝试

本文探讨了GRE和VXLAN隧道如何在穿越NAT时保持连接。介绍了在网关设备为OVS的情况下,如何配置GRE和VXLAN以通过NAT,并强调了Nat-T的重要性。同时,提到了Linux内核中针对VXLAN的修改,以支持NAT穿越,并指出保活机制对于维持连接跟踪表的重要性。

支持nat-t的tunnel要么是标准的C/S模型,能够从墙内发起建立tunnel隧道,且有保活机制使防火墙上的ct持久生效。要么像IPSec一样,能够在协议层面支持,知道tunnel是经过nat的。

linux gre 和 vxlan 作为常用的tunnel口是无法过nat的,但其性能和复杂度比ssl,ipsec这些能够过nat的tunnel要好很多。

做了些gre/vxlan过nat的测试,做了些记录:
在这里插入图片描述

GRE过nat

如果网关设备为ovs,直接通过流表学习到nat过的gre头即可,如果网关设备为linux bridge需要改动内核gre模块,修改量不多。

网关设备为ovs:
网关设备上ovs上配置
* 创建br0

ovs-vsctl add-br br0

ip link set up dev br0

ip addr add 211.1.1.1/24 dev br0

* 创建gre口

ovs-vsctl add-port br0 gre1 -- set interface gre1 type=gre options:local_ip=192.168.121.177 options:remote_ip=flow options:key=flow

* 创建流表,in_port=1是gre1的端口编号,流表主要用于学习反向nat过的流表。流表需要配置老化时间防止对端不可用后流表残留,这里只是测试没配置。

ovs-ofctl add-flow br0 "priority=1,in_port=1,actions=learn(priority=1,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[] load:NXM_NX_TUN_ID[]->NXM_NX_TUN_ID[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值