こんにちは、オオグンタマのメスです。うそうそわたしだよ。この記事は pyspa Advent Calendar 2020 拾弐ノ型です。

家を買いました。やりましたね。

契約したのは去年なのですが、存在が存在するために今年の夏になっていました。春先には例のアレにより完全 WFH と化していたので作業環境を整えるのに時差が生じてしまいだるかったです。

賃貸マンション to 分譲マンションなので、それほど大きく間取りは変わらないのですが、それでもネットワーク環境は大きく変わりました。以下、やっていった記録です。

機器

前提として、自宅サーバーが置いてあります。どこにでもある安物サーバーなので、当然 PT3 が挿さっていますよね。なのでテレビのアンテナ端子に近いところ、かつ有線でインターネットにも繋げる位置にいないといけません。あと何故か TV からもそのサーバーに繋げないと不便なので、同じネットワークの中にいてほしいです。これも有線ですね。

旧居のネットワーク

旧居はただの直列です。ルーターから有線がサーバーと TV に挿さり、かつ DDA で分配した同軸もサーバーと TV に挿さっていました。

☁ インターネット
│
│   ┌ 家 ─>
│   │
NTT ┼ ONU ─ ROUTER/AP ─ 鯖 ─ DDA ─ アンテナ端子
    │              └─── TV ───┘

何気に光コンセントのある部屋とアンテナ端子のある部屋が引き戸を挟んで隣り合っていたので、ONU とルーターの間はこういうやつでなんとかしていました。

エレコム LANケーブル 0.5m 屋外対応 すきま用 アルミ強化 CAT5e準拠 シルバー LD-VAPF/SV05 amazon.co.jp

新居のネットワーク

新居は少し部屋が増えて、各部屋に LAN ケーブルの挿さる穴が配備されています。リビング・子供部屋・仕事部屋・寝室みたいな感じです。ここに挿すとインターネットとなります。

それと引き換えに、光配線方式ではなく LAN 配線方式になりました。共有部から各戸のどこかにある備え付けのハブに LAN ケーブルをズッとやって、そこからさらに各部屋に壁の中からズズッとやるやつです。

我が家の場合は廊下の壁にある収納の一番上にあるロココ調の右にありました。

なんとなくモザイク
なんとなくモザイク

ここの一番上に挿さっているのが共有部からズッときているやつで、それ以外が各部屋にズズッといくやつです。

幸い仕事部屋にアンテナ端子もあったので、サーバーはそこに置くことにしました。居住区にあると四六時中唸っててうるさかったので。そしてサーバーで動かしているアレコレを外からアレするためには、ここにルーターが必要です。

引っ越しを機会に安くて色々と便利と噂の EdgeRouter X(以下 ER-X)を購入しました。

Ubiquiti Networks Edgerouter ER-X(日本国内) amazon.co.jp

ところが、これも仕事部屋に設置してしまうと困ったことが起こります。リビングの LAN ケーブルに挿した TV とは別のネットワークになってしまうため、サーバーにあるアレが見えません。

☁ インターネット
│
│   ┌ 共用 ┬ 専有 ─>
│   │     │
何か ┼ MDF ┼ HUB ┬ 仕事部屋 ─ ER-X ─ 鯖 ─ DDA ─ アンテナ端子
    │     │     │
    │     │     ├ リビング ─ TV ─ アンテナ端子
    │     │     │

そこで、備え付けのハブに挿さっている共有部からの LAN をぶっこ抜いて ER-X の WAN ポートに挿し、元々挿さってたところには ER-X の LAN ポートから繋いであげました。

☁ インターネット
│
│   ┌ 共用 ┬ 専有 ─>
│   │     │
何か ┼ MDF ┼ ER-X ─ HUB ┬ 仕事部屋 ─ ER-X ─ 鯖 ─ DDA ─ アンテナ端子
    │     │            │
    │     │            ├ リビング ─ TV ─ アンテナ端子
    │     │            │
    │     │            ├ 子供部屋 ─ AP
    │     │            │

これですべての機器が ER-X の支配下に置かれます。他の部屋の穴に挿した Wi-Fi の AP も同様です。よかったですね。ところが……

楽天問題

