å
šãŠã«ãããŠè¯ãæ¥ïŒ habr ã«é¢ããç§ã®ããã¥ãŒèšäºããRIPE Atlas ã€ã³ã¿ãŒãããå質管çã·ã¹ãã ãšããéåžžã«èå³æ·±ããããã¯ã«æ§ããããšæããŸãã ç§ã®èå³ã®ããåéã®äžéšã¯ãã€ã³ã¿ãŒããããŸãã¯ãµã€ããŒã¹ããŒã¹ (ç¹ã«ç§åŠçã§æ¥éã«äººæ°ãé«ãŸã£ãŠããçšèª) ã®ç 究ã«é¢ä¿ããŠããŸãã habr ãå«ããã€ã³ã¿ãŒãããäžã«ã¯ RIPE Atlas ã«é¢ããè³æããããããããŸãããç§ã«ãšã£ãŠãããã¯ååã«å
æ¬çã§ã¯ãªãããã§ããã èšäºã®å€§éšåã¯å
¬åŒãŠã§ããµã€ãããã®æ
å ±ã䜿çšããŸãã
åºæã®ä»£ããã«
ãšãŒããããäžå€®ã¢ãžã¢ãäžæ±ãæ åœããå°åã€ã³ã¿ãŒããã ã¬ãžã¹ãã© (RIR) ã¯ãRIPE NCC (Réseaux IP Européens Network Coordination Center) ã§ãã RIPE NCC ã¯ãªã©ã³ãã«æ ç¹ã眮ãéå¶å©å£äœã§ãã ã€ã³ã¿ãŒãããããµããŒãããŸãã IP ã¢ãã¬ã¹ãšèªåŸã·ã¹ãã çªå·ãããŒã«ã«ã®ã€ã³ã¿ãŒããã ãããã€ããŒã倧èŠæš¡çµç¹ã«æäŸããŸãã
ã€ã³ã¿ãŒãããã®ç¶æ ã調æ»ããããšãç®çãšãã RIPE NCC ã®äž»åãããžã§ã¯ãã® 2010 ã€ã¯ã2014 幎ã«éçšãåæ¢ãããã¹ã ãã©ãã£ãã¯æž¬å®ãµãŒãã¹ã®é²åçã§ãã RIPE Atlas (XNUMX 幎åŸåã«éå§) ã§ãã
RIPE Atlas ã¯ãã€ã³ã¿ãŒãããã®ç¶æ ãã¢ã¯ãã£ãã«æž¬å®ããã»ã³ãµãŒã®ã°ããŒãã« ãããã¯ãŒã¯ã§ãã çŸåšãRIPE Atlas ãããã¯ãŒã¯ã«ã¯æ°åã®ã»ã³ãµãŒãããããã®æ°ã¯å¢ãç¶ããŠããŸãã RIPE NCC ã¯åéããããŒã¿ãéçŽãããŠãŒã¶ãŒã䟿å©ãªåœ¢åŒã§ç¡æã§å©çšã§ããããã«ããŸãã
ãããã¯ãŒã¯ã®éçºã¯ããŠãŒã¶ãŒãã€ã³ãã©ã¹ãã©ã¯ãã£ã«ã»ã³ãµãŒãèªçºçã«èšçœ®ãããšããååã«åºã¥ããŠè¡ãããããã«å¯ŸããŠãã¯ã¬ãžããããçºè¡ãããä»ã®ã»ã³ãµãŒã䜿çšããŠç®çã®æž¬å®ãå®è¡ããããã«äœ¿çšã§ããŸãã
éåžžãRIPE Atlas ã䜿çšãããŸãã
- ã€ã³ã¿ãŒãããäžã®ããŸããŸãªãã€ã³ããããããã¯ãŒã¯ã®å¯çšæ§ãç£èŠããããã
- é«éã§æè»ãªæ¥ç¶ãã¹ãã«ãããããã¯ãŒã¯ã調æ»ãããã©ãã«ã·ã¥ãŒãã£ã³ã°ãè¡ããŸãã
- ç¬èªã®ãããã¯ãŒã¯ã®ç£èŠã·ã¹ãã å ã
- DNS ã€ã³ãã©ã¹ãã©ã¯ãã£ã®å¯çšæ§ãç£èŠããããã
- IPv6æ¥ç¶ãã§ãã¯ã
çããã¢ãã©ã¹
ãã§ã«è¿°ã¹ãããã«ãRIPE Atlas ã¯ã€ã³ã¿ãŒãããäžã«é 眮ãããåäžã®ç®¡çå¶åŸ¡äžã«ããã»ã³ãµãŒ ã·ã¹ãã ã§ãã åŸæ¥ã®ã»ã³ãµãŒ (ãããŒã) ã«å ããŠãããé«åºŠãªã»ã³ãµãŒ (ã¢ã³ã«ãŒ) ããããŸãã
2020 幎åã°ã®æç¹ã§ãRIPE Atlas ã·ã¹ãã ã«ã¯ 11 ãè¶ ããã¢ã¯ãã£ã ã»ã³ãµãŒãš 650 ãè¶ ããã¢ã¯ãã£ã ã¢ã³ã«ãŒããããããããåããããš 25 ãè¶ ãã枬å®å€ãçæããã10 ç§ããã XNUMX ãè¶ ããçµæãåä¿¡ããŸãã
以äžã®ã°ã©ãã¯ãã»ã³ãµãŒãšã¢ã³ã«ãŒã®æ°ã®å¢å ã瀺ããŠããŸãã
次ã®å³ã¯ãããããã»ã³ãµãŒãšã¢ã³ã«ãŒã®äœçœ®ã瀺ãäžçå°å³ã瀺ããŠããŸãã
RIPE NCC ã®å°åçãªå°äœã«ãããããããRIPE Atlas ãããã¯ãŒã¯ã¯ã»ãŒå
šäžçãã«ããŒããŠãããèšçœ®ã»ã³ãµãŒæ°ã§ã¯ãã·ã¢ (5 å°) ããã€ã (568 å°)ãã¢ã¡ãªã« (1562 å°)ããã©ã³ã¹ãšäžŠãã§ããã 1440 ã«å
¥ã£ãŠããŸãã (925) ãšè±åœ (610)ã
å¶åŸ¡ãµãŒããŒ
ã»ã³ãµãŒã®åäœã調æ»ãããšãããã»ã³ãµãŒããããã¯ãŒã¯äžã®ããã€ãã®ãªããžã§ã¯ããšã®éä¿¡ãå®æçã« (4 åããšã«) ãã§ãã¯ããŠããããšãå€æããŸãããããã«ã¯ãã«ãŒã DNS ãµãŒããŒããctr-sin02.atlas.ripe.netãã®ãããªãã¡ã€ã³åãæã€ããŒããå«ãŸããŸãã ãRIPE Atlas ãããã¯ãŒã¯ã®å¶åŸ¡ãµãŒããŒã§ãããšæããŸãã
å ¬åŒ Web ãµã€ãã«ã¯å¶åŸ¡ãµãŒããŒã«é¢ããæ å ±ã¯èŠã€ãããŸããã§ããããã»ã³ãµãŒã®ç®¡çãããŒã¿ã®éçŽãšåŠçããã®ã¿ã¹ã¯ã«å«ãŸãããšæšæž¬ãããŸãã ç§ã®æšæž¬ãæ£ãããã°ãå°ãªããšã 6 å°ã®å¶åŸ¡ãµãŒããŒãããããã®ãã¡ 2 å°ã¯ç±³åœã2 å°ã¯ãªã©ã³ãã1 å°ã¯ãã€ãã1 å°ã¯ã·ã³ã¬ããŒã«ã«ããããã¹ãŠã®ãµãŒããŒã§ããŒã 443 ãéããŠããŸãã
RIPE Atlas ãããã¯ãŒã¯ã®å¶åŸ¡ãµãŒããŒã«ã€ããŠè©³ããç¥ã£ãŠãã人ããããããã®åé¡ãæ確ã«ããŠãã ããã
ã»ã³ãµ
RIPE Atlas ã»ã³ãµãŒã¯ãUSB ããé»åãäŸçµŠããããããã¯ãŒã¯ ã±ãŒãã«ã䜿çšããŠã«ãŒã¿ãŒã®ã€ãŒãµããã ããŒãã«æ¥ç¶ããå°åããã€ã¹ (TP-Link 3020) ã§ãã ã¢ãã«ã«å¿ããŠãã»ã³ãµãŒã«ã¯ Atheros AR9331 ãããã»ããã400 MHzã4 MB ãã©ãã·ã¥ã32 MB RAM ãŸã㯠MediaNek MT7628NN ãããã»ããã575 MHzã8 MB ãã©ãã·ã¥ã64 MB RAM ãæèŒãããŠããŸãã
ã¢ã³ã«ãŒ
ã¢ãŒããã¥ã¢ã¯ãã¯ããã«åªããæ§èœãšæž¬å®èœåãåããæ¹è¯ãããã»ã³ãµãŒã§ãã ããã¯ã19 ã³ã¢ 2 GHz ããã»ããµã2 GB RAMã2 ã®ã¬ããã ã€ãŒãµããã ããŒããããã³ 2 GB SSD ãã©ã€ããåãããAPU4C1 ãŸã㯠APU2E3 ããŒããŠã§ã¢ ãã©ãããã©ãŒã äžã®æšæº 250 ã€ã³ã ããŒãžã§ã³ã®ããã€ã¹ã§ãã
ã»ã³ãµãŒã®èšçœ®ãšç®¡ç
ãã§ã«è¿°ã¹ãããã«ãã»ã³ãµãŒã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã«èšçœ®ããç®çã§ç¡æã§é åžãããŸãã ã»ã³ãµãŒããªã¯ãšã¹ãããå Žåã¯ãã»ã³ãµãŒãèšçœ®ãããåœãéœåžãèªåŸã·ã¹ãã ã®çªå·ãæå®ããŠãã ããã ç§ã®èŠè«ã«å¿ããŠãRIPE NCCã¯æ¬¡ã®ãããªã¡ãã»ãŒãžãéã£ãŠãããŸããã
æ®å¿µãªãããçŸæç¹ã§ã¯ããªãã®ã¢ããªã±ãŒã·ã§ã³ã¯ããŒããŠã§ã¢ ã»ã³ãµãŒãåãåãããã®åºæºãæºãããŠããŸããã ç§ãã¡ã®ç®æšã¯ãRIPE Atlas ã»ã³ãµãŒãã§ããã ãåºãé åžããããšã§ãããæå®ãã ASNãç³è«ãããããã¯ãŒã¯ããŸãã¯ç³è«ãç³è«ããåœã®ããããã«ããã§ã«ååãªæ°ã®ããã€ã¹ãæ¥ç¶ãããŠããããã§ãã
åé¡ãªãã ãã®å ŽåããœãããŠã§ã¢ ã»ã³ãµãŒãä»®æ³ãã·ã³ãããŒã ãµãŒããŒãã«ãŒã¿ãŒãªã©ã«ã€ã³ã¹ããŒã«ã§ããŸããå ŽæãèªåŸã·ã¹ãã ã«å¶éã¯ãããŸããã CentOSãDebianãRaspbianãTurris OS ããµããŒããããŠããŸãã å°å
¥ããã«ã¯ãé©åãªãœãããŠã§ã¢ãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããå¿
èŠããããŸããããšãã°ã
ãœãããŠã§ã¢ ã»ã³ãµãŒã®ã€ã³ã¹ããŒã«ã¯éåžžã«ç°¡åã§ãã ããšãã°ãCentOS 8 ã«ã€ã³ã¹ããŒã«ããã«ã¯ã次ã®ã³ãã³ããå®è¡ããå¿ èŠããããŸãã
curl -O 'https://ftp.ripe.net/ripe/atlas/software-probe/centos8/noarch/ripe-atlas-repo-1-2.el8.noarch.rpm'
yum install ripe-atlas-repo-1-2.el8.noarch.rpm
ã»ã³ãµãŒãç»é²ããŸãããã®å Žåã次ã®å Žæã«ãã SSH ããŒãæå®ããå¿
èŠããããŸãã /var/atlas-probe/etc/probe_key.pub
ãèªæ²»ã·ã¹ãã çªå·ãšããªãã®éœåžã瀺ããŸãã ãã®æçŽã¯ãã»ã³ãµãŒã®äœçœ®ãæ£ç¢ºã«ç€ºãå¿
èŠæ§ãæãåºãããŠãããŸããã
ã»ã³ãµãŒç®¡çã¯ã枬å®ãªãœãŒã¹ãä»ã®ãŠãŒã¶ãŒãšå ±æããæ©èœãããŠã³ã¿ã€ã éç¥ãæ§æããæ©èœãããã³æšæºã®ãããã¯ãŒã¯èšå® (ã¢ãã¬ã¹ãããã©ã«ã ã²ãŒããŠã§ã€ãªã©) ã«éå®ãããŸãã
枬å®å€
ãããã枬å®ã«å ¥ããŸããã 枬å®ã¿ã¹ã¯ã®èšå®ã¯å人ã¢ã«ãŠã³ãããè¡ããŸãã ããã§ã®çµæã確èªã§ããŸãã
枬å®ã¿ã¹ã¯ã®äœæã¯ã枬å®ã¿ã€ãã®éžæãã»ã³ãµãŒã®éžæã枬å®æéã®éžæã® XNUMX ã€ã®ã¹ãããã§æ§æãããŸãã
枬å®ã«ã¯ãpingãtracerouteãDNSãSSLãHTTPãNTP ã®ã¿ã€ãããããŸãã ç¹å®ã®ãããã³ã«ãŸãã¯ãŠãŒãã£ãªãã£ã«åºæã®èšå®ãé€ããç¹å®ã®æž¬å®ã¿ã€ãã®è©³çŽ°èšå®ã«ã¯ãã¿ãŒã²ãã ã¢ãã¬ã¹ããããã¯ãŒã¯å±€ãããã³ã«ã枬å®å ã®ãã±ããæ°ãšæž¬å®éã®æéããã±ãã ãµã€ãºãšãã±ããéã®æéãã©ã³ãã ã·ããã®çšåºŠãå«ãŸããŸãããã±ããã®éä¿¡éå§æå»ã
ã»ã³ãµãŒã¯ããã®èå¥åããŸãã¯æåšå°ã®åœãå°åãèªåŸã·ã¹ãã ãã¿ã°ãªã©ã«ãã£ãŠéžæã§ããŸãã
枬å®æéã¯éå§æå»ãšçµäºæå»ã«ãã£ãŠèšå®ãããŸãã
枬å®çµæã¯å人ã¢ã«ãŠã³ãã®Webãµã€ãã§ç¢ºèªã§ããjson圢åŒã§ååŸããããšãã§ããŸãã äžè¬ã«ã枬å®çµæã¯ãç¹å®ã®ããŒããŸãã¯ãµãŒãã¹ã®å¯çšæ§ãç¹åŸŽä»ããå®éçãªææšã§ãã
ãŠãŒã¶ãŒã«ãšã£ãŠã枬å®ã®å¯èœæ§ã¯åºç¯å²ã§ã¯ãããŸãããéåžžã«éãããç¯å²ã§æäŸãããŸãã ãã ããã·ã¹ãã ã®æ©èœã«ã¯ã»ãŒããããæ§æã®ãã±ããã®çæãå«ãŸããããšã¯æããã§ãããããã«ãããã€ã³ã¿ãŒãããã®ç¶æ ã枬å®ããã¯ããã«å¹ åºãæ©äŒãéãããŸãã
以äžã¯ãããã©ã«ãèšå®ã䜿çšããåäžæž¬å®ã®çã®çµæã®äŸã§ãã pingãtracerouteãSSL ãªã©ã®æž¬å®ã§ã¯ãhabr.com ã® IP ã¢ãã¬ã¹ãã¿ãŒã²ãããšããŠéžæãããDNS 㯠Google DNS ãµãŒããŒã® IP ã¢ãã¬ã¹ãNTP 㯠NTP ãµãŒã㌠ntp1.stratum2.ru ã® IP ã¢ãã¬ã¹ã§ããã ãã¹ãŠã®æž¬å®ã«ã¯ããŠã©ãžãªã¹ãã¯ã«ãã XNUMX ã€ã®ã»ã³ãµãŒã䜿çšãããŸããã
ãã³
[{"fw":4790,"lts":18,"dst_name":"178.248.237.68","af":4,"dst_addr":"178.248.237.68","src_addr":"192.168.0.10","proto":"ICMP","ttl":55,"size":48,"result":[{"rtt":122.062873},{"rtt":121.775641},{"rtt":121.807897}],"dup":0,"rcvd":3,"sent":3,"min":121.775641,"max":122.062873,"avg":121.882137,"msm_id":26273241,"prb_id":4428,"timestamp":1594622562,"msm_name":"Ping","from":"5.100.99.178","type":"ping","group_id":26273241,"step":null,"stored_timestamp":1594622562}]
Traceroute
[{"fw":4790,"lts":19,"endtime":1594622643,"dst_name":"178.248.237.68","dst_addr":"178.248.237.68","src_addr":"192.168.0.10","proto":"ICMP","af":4,"size":48,"paris_id":1,"result":[{"hop":1,"result":[{"from":"192.168.0.1","ttl":64,"size":76,"rtt":7.49},{"from":"192.168.0.1","ttl":64,"size":76,"rtt":1.216},{"from":"192.168.0.1","ttl":64,"size":76,"rtt":1.169}]},{"hop":2,"result":[{"from":"5.100.98.1","ttl":254,"size":28,"rtt":1.719},{"from":"5.100.98.1","ttl":254,"size":28,"rtt":1.507},{"from":"5.100.98.1","ttl":254,"size":28,"rtt":1.48}]},---DATA OMITED---,{"hop":10,"result":[{"from":"178.248.237.68","ttl":55,"size":48,"rtt":121.891},{"from":"178.248.237.68","ttl":55,"size":48,"rtt":121.873},{"from":"178.248.237.68","ttl":55,"size":48,"rtt":121.923}]}],"msm_id":26273246,"prb_id":4428,"timestamp":1594622637,"msm_name":"Traceroute","from":"5.100.99.178","type":"traceroute","group_id":26273246,"stored_timestamp":1594622649}]
DNS
[{"fw":4790,"lts":146,"dst_addr":"8.8.8.8","af":4,"src_addr":"192.168.0.10","proto":"UDP","result":{"rt":174.552,"size":42,"abuf":"5BGAgAABAAEAAAAABGhhYnIDY29tAAABAAHADAABAAEAAAcmAASy+O1E","ID":58385,"ANCOUNT":1,"QDCOUNT":1,"NSCOUNT":0,"ARCOUNT":0},"msm_id":26289620,"prb_id":4428,"timestamp":1594747880,"msm_name":"Tdig","from":"5.100.99.178","type":"dns","group_id":26289620,"stored_timestamp":1594747883}]
SSL
[{"fw":4790,"lts":63,"dst_name":"178.248.237.68","dst_port":"443","method":"TLS","ver":"1.2","dst_addr":"178.248.237.68","af":4,"src_addr":"192.168.0.10","ttc":106.920213,"rt":219.948332,"cert":["-----BEGIN CERTIFICATE-----nMIIGJzCCBQ+gAwIBAg ---DATA OMITED--- yd/teRCBaho1+Vn-----END CERTIFICATE-----"],"msm_id":26289611,"prb_id":4428,"timestamp":1594747349,"msm_name":"SSLCert","from":"5.100.99.178","type":"sslcert","group_id":26289611,"stored_timestamp":1594747352}]
NTP
[{"fw":4790,"lts":72,"dst_name":"88.147.254.230","dst_addr":"88.147.254.230","src_addr":"192.168.0.10","proto":"UDP","af":4,"li":"no","version":4,"mode":"server","stratum":2,"poll":8,"precision":0.0000076294,"root-delay":0.000518799,"root-dispersion":0.0203094,"ref-id":"5893fee5","ref-ts":3803732581.5476198196,"result":[{"origin-ts":3803733082.3982748985,"receive-ts":3803733082.6698465347,"transmit-ts":3803733082.6698560715,"final-ts":3803733082.5099263191,"rtt":0.111643,"offset":-0.21575},{"origin-ts":3803733082.5133042336,"receive-ts":3803733082.7847337723,"transmit-ts":3803733082.7847442627,"final-ts":3803733082.6246700287,"rtt":0.111355,"offset":-0.215752},{"origin-ts":3803733082.6279149055,"receive-ts":3803733082.899283886,"transmit-ts":3803733082.8992962837,"final-ts":3803733082.7392635345,"rtt":0.111337,"offset":-0.2157}],"msm_id":26289266,"prb_id":4428,"timestamp":1594744282,"msm_name":"Ntp","from":"5.100.99.178","type":"ntp","group_id":26289266,"stored_timestamp":1594744289}]
ãŸãšã
RIPE Atlas ãããã¯ãŒã¯ã¯ãã€ã³ã¿ãŒãããäžã®ãªããžã§ã¯ãããµãŒãã¹ã®å¯çšæ§ãã»ãŒãªã¢ã«ã¿ã€ã ã§ç£èŠã§ãã䟿å©ãªããŒã«ã§ãã
RIPE Atlas ãããã¯ãŒã¯ã«ãã£ãŠçæãããããŒã¿ã¯ãéä¿¡äºæ¥è ãç 究è ãæè¡ã³ãã¥ããã£ãããã³ã€ã³ã¿ãŒãããã®å¥å šæ§ã«é¢å¿ããããå°çèŠæš¡ã§ã€ã³ã¿ãŒãããããµããŒãããåºç€ãšãªããããã¯ãŒã¯æ§é ãšããŒã¿ ãããŒã«ã€ããŠè©³ããç¥ããã人ã«ãšã£ãŠåœ¹ç«ã¡ãŸãã ã
PS RIPE Atlas ã¯ãã®çš®ã®ãã®ã ãã§ã¯ãªããé¡äŒŒãããã®ããããŸãã
åºæïŒ habr.com