ShinobiLayer: SoftLayer POPのバックボーンの構成を確認する

2016/01/24更新: NTTがx2に増強されたので変更。
2016/04/14更新: China TelecomやChina Unicomは廃止されたようです。API実行時にはまだ出力結果として残っていますが、Customer PortalでBandwidthを見ると、単位がByteになっています。。。

#はじめに
SoftLayerの東京DC周りのBackbone構成をもう少し明確にしたかったので、調査してみました。
いちおう[SoftLayerのNWサイト](http://www.softlayer.com/network)には、以下のような記載があるのですが、もうちょっと詳細な構成を確認するのが目的です。
![backbone.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/60454def-7b24-2181-231e-17d09dfe8e42.jpeg)
![backbone2.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/fdde0de1-81bf-c869-ba21-543564d1157a.jpeg)

# traceroute例

* dar01.tok02 -> bbr01.eq01.tok01 -> シンガポール

```text:Singaporeへtraceroute
# traceroute 119.81.xx.xx
traceroute to 119.81.xx.xx (119.81.xx.xx), 30 hops max, 60 byte packets
 1  161.202.xx.xx-static.reverse.softlayer.com (161.202.xx.xx)  1.150 ms  1.081 ms  1.028 ms
 2  ae12.dar01.tok02.networklayer.com (161.202.xx.xx)  0.994 ms ae11.dar02.tok02.networklayer.com (161.202.xx.xx)  0.928 ms ae11.dar01.tok02.networklayer.com (161.202.xx.xx)  0.882 ms
 3  ae9.bbr01.eq01.tok01.networklayer.com (50.97.xx.xx)  1.619 ms ae8.bbr01.eq01.tok01.networklayer.com (50.97.xx.xx)  1.561 ms  2.166 ms
 4  ae1.bbr01.eq01.sng02.networklayer.com (50.97.xx.xx)  81.316 ms  81.281 ms  81.233 ms
 5  ae5.dar01.sr03.sng01.networklayer.com (50.97.xx.xx)  81.337 ms  81.293 ms  81.233 ms
（以下略）
```

* dar01.tok02 -> bbr01.eq01.tok01 -> San Jose

```text:SanJoseへtraceroute
# traceroute 158.85.xx.xx
traceroute to 158.85.xx.xx (158.85.xx.xx), 30 hops max, 60 byte packets
 1  161.202.xx.xx-static.reverse.softlayer.com (161.202.xx.xx)  1.376 ms  1.301 ms 161.202.xx.xx-static.reverse.softlayer.com (161.202.xx.xx)  1.243 ms
 2  ae11.dar01.tok02.networklayer.com (161.202.xx.xx)  0.408 ms ae11.dar02.tok02.networklayer.com (161.202.xx.xx)  0.427 ms  0.388 ms
 3  ae9.bbr01.eq01.tok01.networklayer.com (50.97.xx.xx)  1.053 ms ae8.bbr01.eq01.tok01.networklayer.com (50.97.xx.xx)  1.505 ms ae9.bbr01.eq01.tok01.networklayer.com (50.97.xx.xx)  0.957 ms
 4  ae2.bbr02.eq01.sjc02.networklayer.com (50.97.xx.xx)  100.066 ms  100.024 ms  105.881 ms
 5  ae6.dar01.sjc01.networklayer.com (50.97.xx.xx)  95.490 ms  95.437 ms ae5.dar02.sjc01.networklayer.com (173.192.xx.xx)  95.376 ms
 （以下略）
```

* dar02.tok02 -> bbr01.eq01.tok01 -> Sydney

```text:Sydney
# traceroute 168.1.xx.xx
traceroute to 168.1.xx.xx (168.1.xx.xx), 30 hops max, 60 byte packets
 1  161.202.64.34-static.reverse.softlayer.com (161.202.xx.xx)  13.152 ms 161.202.64.35-static.reverse.softlayer.com (161.202.xx.xx)  13.035 ms  12.843 ms
 2  ae12.dar02.tok02.networklayer.com (161.202.xx.xx)  5.022 ms ae11.dar02.tok02.networklayer.com (161.202.xx.xx)  4.925 ms ae12.dar01.tok02.networklayer.com (161.202.xx.xx)  4.862 ms
 3  ae9.bbr02.eq01.tok01.networklayer.com (50.97.xx.xx)  12.516 ms ae8.bbr02.eq01.tok01.networklayer.com (50.97.xx.xx)  12.448 ms  12.374 ms
 4  ae0.bbr01.eq01.syd02.networklayer.com (50.97.xx.xx)  117.330 ms  117.253 ms  117.215 ms
 5  ae5.dar01.syd01.networklayer.com (50.97.xx.xx)  117.306 ms  117.248 ms  117.172 ms
（以下略）
```

* dar02.tok02 -> bbr02.eq01.tok01 -> Hong Kong

```text:HongKongへtraceroute
# traceroute 119.81.xx.xx
traceroute to 119.81.xx.xx (119.81.xx.xx), 30 hops max, 60 byte packets
 1  161.202.xx.xx-static.reverse.softlayer.com (161.202.xx.xx)  1.112 ms 161.202.xx.xx-static.reverse.softlayer.com (161.202.xx.xx)  0.983 ms 161.202.xx.xx-static.reverse.softlayer.com (161.202.xx.xx)  0.968 ms
 2  ae12.dar02.tok02.networklayer.com (161.202.xx.xx)  0.869 ms ae12.dar01.tok02.networklayer.com (161.202.xx.xx)  0.850 ms ae12.dar02.tok02.networklayer.com (161.202.xx.xx)  0.748 ms
 3  ae8.bbr02.eq01.tok01.networklayer.com (50.97.xx.xx)  1.260 ms ae9.bbr02.eq01.tok01.networklayer.com (50.97.xx.xx)  1.230 ms ae8.bbr02.eq01.tok01.networklayer.com (50.97.xx.xx)  1.182 ms
 4  ae0.bbr01.pn01.hkg01.networklayer.com (50.97.xx.xx)  47.372 ms  47.334 ms  48.768 ms
 5  ae5.dar01.hkg02.networklayer.com (50.97.xx.xx)  49.031 ms  47.006 ms  48.932 ms
（以下略）
```

#コード例

```py:getBackbone.py
import SoftLayer
from prettytable import PrettyTable

client = SoftLayer.create_client_from_env()
_mask = '''
    health,
    location,
    networkComponent
'''

table = PrettyTable([
    'id',
    'capacity',
    'health',
    'name',
    'location',
    'fqdn'
])

backbones = client['Network_Backbone'].getAllBackbones(mask='health,location,networkComponent')
backbones = sorted(backbones, key=lambda x: x['location']['name'])
for bb in backbones:
    if ('capacity' in bb and
        'health' in bb and
        'name' in bb and
        'location' in bb and
        'networkComponent'in bb):

        table.add_row([bb['id'],
                       bb['capacity'],
                       bb['health'],
                       bb['name'],
                       bb['location']['longName'],
                       bb['networkComponent']['hardware']['fullyQualifiedDomainName']])

print table

```


```text:result
+-----+----------+--------+-------------------------------+---------------+--------------------------------+
|  id | capacity | health |              name             |    location   |              fqdn              |
+-----+----------+--------+-------------------------------+---------------+--------------------------------+
(途中略）
| 332 |    20    |   Up   |             NTT 1             |    Tokyo 1    | bbr01.eq01.tok01.softlayer.com |
| 334 |    10    |   Up   |        Equinix Peering        |    Tokyo 1    | bbr02.eq01.tok01.softlayer.com |
| 365 |    10    |   Up   |           Telstra 1           |    Tokyo 1    | bbr01.eq01.tok01.softlayer.com |
| 387 |    10    |   Up   |         JPNAP Peering         |    Tokyo 1    | bbr01.eq01.tok01.softlayer.com |
| 389 |    10    |   Up   |          BBIX Peering         |    Tokyo 1    | bbr01.eq01.tok01.softlayer.com |
| 391 |    10    |   Up   |             PCCW 1            |    Tokyo 1    | bbr02.eq01.tok01.softlayer.com |
| 393 |    10    |   Up   |            Pacnet 1           |    Tokyo 1    | bbr02.eq01.tok01.softlayer.com |
| 513 |    10    |   Up   |         China Telecom         |    Tokyo 1    | bbr01.eq01.tok01.softlayer.com |
(途中略）
```

#結論
まとめるとこんな感じでしょうか。
![SoftLayerTokyoBackbone.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/fa69a5fa-ebf1-efef-bdbc-32abdc58d08e.jpeg)