楽天市場のヘビーユーザーである家族から障害報告があがりました。曰く、画像がほとんど読み込めないとのこと。

調べてみると、確かにモバイルのブラウザやアプリから見ると、店舗のロゴや商品画像のほとんどが読み込めないか No Image の代替画像になってしまう。画像に直接アクセスすると ERR_ADDRESS_UNREACHABLE の文字。

ERR_ADDRESS_UNREACHABLE
ERR_ADDRESS_UNREACHABLE

モバイルで 4G 回線にすると問題なく読み込めるので、自宅のネットワークが悪いことは確定的に明らか。

試しに 4G 回線で Termux とか使って wget してみると IPv6 から降ってきている。そういえば ER-X を挟む前って IPv6 使えてたっけ? と思い試しに元の配線に戻すと、IPv6 は使えていないものの、画像は読み込めるようになった……

となると ER-X の設定で何かやらかしたか? と考えつつ何となく wget していると毎回降ってくる IP が違っていて……?

特定の IP のみ繋がらない

dig ってみると Limelight CDN が使われてました。なので定期的に繋がるエッジが変わる。

$ dig thumbnail.image.rakuten.co.jp
thumbnail.image.rakuten.co.jp. 40 IN    CNAME   thumbnail.image.gs.rakuten.co.jp.
thumbnail.image.gs.rakuten.co.jp. 21 IN CNAME   richiba-3.s.llnwi.net.
richiba-3.s.llnwi.net.  24      IN      A       111.119.28.78
richiba-3.s.llnwi.net.  24      IN      A       111.119.28.83

そして特定のレンジ以外の IP をもつエッジに繋がったときは ER-X を挟んでいても接続できた。本当に、極稀に……

(ちなみにマルチ CDN もしているのか Limelight だけではなく Akamai に繋がるときもありました)

ここで秘密結社 pyspa の森の奥深くに住まう小動物から、強制的にアドレス固定で CDN に繋ぐ方法を教えていただいたのでご紹介します。

$ curl -v --connect-to \
  thumbnail.image.rakuten.co.jp:443:111.119.29.75:443 \
  "https://thumbnail.image.rakuten.co.jp/@0_mall/rybo/logo/logo1.jpg" \
  >/dev/null

これで神に祈らなくても確実に再現できるようになりました。しかし普通に使っているとかなりの確率でも問題のあるエッジを掴んでしまうので解決にはなりませんね。

ER-X の設定を見直す

安くて便利と聞いてはいたものの、これまでの経緯を読めばわかるように筆者はネットワーク系は素人なので大した設定はしていません。

やったことといえば……

グローバル IP 設定してました。

サーバーを外からアレしたり、IP 制限かかってるシステムを使ったりするのに必要だったので固定のグローバル IP を追加オプションで貰っていたのでした。

eth0 に貰った IP アドレスを指定して、デフォルトゲートウェイと DNS サーバーを設定するだけの簡単なお仕事のはずが……

で、試しに外してみると見事繋がる。繋がるんです。

以前使ってた別のルーターでグローバル IP を設定してもこれまた繋がる。

これは確実に ER-X の設定でやらかしています。

これは……この問題がいったいどうなったかというと……

実はまだ……解決していないんです……

キャー!!!!!!!!

まとめ

食器洗浄機がビルトインになって、これまで使ってたやつが不要になったんですけど誰かいりませんか?

明日はもっと楽しくなるよね、ハム太郎!


追記: 自己解決しました

Updated at 2020-12-18 16:48:33 JST

我が家に配給されたグローバル IP、111.xxx.xxx.xxx みたいなやつなんですが、偶然にも繋がらない IP アドレスと似てると思いませんか?

  • 111.119.28.78
  • 111.119.28.83
  • 111.119.29.75

クリソツですね。

まさかと思い ER-X の IP 設定を確認してみると…

111.xxx.xxx.xxx/8

どう見てもクラス A です。本当にありがとうございました。

どうもサブネットマスクのプレフィックス表記をググったときに 255.255.255.248 -> /29 みたいな説明の横にあった IP アドレスの個数 8 をそのまま書いてしまったようです。

検証のときに使った別のルーターはサブネットマスクをそのまま設定する形だったので再現しなかったんですね〜

(‘A`)