ユニファ開発者ブログ

ユニファ株式会社システム開発部メンバーによるブログです。

インターネット?ネットワークのおはなし

ごきげんようユニファのインフラ見てますすずきです。

最近弊社にイングランドからエンジニアが入ってきて、
社内に(エンジニア近辺)英会話の機運の高まりを感じています。
(年末に勉強しなきゃといって全くできていない私の話はまた今度)

さて普段ブログは仕事で使ってる技術の話してるんですが、 今回は簡単にインターネットというか、ネットワークのお話を【超噛み砕いて】できればなと思います。

ユニファのネットワーク

とりあえずユニファの簡単なネットワークの図を書いてみました

f:id:mominosin:20190213175603p:plain

上の2つ並びが東京オフィスと名古屋オフィス、でそれぞれがインターネットにつながっていて、
出先や自宅から社内に接続する際にはインターネット越しにオフィスに接続しています。

そう、簡単に説明するとこんな感じでつながっています。

どうやってつながってるの?

厳密にはもっといろいろ動いてるんですが、インターネット上ではIPアドレスを利用して繋がります。
IPアドレスとは、2進数(0,1)の32桁で示されます。
通常は見やすいように2進数を8桁で区切り、10進数の0~255で表し、その組を4つ並べて示します。
0.0.0.0 ~ 255.255.255.255の範囲(約43億個)のアドレスが存在します。
(※ 約43億個について後ろで少し話します) 基本的にはインターネットにつながる機械(パソコン、スマートフォン、サーバ、IoT機器など)全てにこのIPアドレスが割あたっています。

基本的にこれらの値はインターネットで一意であり、みなさんのご自宅の住所のように、宛先を示せばそこに届くようになっています。

下に例でつけときましたがGoogle以外は適当な値です。

f:id:mominosin:20190213185653p:plain

例えばオフィスからGoogleに検索かけたときは裏側で、 111.111.111.111 から 172.217.31.142 に通信を投げに行きます。

172.217.31.142 はどこから出てくるかっていいますと、IPアドレスをわかりやすくしようっていう技術(DNS)をつかい、IPアドレスに名前をつけています。
(全然ちがいますけど、緯度経度で居場所教えられてもピンとこないけど、住所言われたらわかりやすいですよね?)
そして、その名前のIPアドレスはなんですか?って問い合わせてIPアドレスを教えてもらい接続しにいっています。

試しに、ブラウザのhttp://とか書く場所に 172.217.31.142 と入力してみてもらったら、Googleに飛ぶと思います。

IPアドレスはどうやって決められるか?

ご自宅でインターネット利用する場合、大抵プロバイダ(OCNとか)契約されると思うんですが、
契約するとIPアドレスを発行してくれます。(プロバイダや契約内容によって、IPアドレスが都度変わるものや変わらないものなどあります)

IPアドレスの種類

先程IPアドレスは約43億個でインターネットにつながる機械はすべてIPアドレスを持っているとお話しました。

先程から気づかれてた方がいるかもしれませんが、世界の人口は75億人を超えています。
IPアドレスは世界の人口の半分くらいしかありません、そん中インターネットができているみなさんは選ばれた存在なのでしょうか。
しかも、人口で考えれば半分ですが、1人スマートフォン、タブレット、パソコンを複数持っていたり、会社にも自分用のパソコンやスマートフォンがあったり、個人じゃなくて会社で持っているパソコンやサーバがあったり人口より多くのインターネットにつながる機械があってもおかしくないですよね。
ますます特別感がでてきました。

なぜそんな状態でみんなインターネットできてるかというとこれもインターネット技術で解決しています。

IPアドレスにも種類がありまして、グローバルIPアドレスプライベートIPアドレス 厳密にはまだあるのですが、この2つを意識していただければいいかと思います。

先程書きましたが、IPアドレスの範囲は「0.0.0.0 ~ 255.255.255.255」

その範囲の中でプライベートIPアドレスの範囲というものが決まっています。

  10.0.0.0 ~ 10.255.255.255
  172.16.0.0 ~ 172.31.255.255
  192.168.0.0 ~ 192.168.255.255

上記の範囲がプライベートIPアドレスです。 この範囲外をとりあえずグローバルIPアドレスとしてください。

このブログの最初の方で、「IPアドレスはインターネットで一意」といいましたが、これは「グローバルIPアドレス」のことを指しています。

ザクッと先程までの図に範囲を書いてみました。(つけてる値はまたしても適当です)

f:id:mominosin:20190213194649p:plain

