Oracle Site-Site VPN 三个机器配置相同只有一个内网通 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
moonc5914
V2EX    Linux

Oracle Site-Site VPN 三个机器配置相同只有一个内网通

  •  1
     
  •   moonc5914 2023-08-22 03:41:46 +08:00 2369 次点击
    这是一个创建于 842 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Oracle 有 Site-Site VPN 可以白嫖,所以想试试能不能把几个机器通过 VPN 组网。皆是使用 Static Routing 。但由于网络知识及相关工具知识匮乏,没法白嫖成功,遂有以下疑问。

    问题描述

    先后在 A ( AWS HK ,192.168.0.2/24 ),B ( Tencent HK ,192.168.10.2/24 ),C (国内托管,192.168.20.2/24 )三个服务器上按照 Oracle 的教程创建了 vti 网卡,手动 C 机器( Ubuntu22.04 不能安装 quagga 了)/A 、B 机器使用 zebra 添加了路由规则,详细路由如下:

    root@ip-172-31-21-142:/home/ubuntu# ip route default via 172.31.16.1 dev ens5 proto dhcp src 172.31.21.142 metric 100 10.0.0.0/24 proto zebra scope link metric 20 nexthop dev vti0 weight 1 nexthop dev vti1 weight 1 172.31.16.0/20 dev ens5 proto kernel scope link src 172.31.21.142 172.31.16.1 dev ens5 proto dhcp scope link src 172.31.21.142 metric 100 192.168.0.0/24 dev vti0 proto kernel scope link src 192.168.0.2 192.168.0.0/24 dev vti1 proto kernel scope link src 192.168.0.4 192.168.10.0/24 proto zebra scope link metric 20 nexthop dev vti0 weight 1 nexthop dev vti1 weight 1 192.168.20.0/24 proto zebra scope link metric 20 nexthop dev vti0 weight 1 nexthop dev vti1 weight 1 

    其中10.0.0.0/24是用来访问 Oracle 的 VPS(10.0.0.79)的。其他的都是各机器子网的路由。三台机器的ip route除过本机必须条目之外其他都相同。

    网卡的信息如下(AWS 的默认网卡 mtu 为 9000 ,其他两个为 1500):

    vti0: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 8981 inet 192.168.0.2 netmask 255.255.255.0 destination 192.168.0.2 inet6 fe80::5efe:ac1f:158e prefixlen 64 scopeid 0x20<link> tunnel txqueuelen 1000 (IPIP Tunnel) RX packets 1575 bytes 115015 (115.0 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1902 bytes 107800 (107.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vti1: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 8981 inet 192.168.0.4 netmask 255.255.255.0 destination 192.168.0.4 inet6 fe80::5efe:ac1f:158e prefixlen 64 scopeid 0x20<link> tunnel txqueuelen 1000 (IPIP Tunnel) RX packets 1269 bytes 94250 (94.2 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1306 bytes 69848 (69.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 

    为了避免其他问题,A ,B 机器系统为新装 Ubuntu20.04 ,C 为 22.04 ,且防火墙出入方向全部放行,除过 C 机器有 Docker 以外且是公网 IP 直接分配给网卡,另外两个都是全新系统且内网 IP 。可以确认的是每个机器的 VPN 肯定都是通的,在 Oracle 的 Network Visualizer 功能中查看三者的拓扑情况,也是相同的。其余可能没有区别。附图如下:

    现有问题

    1.A 机器可以 ping 通 Oracle 的内网 VPS ,可以 ping 通 VPN 的 OCI 端 IP ,但是无法 ping 通另外两个网段的机器。

    2.B 机器可以 ping 通 VPN 的 OCI 端 IP ,但是无法访问 Oracle 的内网 VPS ,另外两个网段也不通。mtr 10.0.0.79的结果如下:

     Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 192.168.10.5 0.0% 3 49.2 49.2 49.2 49.2 0.0 2. 140.91.206.60 0.0% 3 53.9 54.0 53.9 54.0 0.0 3. (waiting for reply) 

    3.C 机器仅可以 ping 通本机分配给 vti 网卡的 IP (必然嘛),其余皆是no route to host。但是这台机器昨天第一次测试的时候是可以访问 Oracle VPS 的,只是分配给它的网段是10.0.10.0/24,而 Oracle 的 VCN 网段是10.0.0.0/16,建立时会有提示就改到了192.168.20.0/24段。

    那么还有什么原因会造成上述的奇怪问题呢?由于担心篇幅太长没人看,所以把三台机器的信息只放了其中一个,如果需要补充的话我可以再补充一下。为了避免是自己粗心大意造成这种问题我已经检查了数遍,应该不会有此原因包含在内。

    按理来说,建立好 VPN 后,三台机器间,以及和 Oracle 内网 VPS 间都是可以互通的,但是现在如此奇怪。自己对计算机也只是闲余时间折腾而已,没有系统地学习过课程,还请各位大佬不吝赐教。

    其他疑问

    不知道放在 Linux 分区合适不,本来想放在 internet 区,但是想了一下可能更适合分享给懂 linux 工具的大佬们。

    国内的托管机器用这种 VPN 连接,应该不会被查水表吧。

    最后问一下,BGP Routing 是不是只有在网络提供商允许的情况下才可以使用?三台机器的 BGP Routing 都是没办法正常连接的,BGP 端口状态一直是SYN_SENT,随放弃。如果要用的话难道只能是有自有 ASN 才行?但是试了一下 Oracle 提供的连接 AWS 的 Site-Site VPN 的方法,确实可以建立 BGP Routing ,而且使用的是 65412 的保留 ASN 。

    8 条回复    2023-09-15 18:55:01 +08:00
    bigfei
        1
    bigfei  
       2023-08-22 10:18:52 +08:00   1
    但是无法访问 Oracle 的内网 VPS
    ----
    应该是 VPS 没禁用严格源地址检查啥的:
    https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingVNICs.htm
    bigfei
        2
    bigfei  
       2023-08-22 10:20:41 +08:00   1
    BGP Routing 要你的上游支持才行,或者是 tunneled traffic 。对于你这边来说,site2site vpn 建立好后用 OSPF 就可以了。
    YahWx
        3
    YahWx  
       2023-08-22 13:11:08 +08:00 via Android
    嗯,怎么说,不懂 site2site 的好处,但是我现在 20 台机子都是用的 wireguard 组网,直接用 systemd-network 配置 wireguard ,网状拓扑,任意两台机器之间直连。
    好处是什么呢,就是不依赖厂商的基础设施,只要 vps 有公网 ip 就可以组,配置的时候 Oracle 的机子之间连接走 Oracle 内网,Oracle 连其它 vps 走公网,配置很简单。
    自己写个脚本批量配置就好了,我用的 Python ,本地一个 yaml 添那些机子为一组,填好 ip ,自动登录 ssh 然后 tee 到 systemd network 目录下,然后重启一切都好了。

    当然你说 bgp 隧道,肯定没法比,但是 wireguard 好处就是它通用啊,兼容度高,什么垃圾厂商的 VPS 都能组在一堆。
    YahWx
        4
    YahWx  
       2023-08-22 13:14:41 +08:00 via Android
    之前阿里轻量云华南的我也组过,没问题,你只要不是跑科学都没事的,正常流量可以过强。毕竟 wireguard 也是精准嗅探,,那时候搞了个异地 MySQL 集群,流量请求还是有点多。
    bigfei
        5
    bigfei  
       2023-08-22 19:49:06 +08:00
    嗯,但是 wireguard 不套娃的话过不了墙的,一天 10M 流量都能精准识别。。
    相反 site2site 的 vpn ,最简单的 ipip tunnel 都可以直接过墙
    YahWx
        6
    YahWx  
       2023-08-23 05:14:30 +08:00 via Android
    @bigfei site2site ,没了解过,有那些厂商支持?有空研究研究
    moonc5914
        7
    moonc5914  
    OP
       2023-09-15 18:47:06 +08:00
    @bigfei 试了一下还是不太行。而且虽然 Oracle 提供的 VPN 是热备,但是在线率还是很堪忧。一段时间之后甚至完全不通。遂放弃。看来目前要过墙,要么实名过墙,要么就是用各种抗审查的工具了。
    moonc5914
        8
    moonc5914  
    OP
       2023-09-15 18:55:01 +08:00
    @YahWx 可以用各种三方的工具,[Oracle 官方的说明]( https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/configuringCPE.htm)中有一些配置样例。例如 swan 系的 strongstan 、libreswan 、openswan ,以及各种硬件防火墙:思科、Juniper 、NEC 、雅马哈之类的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1458 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 41ms UTC 16:44 PVG 00:44 LAX 08:44 JFK 11:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86