SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【LPIC102】Linuxにおけるネットワークの基礎知識 LPICで学ぶLinux12

Linuxにおけるネットワークの基本

ネットワークの学習を本格的にし始めると、基本的なことであってもいくつも記事が必要になりますので、LPICレベル1の試験に必要な部分に絞っていきます
また、試験範囲内のことであっても一部の基本的な内容は割愛しますので、そもそもネットワークの基礎知識が不十分な場合には別途学んだ方が効率がよいかもしれません。

基本プロトコル

LPICに登場する基本的なプロトコルについて簡単に触れておきます。

■TCP

Transmission Control Protocolと呼ばれる信頼性の高い通信を実現する際に使用されるコネクション型のプロトコルです。
その他のプロトコルの上位プロトコルとして使用されます。

■UDP

User Datagram Protocolと呼ばれるコネクションレス型のプロトコルです。
TCPと比較して通信の不確実性はあるもののデータは軽量で転送速度が速いためストリーミング用のアプリケーションなどで使用される。

■IP(IPv4)

Internet Protocol version 4と呼ばれ、一般的には単にIPとも呼ばれる最も基有名なプロトコルの一つです。
TCPなどのデータ転送をつかさどるコネクションレス型プロトコルです。

■IPv6

Internet Protocol Version 6と呼ばれるIPv4の後継プロトコルです。
IPアドレスの枯渇に備え、128bitまで拡張したプロトコルで、IPv4と比較して以下のような特徴があります。

・IPアドレスの省略表記が可能
・IPアドレスの自動割り当て機能を標準で実装
・IPsec(暗号化通信)を標準で実装

アドレスの省略記法とかも出題範囲になるのかな?

IPアドレスのクラス

IPはいくつかのクラスに分類されています。
LPICでも出題範囲になっているようなので不安がある場合はここで押さえておきましょう。

クラス IP範囲 サブネット 先頭ビット表現
クラスA 0.0.0.0 ~ 127.255.255.255 255.0.0.0 0000
クラスB 128.0.0.0 ~ 191.255.255.255 255.255.0.0 1000
クラスC 192.0.0.0 ~ 223.255.255.255 255.255.255.0 1100
クラスD 224.0.0.0 ~ 239.255.255.255 1110
クラスE 240.0.0.0 ~ 255.255.255.255 1111

クラスA~Cが一般的なIPアドレスに使用されるクラスで、クラスDがIPマルチキャスト、クラスEが研究用途に確保されたアドレスになります。
クラスの範囲が覚えられない場合には先頭ビットを把握してその場で算出するでもよさそうです。

また、クラスA~Cには以下のようにプライベートアドレスとして割り当てられる範囲が決まっています。

クラス IPアドレス範囲
クラスA 10.0.0.0 ~ 10.255.255.255
クラスB 172.16.0.0 ~ 172.31.255.255
クラスC 192.168.0.0 ~ 192.168.255.255

実業務などで使用することも多いアドレス帯なので個人的には割と覚えやすいような気もします。

ポート

各種サービスなどを提供するポート番号は使用用途によって範囲が定められています。

名称 ポート範囲 備考
ウェルノウンポート 0~1023 システムやroot権限を持つプロセスのポート番号
ユーザポート 1024~49151 よく使用されるサービスに提供されるポート番号
エフェメラルポート 49152~ 65535 自由に使用可能なポート番号

最低限覚えておくべきはウェルノウンポートのポート範囲とかでしょうか。あとは原則root権限のみで使用可能という点。
ウェルノウンポートに割り振られるプロトコル(サービス)は試験範囲では本当に一般的なものが多いのでここでは割愛。
普段からシステム開発や運用をやっていれば特に困らないはず。
参考:Linux - インターネットプロトコルの基礎

なお、ポートとサービスの関連付けについては「/etc/services」に記述されている。
以下は私の環境の一部抜粋。