ユニファ社内や、ご自宅、カフェなどでWiFi接続などした際はプライベートIPアドレスの範囲に接続しています。
このプライベートIPアドレスはその組織、その場所だけのネットワークでインターネットとは別の隔離されたネットワークになります。
(インターネットのように名前をつけると イントラネット と言ったりもします) これは、隔離されたネットワーク内で一意になっていれば、別の箇所の隔離されたネットワークと同じIPアドレスが割あたっていても問題にはなりません。

このプライベートIPアドレスを現実の何かに当てはめてみると、マンションの部屋などになるでしょうか? 同じ住所でも部屋がわかれていますよね。住所が違えばマンション名が同じでも部屋割りが同じでもなんらもんだいありません。

プライベートIPアドレスでインターネットするには

プライベートIPアドレスでインターネットに接続するためには、隔離されたネットワークから外に出るときにグローバルIPアドレスのふりをして外に出ていかないとだめです。
ただインターネットではグローバルIPアドレスのフリをしていくと、帰ってくるときもグローバルIPアドレスの場所までしか戻ってこれません。
そのため、グローバルIPアドレスからプライベートIPアドレスに戻るために、出ていく口を決めています。

この出口はポートとよばれており、インターネットの通信ではIPアドレス+ポートで通信することが一般的です。

これを利用し、プライベートIPアドレス 192.168.0.1 のポート 10000 番でGoogleに出ていくと、帰り道は 10000 番で帰ってくるので、10000 番で帰ってきたなら 192.168.0.1 という動きをします。

そのことを図にかいてみました(やばいここまで書いてもうまとめる気力が失われてきた…)

f:id:mominosin:20190213201310p:plain

試しに郵便に置き換えてみましたけど、もうやる気のない図になってきているのは許してください… f:id:mominosin:20190213205744p:plain

これらのポートという出口とプライベートIPアドレスの紐づけの働きをするのがルータという機械になります。
お家にホームルータ置いたり、モバイルルータ持ったりしてる方がいると思いますが、それらはすべて手元にプライベートネットワークを構築していることになります。

プライベートIPアドレスとグローバルIPアドレスを駆使して

この2つのアドレスを組み合わせるて43億個しかないIPアドレスを効率よく利用しています。

ユニファでは従業員が100名超えましたし、タブレットなどもたくさんありますが、それらはすべてプライベートIPアドレスを持っており、インターネットに接続するときは東京オフィスの契約しているグローバルIPアドレスからインターネットに接続して、東京オフィスのルータでポート番号が管理されていたりします。

例えばみなさんが持っているインターネットにつながってるスマートフォンも、携帯電話キャリアSIMを刺すことで携帯電話キャリアのプライベートIPアドレスが払い出されており、インターネットにアクセスするときは携帯電話キャリアの持っているグローバルIPアドレスでインターネットに接続しています。
モバイルルータなんかは、モバイルルータのプライベートネットワークと、携帯電話キャリアのプライベートネットワークとプライベートネットワーク同士で接続していたりしますよ。 プライベートネットワーク同士の通信も、グローバルIPアドレスとプライベートIPアドレスの通信方法となんら変わらないです。

ポートの小話

IPアドレス+ポートでインターネットの通信がされているといいました。 そのため、ポート番号がわからないとグローバルIPアドレスで接続した先の情報にアクセスできません。 なので、会社の外から192.168.0.100 にアクセスしたいと思っても普通じゃすることはできません。
(ルータも基本的に出ていくとき以外にポートの割当をしないので外から適当にポートを選択してもアクセスすることはできません)

しかし、ものによっては割り当てられているポート番号があります。 Googleにアクセスしたり、ユニファのHPにアクセスするときは、そのIPアドレス+443番または80番のポートでアクセスすることになります。その際は、IPアドレスの先に存在するルータが、80,443番で接続しにきた人はその番号に割りあたっているプライベートIPアドレス先へアクセスさせてくれます。
そのときアクセスできたデータがホームページであったりWebサービスであったりするのです。

おわり

ユニファ社員でネットワーク構成に詳しい人は、名古屋は東京オフィス経由でインターネットにつながってるから、直接インターネットに出てないじゃないっ!!
会社のファイルサーバにアクセスするためにVPNってものつかってる!!
みたいな事言う方がいらっしゃるかもしれませんがそれはまた別のブログにしようかなと思います…
長くなってきたのと、もう疲れたのでこれで終わります!!

ながくなってしまいましたが、最後まで読んでいただけた方ありがとうございました!