RON_wanwan
2021年02月25日更新 1338 Views

基本情報の勉強をしてみた  ④ネットワーク・IPアドレス

文系出身の私が、営業職として飛び込んだIT業界。現在育休中なので隙間時間にて改めてITのお勉強。。。難しいなと思ったポイントを備忘録として整理しておきます。

IPアドレスとは

無数のコンピューター、LAN間接続装置があるインターネット。この中で、IPアドレスはデータをきちんと送り届けるための住所のようなものである。具体的には、ネットワーク層(TCP/IPで言うインターネット層)で、IPアドレスを使いどのコンピューターに発信するのかを識別し、通信経路を確立している。

以下IPアドレスの例を、記載方法の1つである IPv4 で見ていく。
IPv4では、IPアドレスは32ビット構成され、8ビットずつをドットで区切り、10進数で表現している。
アドレスの総数は2の32乗個、おおよそ43億台のコンピューターがインターネットに直接接続できることとなる。

(例)
2進数    11000000 10101000 00000001 00000100
10進数  (192) (168) (1) (4)
→ IPアドレス 192.168.1.4

☆10進数への変換方法は文末に記載

IPアドレスはネットワーク部とホスト部に分かれる。
ネットワーク部ではどのネットワークかを指し示し、ホスト部ではネットワーク内のどのPCかを指し示している。(= どのネットワークの、どのコンピューターですよ〜、という住所が記載されている)
IPv4では下位8ビットがホスト部にあたる。

(例)
ネットワーク部 ホスト部
11000000 10101000 00000001 00000100
192.168.1.4

また、下記IPアドレスは既に用途が決められている。(配布不可)
・ホスト部のビットが全て ”0”= ネットワークアドレス
ネットワーク自体が示されているアドレス。
・ホスト部のビットが全て ”1”= ブロードキャストアドレス
このアドレスを使うとNW内すべての機器にブロードキャストされる。

・IPv4とIPv6
インターネットに接続するホストが世界中で増え続けたため、現在IPv4ではIPアドレスは足りなくなってきた。。。
そこで現在移行が進められているのが、 IPv6 である。
IPv6 は、128ビットで構成され、16ビットずつを : で区切り、16進数で表現する。
アドレスの総数は2の128乗となり、事実上無限のIPアドレスを割り振ることができる。これにより、IPv4がNAT経由でネットワークに繋がるのに対し、IPv6は各機器が直接インターネットに接続できるため、アクセス集中時でも速度低下を起こし難い。
加えて、IPv6ではMACアドレス(各端末・機器に割り当てられた固有識別子)を使って自動設定も行える。

上記利点から、GoogleやFacebookなども既にIPv6に対応している中だが、IPv4とIPv6の相互接続はできないため、まだまだIPv4が使われ続けているという現状である。

IPアドレスの種類

下記2種類がある。
①グローバルIPアドレス
インターネットに接続する際に割り振られるIPアドレスである。文字通り世界で通用するものであり、同じアドレスは存在しない。NICと呼ばれる非営利団体により管理されており、日本では、JPNICが管理し、ユーザーはインターネットサービスプロバイダから割り振られている。

②プライベートIPアドレス
LAN内で使用されるIPアドレスである。LAN内での識別ができれば良いので、他のLANのIPアドレスとの重複は気にせず、自由に割り振られる。

・プライベートIPアドレス から グローバルIPアドレス へ、どうやって繋げる?
LAN内のネットワークからインターネットへ接続する場面が考えられる。
その際はインターネットに直接接する機器(ルーターや公開サーバ)にだけグローバルIPアドレスを割り当て、Proxyサーバーやネットワークアドレス変換機能* を使うのが一般的である。

* ネットワークアドレス変換機能
 ①NAT(Network Address Translation):
グローバルIPアドレスとプライベートIPアドレスを1対1で変換。
インターネットに接続できる台数は割り当てられているグローバルIPアドレス分のみとなる。

