Siyuan's Blog

  • 首页

  • 归档

  • 标签

  • 搜索

关于 SpeedyCloud CDN、DNS 服务及机房的一些观察

发表于 2016-05-03 | 更新于 2018-06-21 |

近来 SpeedyCloud 家服务用的比较多,于是看了下他们数据中心的供应商。

大部分是 Zenlayer 提供的,也不奇怪,毕竟都是蓝讯出来的 :-D

LocationIPIP OwnerTransit ProviderASN
Hong Kong, HK103.242.64.0/23SpeedyCloudHutchison Global CommunicationsAS63545 Beijing SpeedyCloud Technologies Co.,Ltd.
Hong Kong, HK103.242.67.0/24SpeedyCloudEflyAS133946 EFLY TECH LIMITED
Tokyo, JP23.236.98.0/24ZenlayerZenlayer / NTTAS2914 NTT America, Inc.
Singapore, SG103.242.66.0/24SpeedyCloudTelin SingaporeAS56308 TELEKOMUNIKASI INDONESIA INTERNATIONAL, PTE.LTD
Los Angeles, US69.28.60.0/24ZenlayerZenlayerAS21859 Zenlayer Inc
New York, US23.236.122.0/24ZenlayerZenlayerAS21859 Zenlayer Inc
Frankfurt, DE23.236.110.0/24ZenlayerZenlayerAS21859 Zenlayer Inc
Moscow, RU185.99.9.0/24SpeedyCloudDataline LtdAS49063 Dataline Ltd

不过比较一颗赛艇的是他们家的香港节点,是通过自己 ASN 宣告的 IP … 于是顺手看了下,

香港节点的供应商 ASN 是 AS55355 ISP (ISP-AS-AP),接了好几家 IPv4 only 的国内服务商:

1
2
3
4
5
AS132203 Tencent Building, Kejizhongyi Avenue (TENCENT-NET-AP-CN)
AS133478 Comsenz (COMSENZ-AS-AP) 腾讯云的前身康盛世纪
AS63545 Beijing SpeedyCloud Technologies Co.,Ltd.China (SpeedyCloud)
AS63541 Beijing Blue I.T Technologies Co.,Ltd.China (CHINACACHE)
AS58856 Beijing Blue I.T Technologies Co.,Ltd.China (CNNIC-CHINACACHE-AP)

然后 AS63545 还有 AS4808 (北京联通) 和 AS9394 (中国铁通) 两个 Peer,看起来是在北京搞了个 BGP 机房。
不过这个段的 IP 并不是后台中云主机数据中心里的 “北京6线机房” 所使用的 IP。

根据这几段 IP 的初次宣告时间 (2015-12-24) 来看,可能的猜测是这是迅达即将上线的新机房。

CDN

应该是和云端网络合作的,CNAME 链比较奇葩,举个栗子:

比如我的域名是 test.swan.im,获得的 CNAME 为:

1
2
3
4
random-string-here.speedycloud.cc. 599 IN CNAME test.swan.im.xundayun.com.
test.swan.im.xundayun.com. 119 IN CNAME static.xundayun.com.
static.xundayun.com. 119 IN A 60.174.242.46
static.xundayun.com. 119 IN A 60.191.139.124

中间的 test.swan.im.xundayun.com 大概是为了和云端的系统兼容吧(客户域名 + CDN 域名是云端的 CNAME 格式);

然后 speedycloud.cc 使用的是腾讯云解析或者是 DNSPod 的企业创业版 DNS;

而 xundayun.com 则使用的是云端的 DNS:

1
2
3
4
xundayun.com.		3600	IN	SOA	ns7.veryns.com. service.verycloud.cn. 1456888848 3600 180 1209600 600

xundayun.com. 600 IN NS ns7.veryns.com.
xundayun.com. 600 IN NS ns8.veryns.com.

云端的 DNS 架构为:

ns1.veryns.com, ns2.veryns.com 为一级 NS:

1
2
3
4
5
6
7
8
9
10
ns1.veryns.com. 172800	IN	A	112.82.241.150   (江苏省常州市 联通)
ns1.veryns.com. 172800 IN A 116.31.120.9 (广东省佛山市 电信)
ns1.veryns.com. 172800 IN A 36.250.226.104 (福建省福州市 联通)
ns1.veryns.com. 172800 IN A 59.49.43.59 (山西省太原市 电信)
ns1.veryns.com. 172800 IN A 61.160.239.137 (江苏省常州市 电信)

