ネットワークの移行とか構築とか責任分界点とかの話

この記事はちょっと長いコラムです。
高校生、大学生くらいで将来ネットワークエンジニアになりたい人や新社会人のネットワークエンジニアが見るとためになることが書いてあるかもしれません。フフフっくらいの軽い気持ちで読んでみてください。

# はじめに
みなさまごきげんよう。今日もネットワーク接続してますか？
先日とある方から相談をもらったんですが、ネタ的に丁度良い難易度で春の新生活に役立ちそう（？）な気がしたので話を膨らませて記事にします。

![joniemon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172479/f5423177-8fcd-ea08-696b-b53d80a5a81c.png)

聞き取り調査をしてみると、どうやら部屋に置いてあったルータを別の機器に交換したところインターネットに繋がらなくなったということみたいです。
この話自体は良くあるなんでもない話だったので設定を正しく入れて解決済みなんですが、ネットワーク構築の例え話に丁度良かったので、いくつか単語の紹介をしながらネットワークについて語りたいと思います。記載していない単語については興味が湧いたら適当に調べて下さい。
Note の自己紹介に書いてますが、私自身は過去にネットワークエンジニアをやっていたので IPA のネットワークスペシャリストの資格を保有しています。

![net.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172479/9cfc5659-bc11-7241-dba1-8c58da0044b2.png)

# ネットワークとは
IT の世界でいうネットワークというのは、狭義の意味では「OSI 参照モデルのレイヤ３」で分割されたIPネットワーク、またはそれらを複数接続したものの事を指すことが多いです。
<font color="red">何を言ってるか全くわからねー</font>と思うのでもはや雰囲気だけで読んでもらえれば良いですが、電機屋さんで売ってる HUB（ハブ：レイヤ２）に繋げた LAN ケーブルと複数のパソコンやらプリンタだけではリンク（繋がり）を有線や無線で延長しただけなので「ネットワーク」と呼ぶには余りにも語ることがありません。
インターネットなどに接続する際に外のネットワークと内のネットワークを接続するために設置するルータ（レイヤ３）と接続することでやっと「さぁ、IP アドレスについて話をしよう(ﾄﾞﾔｧ)。」と、ネットワークの話が始まる訳です。

# ホストアドレスとネットワークアドレス
対象の読者は IP アドレスというものを聞いたことがあると思いますが、下の図でいうところの赤枠で囲ったところがあなたのパソコンの IP アドレスと言うもので「ネットワーク上での住所」を表すものになります。パソコンやプリンタに割り当てる IP アドレスのことを「ホストアドレス」と呼びます。１つのネットワーク上で同じホストアドレスを使うとあなたの家にウーバーイーツが届かなくなるのと同じくらい大混乱が起きます。

![ip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172479/b8557dcd-8e03-c7ce-b283-1556000b547f.png)

黄枠で囲った箇所（サブネットマスク）とホストアドレスの２進数の論理積をとったものをネットワークアドレスと呼びます。サブネットマスクはその性質上、左から２進数の１を埋めていくことが多いため（CIDR表記）、１の桁数だけを数えて、ホストアドレスの横に併記することもあります。

```
192.168.  3.  3 （ホストアドレス）
255.255.255.  0 （サブネットマスク、この例では /24 と書くこともある）
--------------- ↓２つの論理積
192.168.  3.  0 （ネットワークアドレス）
```

ネットワークアドレスは１つのネットワークに与えられる区画のようなものです。192.168.4.0/24 などはお隣さんのネットワークとなります。
計算してみると分かりますが、１つのネットワークに配置できるホストアドレスの数はサブネットマスクをビット反転して数えたものになります（上の例では 256 個。正確には、一番下の 0 と一番上の 255 は予約された数字なので 1 ～ 254 の 254 (256-2)個をホストアドレスとして使うことができます）。
その個数を予測してサブネットマスクを予め大きくしたり、小さくしたり計算するのがネットワークエンジニアの仕事です。

# ネットワークの割り当て
予備知識はこれで終了。さて、ここからが今日のコラムです。
新年度になると、新しい部署ができたり、新しい研究室ができたりしますよね？新入生や会社に入ってきた新人には勉強として部署のネットワーク管理を任せたいものです。先輩たちはウキウキしながらネットワークの設計をして新人に作業の依頼をしてくるかもしれません。

```
先輩「192.168.100.0/24 のネットワークを会社からもらっておいたから、
　　　これを社内のネットワークと接続できるようにしてくれ。
　　　ちな、ルータに割り当てる IP アドレスは 172.16.31.241、
　　　ネクストホップは 172.16.31.254 な。」
```

この短い依頼から頭をフル回転させてあなたはネットワークを構築することになるでしょう。余りにも説明足らずなので先輩をぶん殴っても良いですが、とりあえずここから色々推理してみましょう（実際には事故を起こすかもしれないので推理しないでください）。

## ・ネットワーク設計
まずはネットワークアドレスですが、192.168.100.0 を使ってくれということのようです。サブネットマスクは /24 なので 255.255.255.0 です。このネットワークには端末を 254 台置くことができるので、新人に管理してもらうネットワークの規模としては適切です。