[wantan@localhost ~]$ head -50 /etc/services | tail -10
ftp-data        20/tcp
ftp-data        20/udp
# 21 is registered to ftp, but also used by fsp
ftp             21/tcp
ftp             21/udp          fsp fspd
ssh             22/tcp                          # The Secure Shell (SSH) Protocol
ssh             22/udp                          # The Secure Shell (SSH) Protocol
telnet          23/tcp
telnet          23/udp
# 24 - private mail system

ネットワークの基本設定ファイル

ここではLinuxシステムにおいて、ネットワーク設定を行う基本的なファイルを確認します。

/etc/hostname

/etc/hostname」ファイルはその名の通りホスト名を設定するファイルです。
Debian系や新しめのREHL系のディストリビューションで採用されているようで、一部のディストリビューションでは存在しない可能性があります。

[root@localhost etc]# cat /etc/hostname
localhost.localdomain

ホスト名の確認、変更を行うには「hostname」コマンドが存在しますが、こちらは一時的な変更を行うものです。
なので、設定ファイルはコマンドによって変更されません。

[root@localhost etc]# hostname testserver
[root@localhost etc]# hostname
testserver
[root@localhost etc]# cat /etc/hostname
localhost.localdomain

恒久的に変更を行いたい場合には、「hostnamectl」コマンドを使用します。
こちらの場合にはコマンドの実行により、設定ファイルにも反映されます。

[root@localhost etc]# hostnamectl set-hostname server.test
[root@localhost etc]# cat /etc/hostname
server.test

恒久的な変更を行う場合には、設定ファイルを直接編集してもよいみたいです。

/etc/sysconfig/network

/etc/sysconfig/networkはネットワーク機能や、デフォルトゲートウェイを指定する設定ファイルです。

・ファイルの設定例
適当に書いたので動かすことは想定していません。

# Created by anaconda
NETWORKING=yes
HOSTNAME=host1.domain.name
DOMAINNAME=domain.name
GATEWAY=192.168.1.1
/etc/hosts

有名な(?)hostsファイル。
IPアドレスとホスト名を紐づける。

書式は以下の通り。

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.1 test-server
/etc/nsswitch.conf

ネットワークデータベースの検索順序を定める設定ファイル。
試験的には主に名前解決の順序を設定するファイルとして登場することが多いみたいです。

・ファイル例の抜粋

hosts:      files dns

dnsはそのまま設定されているDNSサーバ、fileはhostsファイルを指しています。

/etc/resolv.conf

/etc/resolv.confはレゾルバの設定ファイルで、試験的にはDNSサーバの設定ファイルと考えてほぼ違いないでしょう。
主要な設定項目は以下の通りです。

[root@server wantan]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain test
nameserver 192.168.142.2
domain wantan.server

「search」は名前解決の際に省略するドメイン名のリスト、「domain」はサーバ自身の所属ドメイン、「nameserver」は名前解決を行うDNSサーバを指定します。
とにもかくにも、DNSサーバの設定を必須で押さえておけば試験的には問題ない気もします。

実践では間違えることはない気がしますが、試験的にはNTPの設定では「server」なのに対してDNSでは「nameserver」になります。
※私が問題演習をやっているときに勘違いした

NetworkManager

NetworkManagerは動的にネットワークを管理する仕組みのことです。
RHEL系ディストリビューションでは、initスクリプトによる設定の代わりとしても導入されているようです。

このNetworkManagerをコマンドラインで操作するコマンドとしてnmcliが存在します。
試験範囲の対象だけでもサブコマンドなどが比較的多く存在するので、実際にあまり使ったことがない場合にそのまま覚えるとなると難所の一つになりそうな気がします。

nmcliコマンドは次の書式となります。

nmcli [オブジェクト] [サブコマンド]

以下、オブジェクトごとにみていきます。

general オブジェクト

generalオブジェクトはNetworkManager全体の管理・参照を行います。
オブジェクトの指定は「g」で省略可能。

サブコマンド 内容
status NetworkManagerの状態を表示する
hostname ホスト名の表示変更

このコマンドでのホスト名変更は「hostnamectl」と同様に設定ファイルまで変更が反映されるようです。

・NetworkManagerの状態を表示する

