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 。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.