zl程序教程

您现在的位置是:首页 >  其他

当前栏目

VPC NAT网关/私网连接组合动手实践

2023-02-26 10:15:55 时间

NAT网关反向访问

一、同账号下VPC之间的反向访问:

场景描述:
vpc-2(endpoint)和vpc-3(endpoint)是client端,vpc-1(endpointservice)是服务端;本次 是从服务端反向访问client端,是从vpc-1可以访问vpc-2和vpc-3:本次示例从ECS(ECS-0或者ECS-1)分别访问vpc-2(ECS-3和ECS-4);
VPC NAT网关/私网连接组合动手实践

(福利推荐:阿里云、腾讯云、华为云服务器最新限时优惠活动,云服务器1核2G仅88元/年、2核4G仅698元/3年,点击这里立即抢购>>>

条件

  • 至少两个VPC(vsw,ecs);
  • nat反向访问开通白名单;
  • 反向访问终端服务白名单;
  • VPC NAT服务资源类型白名单;

操作步骤

1、vpc1 —作为service操作

创建vpc nat 网关:

  • 登录https://vpc.console.aliyun.com/vpc-nat/eu-central-1/nats 专有网络控制台;
  • 点击NAT网关;
  • 点击VPC NAT 网关;
  • 点击创建VPC NAT 网关;
    VPC NAT网关/私网连接组合动手实践

    • 选择地域:选择region
    • vpc id: 选择vpc1;
    • 可用区:选择对应的可用区(A/B);
    • 交换机:选择对应的交换机;
    • 实例名称:自己可以定义
    • Privatelink服务使能:勾选
    • 立即购买,如下图:

    VPC NAT网关/私网连接组合动手实践

创建终端节点服务(endpointservice):

  • 登录https://vpc.console.aliyun.com/vpc-nat/eu-central-1/nats 专有网络控制台
  • 选择终端节点服务
  • 创建终端节点服务

    • 服务类型选择:VPC NAT网关
    • 服务资源:VPC1的交换机和可用区
    • 确定创建,如下图:

VPC NAT网关/私网连接组合动手实践

2、vpc2—作为client 操作

创建终端节点(endpoint)

  • 登录https://vpc.console.aliyun.com/vpc-nat/eu-central-1/nats专有网络控制台;
  • 终端节点:选择反向终端节点并点击创建终端节点;
    VPC NAT网关/私网连接组合动手实践
  • 创建终端节点:

    • 填写节点名称:自定义;
    • 终端节点类型:选择反向终端节点(2.2.2选择后默认);
    • 终端节点服务:选择之前创建的endpintservice-(VPC1)
    • 专有网络:选择VPC2后出现安全组和可用区与交换机;选择安全组和对应的可用区以及交换机(需要与vpc-1的交换机的可用区保持一致),确定创建,如下图:

    VPC NAT网关/私网连接组合动手实践

    • 注:控制台创建终端节点可用区,eni会默认生成一个ip,如果想要更多ip提升nat session能力,可以使用openapi指定ip数量(最大不超过20个)。
  • 创建成功后会显示:
    VPC NAT网关/私网连接组合动手实践

3、VPC1和VPC2的终端连接接通:

  • 登录https://vpc.console.aliyun.com/vpc-nat/eu-central-1/nats 专有网络控制台;
  • 点击终端节点服务;
  • 点击创建好的终端节点服务的实例id;
  • 点击终端节点连接;
  • 操作栏:允许;稍等几分钟后(endpointservicer和endpoint)显示已连接(如果创建vpc-1时选择自动连接此操作可以省略);
    VPC NAT网关/私网连接组合动手实践
    VPC NAT网关/私网连接组合动手实践
  • 最终状态显示成功如下图:
    VPC NAT网关/私网连接组合动手实践
  • 在终端节点也可以看到显示连接成功如下图:在终端节点创建后显示
    VPC NAT网关/私网连接组合动手实践

4、配置NAT的连接规则(共两种,选择一种)

  • 登录https://vpc.console.aliyun.com/vpc-nat/eu-central-1/nats 专有网络控制台
  • 选择NAT网关:选择VPC NAT网关,点击已经创建的VPC NAT网关实例,如下图
    VPC NAT网关/私网连接组合动手实践
  • 点击基本信息–私网连接服务:点击模式
    VPC NAT网关/私网连接组合动手实践

    • 普通模式:需要配置fullnat规则

      • 选择普通模式后,点击确定

      VPC NAT网关/私网连接组合动手实践

      • 点击NAT IP:查看nat ip(配置多条可以添加nat ip,不用添加路由;添加nat ip网段时需要添加路由)

      VPC NAT网关/私网连接组合动手实践

      • 点击FULL NAT规则管理:点击创建FULL NAT条目

      VPC NAT网关/私网连接组合动手实践

      • 选择NAT IP地址:选择nat ip(上步查看的nat ip);
      • 转换后目的IP地址:VPC2下的ecs的私网IP(编辑);
      • 端口设置(示例填写80);
      • 弹性网卡:选择endpoint的eni(创建终端节点后显示eni);
      • 条目名称:自己可以定义,最后确定创建;详情如下图:

      VPC NAT网关/私网连接组合动手实践

      • Geneve模式:不需要配置规则

5、验证是否配置成功

5.1 fullnat验证

  • 登录vpc-2 下的ECS(ecs-2和ecs-3),开启http的服务执行:

    • yum install httpd

    VPC NAT网关/私网连接组合动手实践

    • systemctl start httpd

    VPC NAT网关/私网连接组合动手实践

    • 登录vpc-1 下的ECS(ecs-0或者ecs-1),执行一下命令:

      VPC NAT网关/私网连接组合动手实践


5.2 geneve的概述

nat使用的geneve协议报文格式定义:
VPC NAT反向访问geneve模式,nat所在VPC的客户端和nat交互时,需要使用符合NAT定义标准的geneve协议,定义如下。

  • GENEVE与VXLAN类似,也是over UDP的隧道协议。VXLAN header是固定长度的(8个字节,其中包含24bit VNI),与VXLAN不同的是,GENEVE header中增加了TLV(Type-Length-Value),由8个字节的固定长度和0~252个字节变长的TLV组成,并且geneve使用的固定udp端口号为0x6081。GENEVE header中的TLV代表了可扩展的元数据。我们来看一下GENEVE header:

VPC NAT网关/私网连接组合动手实践

与VXLAN等协议相比,GENEVE最大特点,是在Geneve Header部分增加了Option部分。Option部分格式如下:
VPC NAT网关/私网连接组合动手实践

geneve协议标准定义:

  • Version(2bit):版本号,目前是0。
  • Opt Len(6bit):以4字节为单位,表明Variable Length Options的长度。因为只有6bit,所以Variable Length Options最多是252(63*4)字节。
  • O(1bit):表明这是一个OAM包,包含了控制信息,而非数据。
  • C(1bit):表明在Variable Length Options里面,存在一个或者多个Critical的option。
  • Rsvd.(6bit):保留字段。
  • Protocol Type(16bit):被封装的协议类型,例如Ethernet就是0x6558,IP就是0x0800。这个字段的存在,使得GENEVE封装其他的协议成为可能。
  • VNI(24bit):虚拟化标识符,和我们当前所用tunnel id功能类似。
  • Reserved(8bit):保留字段。
  • Variable Length Options:由TLV构成,包含了可扩展的元数据。

geneve封装在报文中的位置:
VPC NAT网关/私网连接组合动手实践


GENEVE隧道对接NAT格式定义:

  • 隧道部分:向natgw发包时,隧道dip为natgw在本vpc内私网ip地址,即nat ip地址,该地址在创建natgw即可获得,如果nat ip是自定义网段的地址,那需要用户手动添加vpc路由指向nat。natgw反向回包时,会回包给原始正向包的隧道源地址。udp目的端口号固定为0x6081。
  • geneve固定header部分:protocol type目前只支持IP类型即0x0800,geneve头后面跟着原始报文IPv4头.
  • geneve tlv部分:

VPC NAT网关/私网连接组合动手实践

  • option class为alibaba自定义class 0x131。
  • type 4标识EP信息。
  • len ep-id为2个字长,len=2。
  • EP ID来源于创建EP时产生的ID,其中最后8字节的16进制数字。例如ep- 67j8f86b540a76543210,0xf86b540a76543210就是geneve中的EP ID。
  • geneve协议头后报文格式:geneve协议头后面跟着原始报文IP头,目的IP为目的vpc要访问的目的资源IP。

5.3 geneve的验证

  • 验证过程:

    • 由于geneve规则没有配置相关参数,测试时可以使用自定义的工具,指定相关参数:nat ip –endpoint–ecs(ip、 port);
    • 使用命令行参数运行脚本(脚本见附件):
      Python3 脚本名称 -n nat ip -e endpoint id -d ecs ip -p 协议类型 -r dport
    • 获取相应的报文信息:

    VPC NAT网关/私网连接组合动手实践
    VPC NAT网关/私网连接组合动手实践
    VPC NAT网关/私网连接组合动手实践

注意:以上操作是两个vpc的操作,如场景描述图所示,需要创建多个endpoint,可以继续操作创建endpoint;

二、不同账号下VPC之间的反向访问:

与同账号的操作步骤一样,只需要在创建终端节点服务后添加需要访问账号的白名单,继续其它相关操作;

  • 登录https://vpc.console.aliyun.com/vpc-nat/eu-central-1/nats 专有网络控制台
  • 选择终端节点服务:点击已创建的终端节点服务实例id;
    VPC NAT网关/私网连接组合动手实践
  • 点击服务白名单;
    VPC NAT网关/私网连接组合动手实践
  • 添加白名单:填写对应的uid-,确定;
    VPC NAT网关/私网连接组合动手实践

VPC NAT网关/私网连接组合动手实践


本站部分内容转载自网络,版权属于原作者所有,如有异议请联系QQ153890879修改或删除,谢谢!
转载请注明原文链接:VPC NAT网关/私网连接组合动手实践

你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:

1、点击这里立即申请成为腾讯云VIP客户

2、点击这里立即注册成为天翼云VIP客户

3、点击这里立即申请成为华为云VIP客户

4、点击这里立享阿里云产品终身VIP优惠价

喜欢 (0)
[[email protected]]
分享 (0)