V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
webeasymail
V2EX  ›  云计算

[求教]阿里云 VPC 网络和公共网络是如何打通的?

  •  
  •   webeasymail · 2023-10-16 16:35:05 +08:00 · 2461 次点击
    这是一个创建于 396 天前的主题,其中的信息可能已经有所发展或是发生改变。

    再阿里云购买 VPC 网络的 ECS ,未分配外网 IP ,SSH 登陆主机后,发现能够正常访问阿里云公共服务内网域名(非当前 VPC 的域名,是案例一公共服务的域名),查看控制台 VPC 的路由表,发现系统自动添加一条 100.64.0.0/10 的路由表,求教再云平台网络架构下面,这个是通过什么技术原理实现的?

    第 1 条附言  ·  2023-10-17 15:45:05 +08:00
    上面的问题可能有点杂乱,再把问题重点突出一下:

    再公有云架构下,如果我们使用 RFC6598 定义的保留网段作为企业网,VPC 和企业网怎么打通?通过什么方案更合理?
    opengps
        1
    opengps  
       2023-10-16 16:44:42 +08:00
    粗略点的理解方式:你可以把 vpc 网络类比你家里一个路由器拖着几台电脑手机
    zealic
        2
    zealic  
       2023-10-16 16:48:08 +08:00
    内网服务,会有 DNS 解析到到单独的路由指向内部的
    webeasymail
        3
    webeasymail  
    OP
       2023-10-16 16:52:37 +08:00
    @opengps VPC 网络我理解,不了解的是 VPC 能够访问公共服务网络是什么技术原理。
    webeasymail
        4
    webeasymail  
    OP
       2023-10-16 16:53:39 +08:00
    @zealic DNS 我也了解一点,不了解的是 VPC 是怎么访问到公共服务网络的?
    Licsber
        5
    Licsber  
       2023-10-16 16:55:26 +08:00
    访问到?就是一个路由器呀
    查看你的/etc/resolv.conf 能看到位于内网的 DNS 服务器
    那反正是阿里的私有域名 帮着解析呗 根据你的源 IP 自动把这个域名解析成内网不就好了
    leaflxh
        6
    leaflxh  
       2023-10-16 16:57:28 +08:00
    我用腾讯的机器,在服务器上 ping 对象存储的域名返回的是内网的 IP 地址

    估计是有 DNS 拦截,或者系统的内置 DNS 做的内网解析
    webeasymail
        7
    webeasymail  
    OP
       2023-10-16 16:58:46 +08:00
    @Licsber 这想问的 DNS 的问题,我想的是 VPC 网络和阿里云公共网络的 IP 是怎么打通的。
    webeasymail
        8
    webeasymail  
    OP
       2023-10-16 17:00:18 +08:00
    我这个问题可能表达的不太好,我修改一下这个问题:

    再阿里云购买 VPC 网络的 ECS ,未分配外网 IP ,SSH 登陆主机后,发现能够正常访问阿里云公共服务 IP ,查看控制台 VPC 的路由表,发现系统自动添加一条 100.64.0.0/10 的路由表,求教再云平台网络架构下面,这个是通过什么技术原理实现 VPC 和公共服务 IP 互通的?
    webeasymail
        9
    webeasymail  
    OP
       2023-10-16 17:01:32 +08:00
    @leaflxh 问题没有表达清楚,不好意思,我想问的是 VPC 网络是通过什么技术实现访问公共网络 IP 的?
    skyrim61
        10
    skyrim61  
       2023-10-16 17:06:09 +08:00
    webeasymail
        11
    webeasymail  
    OP
       2023-10-16 17:08:05 +08:00
    @skyrim61 snat 我不是很了解,这个 ECS 是没有外网 IP 的,阿里云公共服务 IP 也是内网的,SNAT 可以解决内网的这个场景是吗?
    leaflxh
        12
    leaflxh  
       2023-10-16 17:08:22 +08:00
    @webeasymail
    你这个公共网络 IP 指的是内网 IP 吗,这种东西就类似于上面有个路由器,做好了路由规划,比如对象存储的内网 IP 是 169.10.0.1 ,本机默认是 0.0.0.0/0 发到网关,网关再根据路由表给你转到下一跳
    leaflxh
        13
    leaflxh  
       2023-10-16 17:09:32 +08:00
    ECS 没有外网 IP 但有内网 IP 吧,一般都是只分配内网 IP ,然后从上面决定有没有公网的访问权,有的话这个就跟 NAT 一样了,一个公网 IP 映射到一个内网 IP
    leaflxh
        14
    leaflxh  
       2023-10-16 17:10:52 +08:00
    ip a 是看不到自己有没有公网 IP 的,只有分配的内网 IP 。一些小厂不用 VPC 会直接把公网 IP 分配到机器上
    skyrim61
        15
    skyrim61  
       2023-10-16 17:12:02 +08:00
    @webeasymail 我们是 snat 还有一个是 dnat, 但是我总是搞混, 我们 vpc 上网是这样的
    webeasymail
        16
    webeasymail  
    OP
       2023-10-16 17:12:50 +08:00
    @leaflxh 我再阿里云控台没有创建 SNAT 网关,内网 IP 是阿里云的公共服务占用的 IP ( 100.64.0.0/10 这个网段),我是 VPC 的网络。
    zsdroid
        17
    zsdroid  
       2023-10-16 17:13:42 +08:00
    阿里云 NAT 网关( NAT Gateway ,简称 NAT )提供公网 NAT 和私网 NAT 两种功能。公网 NAT 网关通过自定义 SNAT 、DNAT 规则可为云上服务器提供对外公网服务、及主动访问公网能力;
    webeasymail
        18
    webeasymail  
    OP
       2023-10-16 17:14:19 +08:00
    @skyrim61 你说的这个 SNAT 上网我是了解的,不过阿里云的是内网服务,我的 ECS 没有外网 IP (也没有开通 SNAT )所以不能访问到外网。
    webeasymail
        20
    webeasymail  
    OP
       2023-10-16 17:17:06 +08:00
    @zsdroid 我想了解的是他阿里云底层是怎么实现用户 VPC 访问阿里云公共服务 IP 的能力,没有开通 NAT 网关即可访问到。
    zsdroid
        21
    zsdroid  
       2023-10-16 17:18:24 +08:00
    @webeasymail 你买的是 ecs ,ecs 在 vpc 下面的,vpc 肯定都配置好了的
    webeasymail
        22
    webeasymail  
    OP
       2023-10-16 17:18:41 +08:00
    @leaflxh 没有公网 IP 的,只有一个 VPC 网络的 IP
    webeasymail
        23
    webeasymail  
    OP
       2023-10-16 17:21:12 +08:00
    @zsdroid VPC 的路由表确实配置了一个阿里公共服务 IP 的条目,您的意思,阿里云再内部会创建一个隐藏的 SNAT 来解决这个问题吗?
    nanh
        24
    nanh  
       2023-10-16 17:28:18 +08:00
    建议阿里云提工单,他们会结合你现有的设备给你出方案的
    webeasymail
        25
    webeasymail  
    OP
       2023-10-16 17:30:00 +08:00
    @nanh 这个我估计他们不会给我提供方案,这个是他们内部实现。
    webeasymail
        26
    webeasymail  
    OP
       2023-10-16 17:30:22 +08:00
    zsdroid
        27
    zsdroid  
       2023-10-16 17:31:52 +08:00
    @webeasymail #23 是的。一般服务器是不会限制出口的
    Greenm
        28
    Greenm  
       2023-10-16 17:35:13 +08:00
    就是内网 IP 访问内网域名( IP ),根本不涉及外网,没那么复杂。
    webeasymail
        29
    webeasymail  
    OP
       2023-10-16 17:40:14 +08:00
    @Greenm 我不太清楚是否复杂,不过 VPC 网络是不能访问到云企业网的(公共服务 IP )。
    webeasymail
        30
    webeasymail  
    OP
       2023-10-16 17:40:52 +08:00
    @zsdroid 好的,谢谢,这个方案我了解了,我在和小伙伴讨论一下,看看是否可行。
    quxuanxuan
        31
    quxuanxuan  
       2023-10-16 19:02:56 +08:00
    你把虚拟机内的 dns 配置改成非阿里云官方的,然后再访问阿里云内网公共服务,如果还能访问,那就是在虚拟机所在的宿主机上做过 dns 拦截
    hxm0070
        32
    hxm0070  
       2023-10-16 19:08:53 +08:00 via Android
    家里电脑(等同 ECS )连在路由器局域网(等同 VPC )里,电脑没有公网 ip ,也能访问公网资源,路由器的路由转发功能呗
    fredcc
        33
    fredcc  
       2023-10-16 19:16:59 +08:00 via Android
    100.64.0.0/10 是内网保留地址 IP 段,阿里云的托管服务 vpc 内部 endpoint 都在这段。官网 vpc 文档中写得很清楚
    vuuv
        34
    vuuv  
       2023-10-16 20:07:40 +08:00
    你的这个问题有多个技术:
    1. “阿里云公共服务内网域名”,我没有阿里云机器,我记得好像是 `aliyuncs.com`,这是阿里云持有的域名,专供云内网使用。当 ecs 主机请求解析此域名时,会返回内网解析。

    2. “没有外网为何能解析内网域名”,阿里云运行的虚拟机镜像是定制的,一般预装了 cloud-init (或等效软件)并设置开机自启。他会遵循 DHCP 或者请求阿里云的 metadata_urls ,进行额外的配置。其中就包括了 配置阿里云专用 DNS 。如果这个 DNS 是合格的公网 IP ,可能阿里云使用了 SNAT ,或者将 DNS 所在机器的内网路由重定向回了云网络重新分发。

    3. 阿里云主机专用 DNS ,此 DNS 可以根据你的 VPC 返回相应的内网 IP ,甚至拦截公网域名返回内网地址。例如你在 ecs 内请求公网域名 mirrors.aliyun.com ,会返回内网地址。因为阿里云持有 aliyun.com ,所以这个拦截行为合法。

    4. 100.64.0.0/10 网段,这是 RFC6598 定义的保留网段,用途为“用于在电信级 NAT 环境中服务提供商与其用户通信”。这个地址不准在公网路由,阿里云使用其作为云内网公共网络是合理的。

    5. ecs 为何能访问 100.64.0.0/10 网段。阿里云的 vpc 都是基于物理网络虚拟化出来的。所有的租户网络标记(一如 vlan id 或者 vxlan segments ),标记不同就不允许互通。而 100.64 就在主机网络或者一个公共标记中。特许与租户网络互通。
    hymzhek
        35
    hymzhek  
       2023-10-16 20:54:26 +08:00
    nat vps
    opengps
        36
    opengps  
       2023-10-17 09:48:09 +08:00
    你可能没在家庭公网路由器往你电脑上转发过端口,vpc 这种其实可以理解成 dmz 这种全端口转发到后面一台电脑上的结构来理解
    webeasymail
        37
    webeasymail  
    OP
       2023-10-17 13:26:48 +08:00
    @opengps 这个我用过,我需要指导的阿里云这种基于云平台的技术原理,感谢。
    webeasymail
        38
    webeasymail  
    OP
       2023-10-17 13:33:36 +08:00
    @vuuv 非常感谢,个人猜测访问路径是 ECS - > 转发路由(通过 VPC 设置的 100.64.0.0/10 转发规则) -> 系统使用的 SNAT -> 到达 100.64.0.0/10 服务,由于对网络理解不够深入,不知道再公有云的架构下是否有更合理的解决方案。
    webeasymail
        39
    webeasymail  
    OP
       2023-10-17 13:34:50 +08:00
    @fredcc 我看了文档,知道是阿里云的内部服务,我只是想知道再公有云架构下,阿里云是使用什么技术方案实现的,或者有什么可行的技术方案。
    o562dsRcFqYl375i
        40
    o562dsRcFqYl375i  
       2023-10-17 14:39:05 +08:00
    你这是想要知道 VPC 的实现原理啊,大兄弟...
    webeasymail
        41
    webeasymail  
    OP
       2023-10-17 14:57:27 +08:00
    @huangzongzhuan 我不太清楚是否需要知道 VPC 原理,再公有云架构下,如果我们使用 RFC6598 定义的保留网段作为企业网,VPC 和企业网怎么打通?通过什么方案更合理?
    yyttrr
        42
    yyttrr  
       2023-10-17 16:54:16 +08:00
    月消费多少?我上家阿里云月消费 300 多,这个事情和他们提一句,第二天阿里云客户经理就带着个技术专家来我们公司了,规划了两天
    webeasymail
        43
    webeasymail  
    OP
       2023-10-17 17:01:29 +08:00
    @yyttrr 阿里云支持的,我是想知道规划一个公有云,如何打通租户 VPC 和公有云的企业网。
    Viefane
        44
    Viefane  
       2023-10-18 21:58:54 +08:00 via iPhone
    打通租户 VPC 和公有云的企业网,这个好像是网工的活了。一般来说经过 S/DNAT ,VPC 出去是走三层路由,可以通过 BGP AS 号 IBGP 到 EBGP 路由到骨干网打通,也可以通过 VXLAN 用三层包二层做大二层网络打通,这两种比较直接高效,但是 BGP 线路费用高,公网 AS 要 ISP 牌照申请,VXLAN 做 overlay 要整体做设备配置调整,架构变更比较大。这是大体量公有云的玩法,一般小体量的私有云不用考虑到这么底层,直接打隧道更常规,MPLS-VPN 、QUIC 、SD-WAN 、云网关都可以,按需选择。
    webeasymail
        45
    webeasymail  
    OP
       2023-10-19 16:28:27 +08:00
    @Viefane 感谢回答,如果再一个公有云的架构下面(假设是大二层网络架构,已经部署了 SDN ),是不是可以通过租户 VPC 绑定一个系统的 SNAT (这个 SNAT 对用户是不可见的),再 VPC 配置一条系统路由表,来实现租户 VPC 访问公有云企业网的目的(这样租户挂在 VPC 下面 ECS 就可以访问到企业网内的服务了),不知道我这样理解对不对。
    Viefane
        46
    Viefane  
       2023-10-20 13:47:23 +08:00 via iPhone
    阿里云公网连接方式有三种:SLB 、EIP 、公网 NAT ,公网 NAT 实现的需求就是将多个内网 ECS 通过一个公网 NAT 连通公网或企业网,虚拟化网络实现网络设备层面 NAT 。你说的这个应该是自建公网 NAT ,VPC 下挂着没公网 IP 的多个 ECS 、一个有公网 EIP 的 ECS ,通过 VPC 写路由把所有流量转到有公网的 ECS 实例,公网 ECS 系统设置转发和 Nginx 反向代理来互通,也能软实现公网 NAT 的功能。思路是对的,但自建公网 NAT 要注意,只有在 VPC 专有网络中才可以,传统网络是不能自建的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3010 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:53 · PVG 18:53 · LAX 02:53 · JFK 05:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.