多云组网第一篇:初始搭建VPN-WAN结构

多云组网第一篇:初始搭建VPN-WAN结构

各个公有云的服务器开始打折啊,阿里云99元一年2C2G3M固定带宽,腾讯云99元一年2C2G4M带宽(但是有每月300GB流量限制),虽然我喜欢华为云,但耐不住华为云实在是不给优惠啊。不过我云服务器续费续到了2026年了。开通两个新节点吧,说不定后面干啥会用上。

这样的话,加上杭州和上海两个自己的内网节点,就有五个区域了,尝试下多云组网?说干就干吧。先规划一下网络分段和节点职能,考虑到后续有可能讲所有的节点的子网连接成一个大内网,所以各个网段必须不能冲突。

杭州家里,为了减少给普通设备带来的困扰,就用路由器普遍默认的192.168.0.0的网段,其他几个节点进行分段。

这里说一个插曲,把阿里云和腾讯云的打折服务器买完,发现腾讯云有猫腻,不仅仅是流量限制了每月300GB(虽然我用不完),而且功能缩减了不少,比如IP地址不允许变更。阿里云和华为云都是可以自己变更内网网段和IP地址的。所以腾讯云的IP地址,就是买来是啥我就用啥了,他还流量受限。

那那他当VPN SERVER吧,以后主入口登录就从他这里登录了。我自己折腾,300GB够了,又不对外服务。于是,就有了如下的网络划分和规划表。

区域内网IP职能VPN-IP备注
华为云-上海192.168.20.21外网主节点192.168.42.101
阿里云-杭州192.168.21.0外网辅节点192.168.42.102
腾讯云-广州10.1.12.4VPN SERVER入口192.168.42.1
杭州机房192.168.0.0主机房192.168.42.103NAS存储,博客服务器
上海机房192.168.10.0辅机房192.168.42.104PC SERVER计算资源池

然后我们是这样打算的,腾讯云广州节点作为VPN-SERVER,其他节点作为CLIENT,都拨入到腾讯云节点。这样以后,我自己的笔记本,通过VPN也拨入到腾讯云广州节点,就成为大内网的一部分了,从腾讯云广州节点,可以非常方便的访问其他各个节点。

实现了这个阶段之后呢,以后有空可以折腾下内网全互联,让杭州机房和上海机房内部的设备相关访问,都通过本机房的VPN节点转发。这样就不仅仅是拨入VPN的节点,而是所有的五个内网子网全部互联。那用着还是会方便更多的。

而且安全性好啊。

基于这个可以把其他不必要的公网入口全部关闭,自己想用的时候,通过VPN拨入腾讯云中枢节点,进入内网。除了此入口,没有其他任何的意外端口暴露。比现在可让我放心多了。

备注:所有服务器节点使用centos7.9版本

1、腾讯云服务器安装VPN SERVER

详细的安装步骤不展开,大家自行百度。需要说明的是,因为我们需要保证后续的网络结构,因此对于每个VPN-CLIENT,需要配置固定IP。

1)编辑 VPN 服务器上的 /etc/xl2tpd/xl2tpd.conf。将 ip range = 192.168.42.10-192.168.42.250 替换为比如 ip range = 192.168.42.10-192.168.42.99。这样可以缩小自动分配的 IP 地址池,从而使更多的 IP 可以作为静态 IP 分配给客户端。

2)编辑 VPN 服务器上的 /etc/ppp/chap-secrets。例如,文件内容:

“vpnuser” l2tpd “password” *

“node-hw” l2tpd “password” 192.168.42.101

“node-ali” l2tpd “password” 192.168.42.102

最后一列,就是我们为每个VPN用户指定的固定IP地址

2、华为云服务器安装VPN-CLIENT

yum install epel-release
yum --enablerepo=epel install strongswan xl2tpd net-tools

开始配置VPN-CLIENT,不展开,按照正常安装配置步骤搞即可。需要说一下启动过程。

创建控制文件

mkdir -p /var/run/xl2tpd
touch /var/run/xl2tpd/l2tp-control

重启服务

service strongswan restart
service xl2tpd restart

开启IPSec

strongswan up myvpn

拨号