ns2.veryns.com. 172800 IN A 120.192.90.165 (山东省泰安市 移动)
ns2.veryns.com. 172800 IN A 124.128.20.103 (山东省济南市 联通)
ns2.veryns.com. 172800 IN A 183.203.21.77 (山西省太原市 移动)
ns2.veryns.com. 172800 IN A 61.160.245.196 (江苏省常州市 电信)

ns7.veryns.com, ns8.veryns.com 为二级 NS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
ns7.veryns.com. 300	IN	A	116.31.120.8     (广东省佛山市 电信)
ns7.veryns.com. 300 IN A 180.96.66.8 (江苏省南京市 电信)
ns7.veryns.com. 300 IN A 61.160.239.138 (江苏省常州市 电信)
ns7.veryns.com. 300 IN A 124.128.20.102 (山东省济南市 联通)
ns7.veryns.com. 300 IN A 36.250.226.103 (福建省福州市 联通)
ns7.veryns.com. 300 IN A 222.140.154.137 (河南省信阳市 联通)
ns7.veryns.com. 300 IN A 103.245.81.203 (上海市 联通)
ns7.veryns.com. 300 IN A 218.6.154.170 (四川省广元市 电信)
ns7.veryns.com. 300 IN A 59.45.79.34 (辽宁省本溪市 电信)
ns7.veryns.com. 300 IN A 183.203.21.76 (山西省太原市 移动)

ns8.veryns.com. 300 IN A 116.31.120.8 (广东省佛山市 电信)
ns8.veryns.com. 300 IN A 180.96.66.8 (江苏省南京市 电信)
ns8.veryns.com. 300 IN A 61.183.52.115 (湖北省宜昌市 电信)
ns8.veryns.com. 300 IN A 113.140.42.10 (陕西省西安市 电信)
ns8.veryns.com. 300 IN A 61.160.239.138 (江苏省常州市 电信)
ns8.veryns.com. 300 IN A 124.128.20.102 (山东省济南市 联通)
ns8.veryns.com. 300 IN A 112.21.182.21 (江苏省常州市 移动)
ns8.veryns.com. 300 IN A 103.242.65.105 (香港特别行政区 SpeedyCloud)
ns8.veryns.com. 300 IN A 36.250.226.103 (福建省福州市 联通)
ns8.veryns.com. 300 IN A 222.140.154.137 (河南省信阳市 联通)
ns8.veryns.com. 300 IN A 103.245.81.203 (上海市 联通)
ns8.veryns.com. 300 IN A 221.204.173.206 (山西省太原市 联通)
ns8.veryns.com. 300 IN A 123.129.249.141 (山东省济南市 联通)
ns8.veryns.com. 300 IN A 218.6.154.170 (四川省广元市 电信)
ns8.veryns.com. 300 IN A 120.192.90.169 (山东省泰安市 移动)
ns8.veryns.com. 300 IN A 59.45.79.34 (辽宁省本溪市 电信)
ns8.veryns.com. 300 IN A 183.203.21.76 (山西省太原市 移动)

VeryNS 的智能 DNS 似乎是这么做的:先获取所有的 DNS 记录,然后再过滤。

不过这样导致了输出的 A 记录与 GLUE 不一致。但是并没有太大的问题。
另外过滤器在某些情况下并没有生效,从教育网或移动节点探测的话会返回所有记录。

使用的 DNS 服务器是 Knot DNS 2.1.0 / 2.0.0 / veryns.com,
节点名称的话大多数都是 localhost.localdomain,唯一的例外是 ctc-gw-1-1-s18k1,
看起来配置管理做的还是挺混乱的 :-D

DNS

节点分布:

互联港湾 BGP * 2 (北京 + 广州)
电信 * 3 (杭州 + 乐山 + 兰州)
联通 * 1 (廊坊)

根据扫描,操作系统应该是 Ubuntu 14.04 LTS
不过为何 SSH 公网能访问 … 😂 可能是在测试还没有正式使用吧

客户获得的域名服务器是 *.ns1.nsgslb.com 和 *.ns2.nsgslb.com。
猜测是为了被攻击时能够区分用户并隔离吧 …

特征上看和云端使用的软件不太一样,应该使用的不是同一个 DNS 软件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
nsgslb.com. 3600	IN	SOA	ns1.nsgslb.com. dns-noc.xundayuncheng.com. 34519 120 120 604800 120

ns1.nsgslb.com. 3600 IN A 118.119.254.210 (四川省乐山市 电信)
ns2.nsgslb.com. 3600 IN A 114.67.62.126 (广东省广州市 互联港湾)
ns3.nsgslb.com. 3600 IN A 121.52.241.5 (浙江省杭州市 电信)
ns4.nsgslb.com. 3600 IN A 120.52.176.5 (河北省廊坊市 联通沃云)
ns5.nsgslb.com. 3600 IN A 103.235.224.5 (北京市 互联港湾)

