LinuCレベル1合格教本で、勉強を進める。
今回は、『第7章 ネットワークの基礎』である。
今回は、『第7章 ネットワークの基礎』である。
7.1 インターネットプロトコルの基礎
7.1.1 TCP/IPの通信フロー
- TCP/IPにおける4つの層
- アプリケーション層
- トランスポート層:ポート番号など
- インターネット層:IPアドレスなど
- ネットワークインターフェイス層:MACアドレスなど
表7.1 主な各層の通信プロトコル
アプリケーション層 | FTP, SSH, Telnet, SMTP, DNS, HTTP, POP3, IMAP4, NTP, HTTPS |
トランスポート層 | TCP, UDP |
インターネット層 | IP, ICMP, ARP |
ネットワークインターフェイス層 | Ethernet, IEEE802.11, PPP |
表7.2 主なウェルノウンポート
ポート番号 | アプリケーション | ポート番号 | アプリケーション |
20 | FTP(データ用) | 143 | IMAP |
21 | FTP(制御用) | 161 | SNMP |
22 | SSH | 162 | SNMP Trap |
23 | Telnet | 389 | LDAP |
25 | SMTP | 443 | HTTPS |
53 | DNS | 465 | SMTPS |
80 | HTTP | 514 | syslog |
110 | POP3 | 636 | LDAPS |
123 | NTP | 993 | IMAPS |
139 | NBT Session | 995 | POP3S |
7.1.2 IPv4アドレスとネットワーク構成
- IPアドレスには、IPv4とIPv6がある。
- IPv4アドレスは32ビットで構成されており、これを8ビット(オクテット)ずつ10進数に置き換えて、IPアドレスとサブネットマスクで次にように構成する。
IPアドレス:192.168.56.11
サブネットマスク:255.255.255.0(=/24) - サブネットマスクは、ホストのネットワークを表すアドレス範囲を指定する。
表7.3 192.168.56.0/24のアドレス構成
192.168.56.0/24 | ネットワークアドレス | 192.168.56.0 |
ホストアドレス | 192.168.56.1〜254 | |
ブロードキャストアドレス | 192.168.56.255 |
7.1.3 IPアドレスクラスとサブネット分割
表7.4 IPアドレスクラスと対応するプライベートアドレス
クラス | 第1オクテット(2進数での先頭部分) | デフォルトマスク |
A | 0〜127(0〜) | 255.0.0.0(/8) |
B | 128〜191(10〜) | 255.255.0.0(/16) |
C | 192〜223(110〜) | 255.255.255.0(/24) |
- サブネット分割:本来ホストアドレス部だった部分をネットワークアドレス部として利用する方法。サブネット分割すると、利用できるネットワークの数が増える。その分、各ネットワークにおけるホスト数は減る。
表7.6 第4オクテット部分のサブネット分割実行時のネットワーク数とホスト数
マスク値 | 分割後のネットワーク数 | 各ネットワークの最大ホスト数 |
/25 | 2(2^1) | 126(2^7-2) |
/26 | 4(2^2) | 62(2^6-2) |
/27 | 8(2^3) | 30(2^5-2) |
/28 | 16(2^4) | 14(2^4-2) |
/29 | 32(2^5) | 6(2^3-2) |
/30 | 64(2^6) | 2(2^2-2) |
- IPv4アドレスには、プライベートアドレスとグローバルアドレスという分類もある。
- グローバルアドレス:インターネット上に公開されているホストが利用するアドレスであり、ICANNという組織により管理されている。
- プライベートアドレス:LAN内でのみ使用し、インターネットなど外部ネットワーク側からホストを特定する必要がない場合に利用する。
- グローバルアドレスはインターネット上に公開するサーバーやルーターのインターネット側のインターフェイスに割り当てられ、プライベートアドレスはLAN内のホスト用のアドレスに割り当てられるのが一般的。
表7.7 IPアドレスクラスごとのプライベートアドレス範囲
クラス | プライベートアドレス範囲 | デフォルトマスク |
A | 10.0.0.0〜10.255.255.255 | 255.0.0.0(/8) |
B | 172.16.0.0〜172.31.255.255 | 255.255.0.0(/16) |
C | 192.168.0.0〜192.168.255.255 | 255.255.255.0(/24) |
表7.8 特殊な用途で使用されるアドレス
アドレス範囲 | 用途 |
127.0.0.0/8 | ループバックアドレス(ホスト自身を表すアドレス、一般的には127.0.0.1を利用) |
169.154.0.0./16 | APIPA(DHCPサーバーからアドレスを取得できなかった場合に自動構成されるアドレス) |
7.1.4 IPv6アドレス
- IPv6アドレスは128ビットで構成され、これを8ビットずつ16進数に置き換えて構成する。
2001:0db8:dead:beef:cafe:0000:0000:1234/64- 先頭の0は表記を省略できる
- 0しか書かれていない数値列(ゼロフィールド)はまとめて省略できる
- ゼロフィールドが離れた場所に複数存在している場合は、片方しか省略できない
- IPv6アドレスでは、プレフィックス値を使用してネットワークアドレス部とホストアドレス部を特定する。
表7.9 IPv6アドレスのスコープ
スコープの種類 | アドレス | 用途 |
グローバル | 2000::/3 | インターネットで一意に利用。IPv4でのグローバルアドレスに相当。 |
ユニークローカル | fc00::/7 | 組織内のネットワークで一意に利用。IPv4でのプライベートアドレスに相当。 |
リンクローカル | fe80::/10 | 同一ネットワークで一意に利用。IPv4でのリンクローカルアドレス(APIPAで生成されるアドレス、169.254.0.0/16に相当) |
- ip addrで確認できる。
- enp0s3:仮想マシン同士の接続で利用するインターフェイス
- enp0s8:インターネットなど外部ネットワークへの接続で利用するインターフェイス
7.2 基本的なネットワーク構成
7.2.1 ホスト名の設定
- /etc/hostnameファイル:ホスト名の確認・設定
- hostname [ホスト名]:ホスト名の確認・設定
7.2.2 TCP/IPの基本的な設定
- nmcli オブジェクト [サブコマンド] [引数]:NetworkManagerを利用したネットワーク機能の確認・設定
- 主なサブコマンド
connection:接続情報の管理。インターフェイスの設定など
general:NetworkManagerサービスの管理
device:デバイスの管理 - 主なサブコマンド
show:設定を参照
modify:設定を変更
up:接続の有効化 - nmcliコマンドを利用すると、異なる環境でも同じ方法で設定変更ができる。
- 主なサブコマンド
- ip [オプション] サブコマンド:インターフェイスやルーティング設定を確認・設定
- addr:IPアドレスに関する情報を表示・設定。以下のサブコマンドで処理を指定
- show [インターフェイス名]:設定情報を表示。インターフェイス名を指定できる。
- add IPアドレス/マスク dev インターフェイス名:IPアドレスを設定
- del IPアドレス/マスク dev インターフェイス名:IPアドレスを削除
- route:ルーティングテーブルに関する情報を表示・設定。以下のサブコマンドで処理を指定(アドレス部分にdefaultと記述するとデフォルトゲートウェイの指定)
- add IPアドレスまたはネットワークアドレス/マスク via 転送先:IPアドレスを設定
- del IPアドレスまたはネットワークアドレス/マスク:IPアドレスを削除
- addr:IPアドレスに関する情報を表示・設定。以下のサブコマンドで処理を指定
- systemctl restart network:networkサービスの再起動。
- ifconfig [オプション] [インターフェイス名] [IPアドレス [netmask サブネットマスク]] [up/down]:インターフェイスの設定を確認、設定する。
- ifup インターフェイス名:インターフェイスの有効化
- ifdown インターフェイス名:インターフェイスの無効化
表7.10 同じ目的に利用可能なコマンドの例
iprouteパッケージ | net-toolsパッケージ | |
インターフェイス/IPアドレスの参照・設定 | ifconfig, ifup, ifdown | ip |
ルーティングテーブルの参照・設定 | ip route | route |
ネットワーク接続情報の確認 | ss | netstat |
ss | netstat |
7.2.3 ルート情報の設定
- ip route:ルート情報の参照・設定
- このルート情報をルーティングテーブルという。
- 行頭がdefaultとなっているのがデフォルトゲートウェイアドレス。
- route (表示)
route add -net ターゲット netmask マスク gw ゲートウェイ / default gw ゲートウェイ (追加)
route del -net ターゲット / default (削除)
:ルート情報の設定・参照
7.3 基本的なネットワークの問題解決
7.3.1 疎通確認によるトラブルシュート
- ping [オプション] 宛先:宛先となるホストと疎通確認を行う。
-c:指定した回数、パケットを送信 - pingコマンドを実行すると、ICMPパケットを送信して疎通確認を行う。
表7.11 主なICMPメッセージタイプ
メッセージタイプ | 意味 |
0:エコー応答 | pingパケットを受信したホストが返す応答メッセージ |
3:宛先到達不能 | 途中経過などでの設定ミスなどにより、目的のホストにメッセージを送ることができない場合に帰ってくるメッセージ |
8:エコー要求 | pingを実行したときに送られるエコー応答を要求するメッセージ |
11:時間経過 | 経由したルーターが多すぎるなど、目的のホストにメッセージを送ることができない場合に返ってくるメッセージ |
- traceroute [オプション] 宛先:宛先となるホストに到達するまでの経路(ルーター)の情報を出力
-I:ICMPエコー要求による経路を確認(既定ではUDPで経路を確認) - tracepath [オプション] 宛先:宛先となるホストに到達するまでの経路(ルーター)の情報をMTUとともに出力
※ ping、traceroute、tracepathコマンドは、そのままではIPv6アドレスに対応していない。
→ ping6、traceroute6、tracepath6
→ ping6、traceroute6、tracepath6
7.3.2 TCP/IP通信の状態を確認
- ss [オプション]:TCP/IP通信の状態を表示
-a:待機ポートも含むすべての状態の通信を表示(-lを指定しなかった場合、確立した通信のみ表示)
-l:待機(LISTEN)ポートを表示
-n:名前解決をせずに表示
-t:TCP通信を表示
-u:UDP通信を表示
-p:対応するプロセスのID(PID)を表示 - netstat [オプション]:TCP/IP通信の状態を表示
7.3.3 指定したポートへの接続
- nc [オプション] 宛先 [ポート番号]:指定したポートへの接続、もしくは指定したポートを待ち受け
-l:指定したポートを待ち受ける- [root@centos7 ~]# nc -l 2323
- root@debian10:~# nc 192.168.56.11 2323
test
^C(Ctrl+C)
7.4 クライアント側のDNS設定
7.4.1 名前解決の設定
- TCP/IPネットワークでは、IPアドレスの他に、ホスト名を指定して接続することも可能。
- ホスト名をIPアドレスに変換することを、名前解決という。
名前解決の順番
- 端末上に存在する/etc/hostsファイルの情報を参照し、名前解決
- /etc/resolv.confファイルに指定されたDNSサーバーに問い合わせて名前解決
この処理順は、/etc/nsswitch.confファイルで以下のように定義されている。
[root@centos7 ~]# grep ^host /etc/nsswitch.conf
hosts: files dns myhostname
hosts: files dns myhostname
- /etc/nsswitch.conf
書式:システムデータベース:サービス [サービス・・・]
概要:ネームサービススイッチの設定 - /etc/hosts
書式:IPアドレス ホスト名 [ホスト名・・・]
概要:IPアドレスとホスト名の関連付け
補足:同じIPアドレスに対して複数のホスト名を関連付けることができる - 本格的に名前解決の運用を行う場合、DNSサーバーによる名前解決を利用する。
- DNSによる名前解決では、FQDN(完全修飾ドメイン名)とIPアドレスを解決する。
- FQDNとは、ドメイン名が付いたホスト名のこと。
- 正引き:FQDNからIPアドレスを問い合わせる名前解決
- 逆引き:IPアドレスからFQDNを問い合わせる名前解決
- DNSによる名前解決では、FQDN(完全修飾ドメイン名)とIPアドレスを解決する。
- /etc/resolv.conf
書式:設定項目 値
概要:DNSサーバー/クライアント設定
設定項目:
searchもしくはdomain->ドメイン名として補完(両方設定された場合はsearchを優先)
nameserver->DNSサーバーアドレス - nmcliコマンドによるDNSサーバーの設定も可能。
7.4.2 名前解決の検証
- host [オプション] 名前 [DNSサーバー]:名前解決を検証し、簡易的な情報を出力
-t レコード:問い合わせるレコードの種類を指定 - dig [オプション] [@サーバー] 名前 [レコード]:名前解決を検証し、詳細な情報を出力
-x:逆引きの問い合わせ(PTRレコードの問い合わせ)を実行 - nslookup [オプション] 名前 [DNSサーバー]:名前解決を検証し、簡易的な情報を出力
-type=レコード:問い合わせるレコードの種類を指定
演習問題
- D→❌A
- C,D,E→❌A,B,E
- 253→❌61
- 25→◯
- C→◯
- C→❌B,C
- C→❌A
- A,D→◯
- B,C→◯
- B→◯
- D→❌B
- D→◯
- B→◯
- A,C→❌A,D
7/14=0.5(50%)
全然駄目だ😭
ネットワーク関係はやはり難しい😵
※コメント投稿者のブログIDはブログ作成者のみに通知されます