[root@server wantan]# nmcli general status
STATE     CONNECTIVITY  WIFI-HW  WIFI  WWAN-HW  WWAN
接続済み  完全          有効     有効  有効     有効
networking オブジェクト

networkingオブジェクトはネットワーク全体の状態を表示、設定するオブジェクトです。
オブジェクトの指定は「n」で省略可能。

サブコマンド 内容
on ネットワークを有効にする
off ネットワークを無効にする
connectivity ネットワーク状態を表示する

・ネットワークの状態を表示する

[root@server1 wantan]# nmcli networking connectivity
full

ネットワーク状態を表す表示また少し覚えにくく注意が必要です。

full:インターネットにアクセス可能なネットワークに接続している
portal:インターネットにアクセス前の状態
※認証が必要な場合の認証前など
limited:インターネットできないネットワークに接続している
none:ネットワークに接続していない
unknown:接続状態が見つからない

・ネットワークを無効にする

ネットワークは無効にすると、sshなどでサーバに接続して使用していると通信が切れてしまうので検証には少し注意が必要です。

[root@server1 wantan]# nmcli networking off
[root@server1 wantan]# nmcli networking connectivity
none
radioオブジェクト

radioオブジェクトは主にwifiの管理を行うオブジェクトです。
オブジェクトの指定は「r」で省略可能。
※正確には無線スイッチの管理を行うコマンドのようです

サブコマンド 内容
wifi wifiの状態を表示
wifi on wifi接続を有効化する
wifi off wifi接続を無効化する

・wifi接続の状態を表示する

[root@server1 wantan]# nmcli radio wifi
enabled

・wifi接続を無効化する

[root@server1 wantan]# nmcli radio wifi off
[root@server1 wantan]# nmcli radio wifi
disabled
connection オブジェクト

connection オブジェクトはNetworkManagerの接続状況を管理します。
オブジェクトの指定は「c」で省略可能。

サブコマンド 内容
show 接続状態の表示
modify 指定した接続IDのパラメータを変更する
up 接続の有効化
down 接続の無効化

・接続状態の表示

[root@server1 wantan]# nmcli connection show
NAME   UUID                                  TYPE      DEVICE
ens33  23208ca5-7cd4-438b-bb68-782a5f57883a  ethernet  ens33

・特定インタフェースの接続を切る
こちらもsshなどで接続して操作している場合には、インタフェースの指定によっては接続がきれます。

[root@server1 wantan]# nmcli connection down ens33

・IPアドレスの変更
試験の参考までにということで、ほんとに変更したい場合にはすいませんが他で調べ直した方がいいかもしれません。
設定を反映させるためには設定後にconnection upが必要とのこと。

[root@server1 wantan]# nmcli connection modify ens33 ipv4.addresses 192.168.1.1/24
device オブジェクト

device オブジェクトはNetworkManagerにおけるデバイスの管理をします。
オブジェクトの指定は「d」で省略可能。

サブコマンド 内容
status デバイスの状態表示
show 指定デバイスの情報を表示
modify 指定デバイスのパラメータを変更
connect 指定デバイスに接続
disconnect 指定デバイスを切断
delete 指定デバイスを削除
monitor 指定デバイスをモニタリング
wifi list wifiのアクセスポイントを表示
wifi connect wifiのアクセスポイント(SSID)に接続
wifi rescan wifiのアクセスポイントを再検索

・デバイスの状態を表示

[root@server1 wantan]# nmcli device status
DEVICE  TYPE      STATE     CONNECTION
ens33   ethernet  接続済み  ens33
lo      loopback  管理無し  --

・特定デバイスの詳細情報を表示する

[root@server1 wantan]# nmcli device show ens33
GENERAL.DEVICE:                         ens33
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:24:A6:01
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     ens33
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveCo
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         192.168.1.2/24
IP4.ADDRESS[2]:                         192.168.142.11/24
IP4.GATEWAY:                            192.168.142.2
*****省略*****

・デバイスのモニタリングを行う
いまいちちゃんとした使い方がわからんー。

[root@server1 wantan]# nmcli device monitor ens33


・前回(第十一回)
www.wantanblog.com


・次回(第十三回)
www.wantanblog.com