*.ns1.nsgslb.com. 3600 IN A 120.52.176.5 (河北省廊坊市 联通沃云)
*.ns1.nsgslb.com. 3600 IN A 118.119.254.210 (四川省乐山市 电信)
*.ns1.nsgslb.com. 3600 IN A 114.67.63.163 (广东省广州市 互联港湾)
*.ns1.nsgslb.com. 3600 IN A 121.52.241.5 (浙江省杭州市 电信)
*.ns1.nsgslb.com. 3600 IN A 202.100.92.140 (甘肃省兰州市 电信)

*.ns2.nsgslb.com. 3600 IN A 103.235.224.5 (北京市 互联港湾)
*.ns2.nsgslb.com. 3600 IN A 183.136.237.116 (浙江省杭州市 电信)
*.ns2.nsgslb.com. 3600 IN A 114.67.62.153 (广东省广州市 互联港湾)
*.ns2.nsgslb.com. 3600 IN A 120.52.176.6 (河北省廊坊市 联通沃云)
*.ns2.nsgslb.com. 3600 IN A 118.119.254.218 (四川省乐山市 电信)

在同一台服务器上运行 ExaBGP 和 BIRD

发表于 2016-03-01 | 更新于 2018-06-21 |

不得不说人一穷鬼点子就特别的多。

准备工作

分别给 BIRD 和 ExaBGP 分配两个 IP:

BIRD: 169.254.32.32/32
ExaBGP: 169.254.64.64/32

1
2
3
/etc/network/interfaces.d/ifcfg-eth0:bird
iface eth0:bird inet static
address 169.254.32.32/32
1
2
3
/etc/network/interfaces.d/ifcfg-eth0:exabgp
iface eth0:exabgp inet static
address 169.254.64.64/32

以下使用 134671 为己方 ASN,12.34.56.78 为己方 IP 地址。

ExaBGP

安装

1
2
sudo apt-get -y install exabgp
sudo sed -i /etc/default/exabgp -e 's/EXABGPRUN="no"/EXABGPRUN="yes"/'

配置监控

1
sudo wget -O /etc/exabgp/watchdog.sh https://gist.github.com/ym/67dc9b350f2fec254d7ec4ea03fbd273/raw/25e6b6081277a68c79bd11e0b874455c790a740e/watchdog.sh

其中 URLS 为需要监控的 URL,ROUTES 为需要宣告的 IP 段,自己修改即可。

配置 ExaBGP

编辑 /etc/exabgp/exabgp.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
neighbor 169.254.32.32 {
router-id 169.254.64.64;
local-address 169.254.64.64;

local-as 134829;
peer-as 134829;

family {
inet4 unicast;
}

process service-watchdog {
run /etc/exabgp/watchdog.sh;
}
}

配置完成后 sudo service exabgp restart 重启服务

BIRD

然后把 BIRD 的监听端口修改一下:

1
2
listen bgp address 12.34.56.78;    # 与上游 Peer 通讯的 IP
listen bgp address 169.254.32.32; # 与 ExaBGP 通讯的 IP

并增加 ExaBGP 的 Peer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
protocol bgp ibgp_exabgp_local {
import all;
export filter {
if bgp_path.last ~ [ 134671 ] then {
bgp_next_hop = 12.34.56.78;
accept;
}
reject;
};

local as 134671;
neighbor 169.254.64.64 as 134671;
source address 169.254.32.32;
}

增加完成后 sudo birdc configure 即可。

完成

1
2
3
4
5
6
7
8
# sudo birdc show route protocol ibgp_exabgp_local all
BIRD 1.4.0 ready.
172.81.109.0/24 unreachable [ibgp_exabgp_local 2016-04-26 from 169.254.64.64] ! (100/-) [i]
Type: BGP unicast univ
BGP.origin: IGP
BGP.as_path:
BGP.next_hop: 169.254.64.64
BGP.local_pref: 100

Farewell, 2015

发表于 2016-01-24 | 更新于 2018-06-21 |

懒癌晚期的我在 SSL 证书过期了两个月之后终于续期了,于是乎顺手写点什么好了。

…

…

…

好像也没有什么可以写的 … :-(

12…12

Siyuan Miao

35 日志
42 标签
GitHub Twitter
© 2018 Siyuan Miao
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Mist v6.3.0