②NAPT(Network Address Port Translation):
こちらが主流になりすぎて、NATとも言う笑
グローバルIPアドレスとプライベートIPアドレスを1対nで対応させる。IPアドレスとポート番号で通信を識別するため、複数の機器が同時にインターネットに接続でき、その上限はルーターが管理できる範囲となる。

サブネットマスク

IPv4のIPアドレスに対し、ネットワーク部とホスト部を定義することができる。
ネットワーク部は全て"1" ホスト部は全て”0”となる。

サブネットマスクを使うと、、、ビット単位で増減可能に。
・ホスト部を長くでき、接続できるコンピューターの数を増やすことができる
・ネットワーク部を長くでき、ネットワークを分割することができる

(例)
IPアドレス 192.168.1.4
サブネットマスク 255.255.255.0

→ 2進数に直してみる。
IPアドレス 11000000 10101000 00000001 00000100

→ 2進数に直してみる。
サブネットマスク 11111111 11111111 11111111 00000000

→ 2進数どうし比べてみる。
IPアドレス    11000000 10101000 00000001 00000100
サブネットマスク 11111111 11111111 11111111 00000000

→ サブネットマスクでは、ネットワーク部は全て"1" ホスト部は全て”0”となる、ため下記となる
IPアドレス    11000000 10101000 00000001 00000100
サブネットマスク 11111111 11111111 11111111 00000000
              ネットワーク部 ホスト部

・サブネットマスクの記載方法
上記のように、IPアドレスと並べて記載するのも良いが、下記表現もできる(CIDR表記)
192.168.1.4/24 (先頭から1が24個続いているという意味)

その他 補足

☆2進数を10進数に変換する方法

2進数    11000000 10101000 00000001 00000100

まず、各8ビットを下記のよう整理をする

(各位の数)11000000
(各位の重み)2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

次に、各位の数と重みを掛け合わせ、全て足しこむ

=1*2^7+1*2^6+0*2^5+0*2^4+0*2^3+0*2^2+0*2^1+0*2^0
=128+64
=192

(各位の数)10101000
(各位の重み)2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

=1*2^7+0*2^6+1*2^5+0*2^4+1*2^3+0*2^2+0*2^1+0*2^0
=128+32+8
= 168

(各位の数)00000001
(各位の重み)2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

= 0*2^7+0*2^6+0*2^5+0*2^4+0*2^3+0*2^2+0*2^1+1*2^0
= 1

(各位の数)00000100
(各位の重み)2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

各位の数と各位の重みをかけて、足し合わせる
= 0*2^7+0*2^6+0*2^5+0*2^4+0*2^3+1*2^2+0*2^1+0^2*0
=4

→ 順番に並べてみると、、、
10進数  (192) (168) (1) (4)
192.168.1.4 となる。

☆10進数を2進数に変換する方法

10進数   IPアドレス 192.168.1.4
→ 2進数に直してみる。

各数を2で割り切れなくなるまで割っていく

(192)

2)192
2)96... 0
2)48... 0
2)24... 0
2)12... 0
2)6... 0
2)3... 0
2)1... 1

最後の商ならびに、余を下から順に並べる
11000000

(168)

2)168 
2)84 ... 0
2)42 ... 0
2)21 ... 0 
2)10 ... 1
2) 5...0
2) 2...1
2) 1...0

最後の商ならびに、余を下から順に並べる
→ 10101000

(1)

... 1

最後の商ならびに、余を下から順に並べる
→ 00000001

(4)

2)4
2)2 ... 0
  1 ... 0

最後の商ならびに余を下から順に並べる
→ 00000100

→ 順番に並べてみると、、、
2進数 11000000 10101000 00000001 00000100

過去問

  • 基本情報技術者平成28年春期 午前問34

IPアドレス192.168.57.123/22 が属するネットワークのブロードキャストアドレスはどれか。