```
貴方「ルータには 172.16.31.241 ・・・ん？」
```

前の節で説明した通り、ホストアドレスはネットワークアドレスの区画の中から割り当てます。ところが 172.16.31.241 はもらったネットワークアドレスの区画とは違います。しかし、よく考えてください。ルータは外と内のネットワークを接続するものです。つまり２つのネットワークアドレスの境目に設置される機器なので、当然、外と内に IP アドレスをそれぞれ設定する必要があります。

という訳で、ここから推理されるのは 172.16.31.241 をルータに割り当てる、ということは外側に割り当てるルータの IP アドレスが 172.16.31.241 ということになります。では外のネットワークアドレスは何でしょう？172.16.31.0/24 でしょうか？いや違います。

```
先輩「勘のいいガキは嫌いだよ。」
```

勘のいいネットワークエンジニアならここで気づきます。172.16.31.241 と 172.16.31.254 という IP アドレスには何らかの意味を感じます。これはサブネットマスクでいうと、255.255.255.240 (/28) で分割したアドレスの１番目（最初）と１４番目（最後）です。

```
172. 16. 31.241 （ホストアドレス、241～254 の 14 (16-2)個を割り当て可能）
255.255.255.240 （サブネットマスク /28）
--------------- ↓２つの論理積
172. 16. 31.240 （ネットワークアドレス）
```

つまり、ここではネットワークアドレスは 172.16.31.240/28 なんだな、と察してあげると先輩が喜ぶかもしれません。そして会社に接続するためには 172.16.31.254 という IP アドレスへ接続すればよいようです（経路設定、ルーティングなどと呼ぶ）。
さて改めて、ルータの内側にも 192.168.100.254 という IP アドレスを割り当ててあげることにして一度図に書くとこんな感じになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172479/4a3c54a5-0a9c-8618-3ae7-87a9a896dac8.png)

※ホストアドレスを真面目に書くと図が狭くなるので、こういう場合はホストアドレスの末尾だけを図に書くことがあります。時と場合で使い分けましょう。

## ・ホストアドレスの設計
先輩に聞き込みしたところ部署には20人ほどが在籍しており、各自がPCを１台～２台所有しているそうです。ここであなたは部署の将来の発展を予想する必要があります（白目）。

```
貴方「この部署は人が増えてもせいぜい40人までやろ。」
```

そう思った貴方は最大で 40人 × 2台 = 80 個の IP アドレスを各自の PC に割り当てられるように設計しました。貴方はカタカタと DHCP サーバを１台立てて、IP アドレスの自動割り当てを .16～.95 の 80 個を使うように設定しました。
すると先輩が貴方の肩を「グイイっ」と掴み会話が始まりました。

```
先輩「小僧。どうして部員の PC の IP アドレスが 192.168.100.16 ～ 192.168.100.95 なんて
　　　不思議な範囲なんだ？」
貴方「なんとなく２進数で綺麗に分割できるようにしておいた方（0～15 と 16 以上を区切った方）が
　　　将来ネットワークの設定を綺麗にできて良い気がしたんです。」
先輩「ほう。それなら 128～207 を使った方がネットワークアドレスを丁度２分割していて（0～127 
　　　と 128～255 が丁度２分割できる範囲）良いんじゃあないか？」
貴方「確かにそうですね。」
先輩「だがな新入り。エンジニアとして2進数を使うことだけが分かりやすいとは限らないんだぜ？」
先輩「ネットワークを知らない人にとっては 192.168.100.101～192.168.100.180 みたいな 
　　　10 進数の方が分かりやすくて一般職の人に管理を委譲しやすいんだぜ？」
小僧「ディモールト、ベネ！！」
```

ということでホストアドレスの設計をやり直して以下のようにしました。

```
  .1～ .20 サーバ、プリンタ等用IPアドレス（固定）
 .21～.100 予備、固定用IP
.101～.200 部署内の人員用（動的）
.201～.239 予備
.240～.254 ネットワーク機器用（固定）
```

前述の図の通り、ルータには 192.168.100.254 のアドレスを割り当てました。これは各自の PC に割り当てる（デフォルト）ゲートウェイと呼ばれるアドレスになります。デフォルトゲートウェイと通信ができることによって、内から外へ通信を行うための経路が確立されます。「ネットワークが繋がらない！」などとのたうち回る部員には「192.168.100.254 に Ping 繋がりますか？」と聞いてみましょう。同じようにしてルータにとっての（デフォルト）ゲートウェイは 172.31.16.254 と言うこともできますね。ルータと会社のネットワークが接続できているかどうかは、ルータにログインして 172.31.16.254 に Ping してみると分かります。
これで貴方の部署のネットワーク設計は完了です。図にまとめるとこうなりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172479/bdd9c1e7-fbc4-59c2-b8c1-a43a9c99dd8f.png)

