Looking Glass

# はじめに
本記事はLooking Glassについて記載しています。

## Looking Glass
**Looking Glass**は、バックボーンネットワークのルーティング情報がトレースできるツールです。

一般的にはトラブルシューティングなどの目的で利用されることが多く、主にISP（インターネットサービスプロバイダー）など大規模なネットワーク事業者によって提供されています。

以下の様な機能を利用することで、ルーティング情報が取得できます。

- [Border Gateway Protocol](https://ja.wikipedia.org/wiki/Border_Gateway_Protocol)（BGP）
    - 特定のIPアドレスやプレフィックスに対するBGPルート情報を表示
- Ping
    - 疎通確認及び往復遅延時間の測定
- Traceroute
    - 指定したIPアドレスに対するルートを追跡し、経由するルーターの情報を表示

::: note
国内ではNTT DATAの[Looking Glass](https://www.gin.ntt.net/looking-glass-landing/)が公開されています。その他、世界最大のIPv6ネットワークを提供する[Hurricane Electric](https://en.wikipedia.org/wiki/Hurricane_Electric)社の[Looking Glass](https://lg.he.net/)などがあります。
:::

## Route Servers
特定のISPや研究機関では、ルートサーバーと呼ばれる外部からアクセスを許可したルーターなどのNW機器が公開されています。

使用できるコマンドについて制限はありますが、ネットワークのルーティング情報の参照が可能です。

- [Route Servers](https://www.routeservers.org/)

### route-server.ip.att.net
 AT&Tのroute-server.ip.att.netを例に接続方法を以下に記載します。

ルートサーバーの接続は、`telnet`コマンドを使用します。

`$ telnet route-server.ip.att.net 23`

```console
Trying 2001:1890:111d:1::28...
Connected to route-server.ip.att.net.
Escape character is '^]'.
-------------- route-server.ip.att.net ---------------
---------  AT&T IP Services Route Monitor  -----------

The information available through route-server.ip.att.net is offered
by AT&T's Internet engineering organization to the Internet community.

This router maintains eBGP peerings with customer-facing routers
throughout the AT&T IP Services Backbone:

 IPv4:           IPv6:                             City:
 12.122.124.12   2001:1890:ff:ffff:12:122:124:12   Atlanta, GA
 12.122.124.67   2001:1890:ff:ffff:12:122:124:67   Cambridge, MA
 12.122.127.66   2001:1890:ff:ffff:12:122:127:66   Chicago, IL
 12.122.124.138  2001:1890:ff:ffff:12:122:124:138  Dallas, TX
 12.122.83.238   2001:1890:ff:ffff:12:122:83:238   Denver, CO
 12.122.120.7    2001:1890:ff:ffff:12:122:120:7    Fort Lauderdale, FL
 12.122.125.6    2001:1890:ff:ffff:12:122:125:6    Los Angeles, CA
 12.122.125.44   2001:1890:ff:ffff:12:122:125:44   New York, NY
 12.122.125.106  2001:1890:ff:ffff:12:122:125:106  Philadelphia, PA
 12.122.125.132  2001:1890:ff:ffff:12:122:125:132  Phoenix, AZ
 12.122.125.165  2001:1890:ff:ffff:12:122:125:165  San Diego, CA
 12.122.126.232  2001:1890:ff:ffff:12:122:126:232  San Francisco, CA
 12.122.159.217  2001:1890:ff:ffff:12:122:159:217  San Juan, PR
 12.122.125.224  2001:1890:ff:ffff:12:122:125:224  Seattle, WA
 12.122.126.9    2001:1890:ff:ffff:12:122:126:9    St. Louis, MO
 12.122.126.64   2001:1890:ff:ffff:12:122:126:64   Washington, DC

*** Please Note:
Ping and traceroute delay figures measured here are unreliable, due to the
high CPU load experienced when complicated show commands are running.

For questions about this route-server, send email to: route-server@cbbtier3.att.net

*** Log in with username 'rviews', password 'rviews' *** 

login: 

```

ユーザ名とパスワードは`rviews`を入力します。

```console
login: rviews
Password:
Last login: Fri Aug  2 12:55:04 from 13.54.141.65

--- JUNOS 23.2R1.13 Kernel 64-bit  JNPR-12.1-20230613.7723847_buil
rviews@route-server.ip.att.net> 
```

### コマンド
route-server.ip.att.netは、juniper製のルーターです。

以下の様なコマンドが使用可能です。

- ルートをすべて表示
`show route all`

    ```console
    inet.0: 938895 destinations, 15020517 routes (938895 active, 0 holddown, 0 hidden)
    + = Active Route, - = Last Active, * = Both
    
    0.0.0.0/0          *[Static/5] 14w6d 21:32:12
                        >  to 12.0.1.1 via em0.0
    1.0.0.0/24         *[BGP/170] 7w4d 01:34:00, localpref 100, from 12.122.83.238
                          AS path: 7018 13335 I, validation-state: valid
                        >  to 12.0.1.1 via em0.0
                        [BGP/170] 01:52:43, localpref 100, from 12.122.120.7
                          AS path: 7018 13335 I, validation-state: valid
                        >  to 12.0.1.1 via em0.0
                        [BGP/170] 5w0d 03:15:43, localpref 100, from 12.122.124.12
                          AS path: 7018 13335 I, validation-state: valid
                        >  to 12.0.1.1 via em0.0
                        [BGP/170] 2d 07:17:54, localpref 100, from 12.122.124.67
                          AS path: 7018 13335 I, validation-state: valid
                        >  to 12.0.1.1 via em0.0
                        [BGP/170] 7w0d 01:40:12, localpref 100, from 12.122.124.138
                          AS path: 7018 13335 I, validation-state: valid
                        >  to 12.0.1.1 via em0.0
                        [BGP/170] 1w6d 02:45:18, localpref 100, from 12.122.125.6
                          AS path: 7018 13335 I, validation-state: valid
                        >  to 12.0.1.1 via em0.0
                        [BGP/170] 2d 07:17:52, localpref 100, from 12.122.125.44
                          AS path: 7018 13335 I, validation-state: valid
                        >  to 12.0.1.1 via em0.0
                        [BGP/170] 00:48:23, localpref 100, from 12.122.125.106
                          AS path: 7018 13335 I, validation-state: valid
                        >  to 12.0.1.1 via em0.0
                        [BGP/170] 2d 09:06:21, localpref 100, from 12.122.125.132
                          AS path: 7018 13335 I, validation-state: valid
                        >  to 12.0.1.1 via em0.0
                        [BGP/170] 4d 03:31:31, localpref 100, from 12.122.125.165
                          AS path: 7018 13335 I, validation-state: valid
                        >  to 12.0.1.1 via em0.0
                        [BGP/170] 6w1d 02:56:45, localpref 100, from 12.122.125.224
    ---(more)---
    ```
- ルートの概要を表示
`show route summary`

    ```console
    Autonomous system number: 65000
    Router ID: 12.0.1.28
    
    Highwater Mark (All time / Time averaged watermark)
        RIB unique destination routes: 1135641 at 2024-07-25 14:24:50 / 1132076
        RIB routes                   : 18167725 at 2024-07-25 14:25:07 / 18110964
        FIB routes                   : 121 at 2024-04-19 15:24:01 / 121
        VRF type routing instances   : 0 at 2024-04-19 15:23:57
    
    inet.0: 938950 destinations, 15021396 routes (938950 active, 0 holddown, 0 hidden)
                  Direct:      1 routes,      1 active
                   Local:      1 routes,      1 active
                     BGP: 15021276 routes, 938830 active
                  Static:    118 routes,    118 active
    
    inet6.0: 195789 destinations, 3132473 routes (195789 active, 0 holddown, 0 hidden)
                  Direct:      1 routes,      1 active
                   Local:      2 routes,      2 active
                     BGP: 3132467 routes, 195783 active
                  Static:      2 routes,      2 active
                   INET6:      1 routes,      1 active
    
    ```

- ルートを簡潔に表示
`show route terse`

    ```console
    inet.0: 938955 destinations, 15021464 routes (938955 active, 0 holddown, 0 hidden)
    + = Active Route, - = Last Active, * = Both
    
    A V Destination        P Prf   Metric 1   Metric 2  Next hop        AS path
    * ? 0.0.0.0/0          S   5                       >12.0.1.1
    * V 1.0.0.0/24         B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
      V                    B 170        100            >12.0.1.1        7018 13335 I
    * V 1.0.4.0/22         B 170        100            >12.0.1.1        7018 1299 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 1299 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 1299 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 1299 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 1299 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 6453 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 1299 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 6453 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 6453 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 6453 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 1299 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 1299 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 6453 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 1299 7545 38803 38803 38803 I
      V                    B 170        100            >12.0.1.1        7018 1299 7545 38803 38803 38803 I
    ---(more)---
    ```

:::: note
juniperで使用可能なコマンドは、[Junos CLI Reference](https://www.juniper.net/documentation/us/en/software/junos/cli-reference/)のドキュメントで確認できます。
::::

# おわりに
Looking Glassは、ルーティングの問題をトラブルシューティングするための貴重なツールです。