echo "c myvpn" > /var/run/xl2tpd/l2tp-control

查看接口列表,有ppp0,成功

[root@ecs-4bf3 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.20.21  netmask 255.255.255.0  broadcast 192.168.20.255
        inet6 fe80::f816:3eff:fe89:f5f6  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:89:f5:f6  txqueuelen 1000  (Ethernet)
        RX packets 71342  bytes 16857354 (16.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 68052  bytes 16260760 (15.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 12  bytes 946 (946.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 946 (946.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1280
        inet 192.168.42.101  netmask 255.255.255.255  destination 192.168.42.1
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 3  bytes 54 (54.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3  bytes 54 (54.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3、同理配置阿里云节点,原先为alibaba操作系统,我们更换为了centos7.9,依次配置,直到拨号成功。

[root@iZbp1dlg2my90omu0sb8nuZ ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.21.21  netmask 255.255.255.0  broadcast 192.168.21.255
        inet6 fe80::216:3eff:fe0a:7ca8  prefixlen 64  scopeid 0x20<link>
        ether 00:16:3e:0a:7c:a8  txqueuelen 1000  (Ethernet)
        RX packets 59834  bytes 86519474 (82.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6900  bytes 902951 (881.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1280
        inet 192.168.42.102  netmask 255.255.255.255  destination 192.168.42.1
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 3  bytes 54 (54.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3  bytes 54 (54.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

然后我们在腾讯云的中枢节点上,就可以看到华为云和阿里云都拨入上来了。

[root@VM-12-4-centos ~]# ipsec trafficstatus
#67: "l2tp-psk"[29] 121.36.XXX.202, type=ESP, add_time=1715344366, inBytes=4642, outBytes=4637, maxBytes=2^63B, id='192.168.20.21'
#68: "l2tp-psk"[29] 121.36.XXX.202, type=ESP, add_time=0, inBytes=974, outBytes=974, maxBytes=2^63B, id='192.168.20.21'
#70: "l2tp-psk"[31] 118.31.XXX.179, type=ESP, add_time=1715347319, inBytes=732, outBytes=714, maxBytes=2^63B, id='192.168.21.21'

4、配置笔记本电脑本地VPN

本地笔记本VPN拨号,然后登陆到腾讯云中枢节点。可以正常与阿里云和华为云节点通讯。

xudong@xudongdeMacBook-Pro ~ % ssh root@192.168.42.1
root@192.168.42.1's password: 
Last failed login: Fri May 10 21:46:12 CST 2024 from 221.215.21.91 on ssh:notty
There were 7 failed login attempts since the last successful login.
Last login: Fri May 10 21:24:13 2024 from 116.6.232.33
[root@VM-12-4-centos ~]# ping 192.168.42.101
PING 192.168.42.101 (192.168.42.101) 56(84) bytes of data.
64 bytes from 192.168.42.101: icmp_seq=1 ttl=64 time=33.9 ms
64 bytes from 192.168.42.101: icmp_seq=2 ttl=64 time=33.9 ms
64 bytes from 192.168.42.101: icmp_seq=3 ttl=64 time=33.9 ms
^C
--- 192.168.42.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 33.913/33.933/33.949/0.213 ms
[root@VM-12-4-centos ~]# ping 192.168.42.102
PING 192.168.42.102 (192.168.42.102) 56(84) bytes of data.
64 bytes from 192.168.42.102: icmp_seq=1 ttl=64 time=32.4 ms
64 bytes from 192.168.42.102: icmp_seq=2 ttl=64 time=32.4 ms
64 bytes from 192.168.42.102: icmp_seq=3 ttl=64 time=32.4 ms
64 bytes from 192.168.42.102: icmp_seq=4 ttl=64 time=32.3 ms
^C
--- 192.168.42.102 ping statistics ---
5 packets transmitted, 4 received, 20% packet loss, time 4004ms
rtt min/avg/max/mdev = 32.373/32.415/32.447/0.182 ms
[root@VM-12-4-centos ~]# 

但是,为啥我需要先登录到腾讯云中枢节点呢?我自己本机,作为虚拟网的一个节点,和其他节点为啥不能直接互通?

这个问题,后面解决吧。看来还差一点东西。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注