# ネットワークの責任分界点
会社に入って年次が上がると部署よりも大きな組織と関わることがあります。前述の図において「ルータ」は一体誰の持ち物でしょうか？192.168.100.0 のアドレスの所有者は？責任者は？
組織によってそのルールは異なりますが、ネットワーク設計や管理のしやすさなどの観点から説明してみます。

・192.168.100.0/24
このネットワークアドレスは先輩が会社から貰ったといっていました。なので所有者は会社でしょう。しかし、部員の人数は将来変動することもあるし .20 という IP アドレスを何に使うかをいちいち会社で管理はしたくないでしょう。管理者は各部署にまかせた方がよさそうです。会社ではどの部署にどのネットワークアドレスを割り当てたかだけを管理すれば良さそうです。

・172.16.31.240/28
このネットワークアドレスについては詳細が明らかにされておらず、ルータの IP アドレスなどの情報しか分かりません。一般的にはこのネットワークは、会社と部署との接続点として用いるための専用のネットワークであり、/28 だったり、更にホストアドレスの少ない /30 などの細切れのネットワークとして会社が管理しています。
172.16.31.241 はルータ、172.16.31.254 は会社側のネットワークに付与されているアドレスなのでこれらは会社がネットワーク設計を行った際のルールです。1番目を各部署に、14番目を会社側のネットワーク機器に割り当てるというルールで会社のネットワークエンジニアが設計したのでしょう。
このルールが設計として明らかにされている場合 .241 や .254 という情報は先輩と会社の間で事前にやりとりする必要がなくなります。ネットワークアドレスを割り当てた時点でホストアドレスの1番目と14番目が分かるからです。これが設計（ルール）です。

・ルータ
ルータや HUB はどうでしょう？これは組織のルールによりますが、情報漏洩やセキュリティを考えると勝手においてはダメというルールの方が多いかも知れません。特にルータは複数のネットワークアドレスの境目に設置するものなので、万が一、部署内に別のルータを設置して反対側のネットワークアドレスを 172.16.31.xxx/28 などと会社と似たアドレスを勝手に使おうものなら会社のネットワークが壊れてしまうこともあります。
もしかしたら会社から斡旋されているメーカーの機器だったら良いよ、という組織もあるかもしれません。ネットワーク機器同士は接続すると自動でお互いの情報をやりとりして自動的にネットワークを設定して構築してくれる機種もあります。そのような場合でも、ネットワーク設定を自動で行う設定を無効化したり、不用意な通信を会社側に送らないように設定すれば別に設置しても良いよ、ということもあります。
無効化せずに無断でネットワーク機器を設置すると、会社側から通信を遮断されて始末書を書くまで許してもらえないこともあります。気を付けましょう。

# （補足）会社のネットワーク設計
実は会社のネットワーク設計には少し疑問が残るところがあります。それは新しい部署ができた際の 192.168.100.x/24 というネットワークアドレスの使い方です。図で書くとこんなイメージでしょうか？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172479/0e65dce6-e747-88e2-e9fe-7eb7400eb334.png)

・ネットワークアドレスの追加割り当ては必要？
新しい部署ができる度に新しいネットワークアドレスを用意したとすると、会社のネットワーク機器に都度設定をする必要があります（面倒ですね）。もちろんそれを前述のように自動で設定してくれる機能もあります。なるべく追加設定が不要となるように東京オフィス、大阪オフィスなどと規模が大きい場合には更にしっかりとした設計をする必要があります。

・接続点は必要？
会社との接続点の /28 というネットワークアドレスが必要なものなのかどうかそもそも分かりませんが、会社の大きさやネットワークの分割単位などによっては用意した方が便利なこともあります。使う使わないではなく、他のネットワークに影響を与えないようにセキュリティや利便性、機器の増設や拡張の観点で用意することもあります。

・事前に全て設計して機器に設定しておけばよいのでは？
予めネットワークアドレスを決めておけば（図の172.20.0.0/24、192.168.100.0 は東京用にする、とか）、そもそも接続点の有無に関わらず会社のネットワーク機器に設定をする必要は無いかもしれません。
会社の規模が大きくなって東京や大阪にオフィスが分かれてしまった時にも、それを最初から考慮して東京オフィス全域、大阪オフィス全域のネットワークアドレス（赤字）を最初から設計／設定しておけば良いですね。
しかし、東京オフィスで使っていた 192.168.100.0/24 を引き継いで、そのまま大阪オフィスに移転したいという要望もあるかもしれません。そのとき、その要求を突っぱねるのか許すのかそれは会社のネットワークエンジニアの設計次第です。192. から始まるアドレスは全て持ち運び可、172.から始まるアドレスは持ち運び不可などの移転用の設計があるかもしれません。

会社の基幹ネットワークを設計する際には新設、廃棄、移行、重複などのありとあらゆることを想定した設計がされているものなので、上に書いたことは全部杞憂だったりします。

# まとめ
インフラを担当するエンジニアは全てを考慮して設計し、最後までどっしり構えてニコッと笑っていればよいのです。この記事のような言葉の少ない依頼をしてきた先輩はぶん殴っても良いです。