ア 192.168.55.255
イ 192.168.57.255
ウ 192.168.59.255
エ 192.168.63.255

ブロードキャストアドレスとは、、、2進数で、ホスト部が全て1になるものである
また今回のIPアドレス(192.168.57.123)は、ネットワークアドレス部が先頭より22ビット目まで、とのことなので、残り10ビットがホスト部となる。

→ なので、まず 57.123(下位 16ビット)を 2進数に。。
57.123 = 00111001 01111011 (2) となる

ブロードキャストアドレスはホスト部が全て”1”となるので
→ 下位10ビットを全て1に
00111011 11111111

→ 00111011 11111111 を10進数に戻すと
... 59.255

(答) ウ  192.168.59.255

  • 基本情報技術者平成26年秋期 午前問34

次のネットワークアドレスとサブネットマスクを持つネットワークがある。このネットワークを利用する場合PCに割り振ってはいけないアドレスはどれか。

ネットワークアドレス: 200.170.70.16
サブネットマスク  : 255.255.255.240

ア 200.170.70.17
イ 200.170.70.20
ウ 200.170.70.30
エ 200.170.70.31

まずは各アドレスを2進数に置き換える。
ネットワークアドレス
11001000 10101010 01000110 00010000

サブネットマスク
11111111 11111111 11111111 11110000

→ 2進数のアドレスを比べると、ホスト部が判明する。
11001000 10101010 01000110 00010000
11111111 11111111 11111111 11110000

→ 割り振ってはいけないアドレスとは、下記の2つである。
・ホスト部が全て"1" = ブロードキャストアドレス
・ホスト部が全て"0"= ネットワークアドレス

→ 各選択肢を見ていく。
ただすべての選択肢の上位24ビットは同じ値なので、無視。
下位8ビットのみを2進数に直していく。

ア ...17 00010001
イ ...20 00010100
ウ ...30 00011110
エ ...30 00001111

1111 は割り当て不可のブロードキャストアドレスである
 (答) エ

  • 基本情報技術者平成29年秋期 午前問35

次のIPアドレスとサブネットマスクを持つPCがある。このPCのネットワークアドレスとして、適切なものはどれか。

IPアドレス: 10.170.70.19
サブネットマスク:255.255.255.240

ア 10.170.70.0
イ 10.170.70.16
ウ 10.170.70.31
エ 10.170.70.255

まずは各アドレスを2進数に置き換える。
IPアドレス: 10.170.70.19
  00001010 10101010 01000110 00010011
サブネットマスク:255.255.255.240
11111111 11111111 11111111 11110000

あるIPアドレスがどのネットワークに属するかはIPアドレスとサブネットマスクをAND演算する。
00001010 10101010 01000110 00010011
11111111 11111111 11111111 11110000
→ 演算結果
00001010 10101010 01000110 00010000

→ 10進数表記にする
00001010 10101010 01000110 00010000
変更点は下位4ビットのみということに注目
ネットワークアドレス=10.170.70.16
(答) イ

関連記事

VPN、アプリケーションGW、RASなどネットワークセキュリティを図解。WAF、無線LANの暗号化なども含め、社内セキュリティの全体像を把握することを目指します。
2021年03月27日
プロキシサーバとリバースプロキシサーバの流れを図解。各々の機能・役割を含め把握することを目指します。
2021年04月03日
要求定義から始まり、設計、テストまでの大まかな流れを図解。外部設計と内部設計の違いを含め、各工程の作業内容を理解することを目指します。
2021年04月11日
代表的な図式手法となるUML、DFD、E-R図、決定表、状態遷移図を図解。各々の記載方法を含め理解することを目指します。
2021年07月11日
オブジェクト、属性、メソッド、カプセル化、クラスにインスタンス、独特な単語の意味を図解を含め整理。クラス図の書き方も含め、オブジェクト指向設計の基本を理解することを目指します。
2021年06月10日
ホームへ戻る