Linux研修【ハンズオン】
ネットワークの基礎を学ぼう︕ /ネットワークインターフェイスとDNSの設定
LinuC取得を⽬指す⼈を応援する情報サイト「リナスク」主宰
LinuCエバンジェリスト

⽔澤泰敬© LPI-Japan / EDUCO all rights reserved.

⾃⼰紹介n⽔澤泰敬（みずさわやすたか）
⽂系⼤学を卒業後、⽇経新聞関連企業、商社などへの転職を重ねたのち、フリーランスを経て有限会社を設⽴。10数年にわたり数々の情報まとめサイトの運営に携わる。サイト運営時に取材したキュレーションサイトへの転職、事業譲渡によるTSUTAYA関連企業への転籍を経て再度フリーランスとなる。2020年、⽇本のエンジニア育成に何らかのカタチで携わりたいと思い、エンジニアスクールで企業研修講師を務めながら約半年の準備期間を経てLinux技術者認定資格取得を⽬指す⼈を応援する情報サイト「リナスク」を⽴ち上げ。趣味はギターとテレビゲーム。
セミナー歴• 2021/1/30 OSC 2021 Online/Osaka 「LinuCの学習にも使える、ブラウザだけで使えるクラウド環境紹介ハンズオン」（LPI-Japanスポンサー枠）• 2021/3/26 LPI-Japan技術解説セミナー「Linux研修【ハンズオン】コンテナを体験してみよう︕」• 2021/7/31 OSC 2021 Online/Kyoto「LinuCの学習にも使える、ブラウザで動かすクラウドLinuxハンズオン」（LPI-Japanスポンサー枠）

Linux技術者認定資格取得を⽬指す⼈を応援する情報サイト
https://linuc.spa-miz.com/© LPI-Japan all rights reserved.

2

本セミナーの内容

今回のテーマネットワークの基礎を学ぼう︕ / ネットワークインターフェイ
スとDNSの設定• ハンズオンを通じて、ネットワーク関連コマンドを実⾏し、ネットワークの基礎に関する理解を深める• LinuCレベル1の出題範囲となっている「ネットワーク基礎」の学習に役⽴てる© LPI-Japan all rights reserved.

3

本セミナーの内容
n主題・内容 主題1.07︓ネットワークの基礎 副題1.07.2 基本的なネットワーク構成
 副題1.07.3 基本的なネットワークの問題解決
 副題1.07.4 クライアント側のDNS設定

nポイント
 ネットワークインターフェイスの設定とその確認
 ホストの基本的なTCP/IP設定、デフォルトルートの設定の確認
 ネットワークに関する問題の原因調査⽅法
 リモートDNSサーバーへの問い合わせ⽅法
 ホスト間のSSH接続

n参加者の想定スキルレベル
 LinuCレベル1の取得を⽬指している⽅nゴール
 ホスト上の設定を参照、変更、確認できる
 ネットワークに関する問題解決ができる コマンドを使⽤してネットワークの調査ができる
 DNSクライアントの設定ができる

ネットワークはLinuCレベル2でも⼤きく取りあげられており、サーバ構築においてもネットワークに関する理解は極めて重要です© LPI-Japan all rights reserved.

4

LinuCレベル１／レベル２ Version10.0とはnLinuCとはクラウド時代の即戦⼒エンジニアであることを証明するLinux技術者認定

ü現場で「今」求められている新しい技術要素に対応• オンプレミス／仮想化・コンテナを問わず様々な環境下でのサーバー構築• 他社とのコラボレーションの前提となるオープンソースへの理解• システムの多様化に対応できるアーキテクチャへの知⾒ü全⾯的に⾒直した「今」⾝につけておくべき技術範囲を網羅
今となっては使わない技術やコマンドの削除、アップデート、新領域の取り込みüLinuxの範疇だけにとどまらない領域までカバー
セキュリティや監視など、ITエンジニアであれば必須の領域もカバー© LPI-Japan all rights reserved.

5

クラウドを活⽤できるITエンジニアに必須の技術がまとまっている
AWSなどのパブリッククラウドを活⽤するための技術

AWSなどのパブリッククラウドを活⽤するための技術間が⽋けている状態

仮想マシン／コンテナ技術、クラウドセキュリティ、アーキテクチャ、ほか

オンプレミスのサーバーサイドLinux技術

オンプレミスのサーバーサイドLinux技術【今まで／その他】

Version10.0© LPI-Japan all rights reserved.

6LinuCを学習することの意味「LinuCレベル1 / レベル2」の認定を取得できるIT技術者であれば、どのような分野のIT技術者にもつながる技術を持っていることを証明できる

LinuCを学習することで、IT技術者として身に付けておきたい重要かつ基礎的なスキルを獲得できる© LPI-Japan all rights reserved.

7

Linux/LinuCの学習環境

n 実機

 Windows PCなどにLinux OSを直接導⼊
 外付HDD/SDDに導⼊して外付から起動すればWindowsを消さなくて済む

n 仮想環境 パソコンのホストOSはそのままにLinux仮想環境を導⼊ Virtual BoxやVagrantなどを利⽤

n クラウド型環境

 AWSやGCPの仮想マシンでLinux環境を構築（無料枠もあるが基本的には有料） Webブラウザで使えるクラウド型学習環境サービス（無料）→今回のハンズオンで使⽤

LinuCを取得するなら、実機、仮想、クラウド、それぞれを可能な限り試してみよう© LPI-Japan all rights reserved.

8

クラウド型学習環境

Katacodaとはnコンピュータ関連書籍を出版している⽶オライリー社が運営するWebブラウザベースのオンライン学習サービス
nテーマ毎に様々なシナリオが⽤意されており、トータルで300を超えるシナリオを無料提供
nサービス⾃体が仮想化技術で構築されている

https://www.katacoda.com/© LPI-Japan all rights reserved.

9

Katacodaを使うメリットとデメリット
メリット
nCentOSとUbuntu両⽅ともに⾃由度の⾼いインスタンスが利⽤可能
nLinuxインスタンスにあらかじめDockerが導⼊済みnコンテナ技術の学習コンテンツが豊富に⽤意されている
n無料（2021/7現在）

LinuC バージョン10.0 の学習に最適
デメリット
n時間制限があり、インスタンスを継続して利⽤できない
n極めて素のLinuxの動作に近いがなんらかの制限はある ターミナルでexitを⼊⼒するとインスタンスが終了してしまう
 Dockerでデタッチ（Ctrl+PのあとにCtrl+Q）するとインスタンスが終了してしまうなど© LPI-Japan all rights reserved.

10

Katacodaで使えるLinux環境•••

Ubuntu︓16.04, 18.04, 19.04, 20.04
CentOS︓7
Fedora︓ 30（2021/7現在）© LPI-Japan all rights reserved.

11

Katacodaの基本画⾯
学習⽤インスタンスは画⾯左の解説を読みながら、画⾯右のコンソールで操作します。

プレイグラウンドは解説がありません。画⾯右のコンソールで⾃分の好きなように操作します。

© LPI-Japan all rights reserved.

12LinuCレベル1 出題範囲の確認
n主題1.07︓ネットワークの基礎（重要度合計︓14） 60問中14問出題される（約23％、4分の1）

n副題1.07.1︓インターネットプロトコルの基礎（重要度︓4）
 TCP/IPネットワークの基礎を適切に理解していることを⽰すことができる。
- ネットワークマスクとCIDR表記法– サブネット化- プライベートとパブリックのドット区切り形式のIPアドレスの違い- ⼀般的なTCPおよびUDPのポート– 22/SSH, 25/SMTP, 53/DNS, 80/HTTP, 123/NTP, 443/HTTPS- UDP、TCP、およびICMPの違いや主な機能- IPv4とIPv6の主な違い- IPv6の基本的な機能© LPI-Japan all rights reserved.

13

LinuCレベル1 出題範囲の確認
n副題1.07.2 基本的なネットワーク構成（重要度︓4）
 ホスト上の設定を参照、変更、確認できる- ネットワークインターフェイスの設定を⼿作業および⾃動で⾏う• /etc/hostname• ifconfig, ifup, ifdown, nmcli• ip addr- ホストの基本的なTCP/IP設定• /etc/hosts, /etc/nsswitch.conf, ping
- デフォルトルートの設定• ip route, route© LPI-Japan all rights reserved.

14

LinuCレベル1 出題範囲の確認
n副題1.07.3 基本的なネットワークの問題解決（重要度︓4）
 ホスト上のネットワークに関する問題解決ができる- ネットワークに関する問題の原因を調査する• host, dig, ping, ping6, netcat(nc, ncat), netstat, ss• traceroute, traceroute6, tracepath, tracepath6- 必要に応じてネットワークインターフェイスの追加、起動、停⽌、再起動、削除、および再設定する• ifconfig, ifup, ifdown, hostname- ルーティングテーブルを変更、参照、設定し、不適切なデフォルトルート設定を⼿作業で訂正する• ip route, route© LPI-Japan all rights reserved.

15

LinuCレベル1 出題範囲の確認
n副題1.07.4 クライアント側のDNS設定（重要度︓2）
 DNSクライアントの設定ができる。

- リモートDNSサーバーに問い合わせる• host, dig- ローカルの名前解決の設定によりリモートDNSサーバーを使⽤する• /etc/resolv.conf- 名前解決の実⾏順序を変更する• getent, /etc/nsswitch.conf, /etc/hosts© LPI-Japan all rights reserved.

16

1.07.1︓インターネットプロトコルの基礎

nTCP/IP インターネットにおける標準プロトコル（4つの層でできている）
 TCP︓伝送内容を管理
IP︓データを⼩分け（パケット）にして送信 UDP︓スピードを優先させたいときに使⽤（⾳声通話、ストリーミング向け）
OSITCP/IP

主なプロトコル

5-7

アプリケーション層

HTTP,SMTP,DNS,SSHなど

4
3
1-2

トランスポート層
インターネット層
ネットワークインターフェース層(リンク層)

TCP,UDPなど
IP,ICMPなど
ARP,PPPなど© LPI-Japan all rights reserved.

17

1.07.1︓インターネットプロトコルの基礎
nIPアドレス︓ネットワークに接続された機器を識別するために割り当てられる番号11000000.10101000.00000000.00000001（2進数表記）
192.168.0.1（10進数表記）

nネットマスク︓ネットワークがどこまでなのかを（2進数表記の1を使って）表す
11000000.10101000.00000000.00000001 = 192.168.0.1
11111111.11111111.11111111.00000000 = 255.255.255.0

nサブネット（マスク）︓ネットマスクによってネットワークを分割する
11000000.10101000.00000000.00000001 = 192.168.0.1
11111111.11111111.11111111.11000000 = 255.255.255.192

nCIDR︓ネットマスクでネットワークを分割する⽅式の表記⼿法
IPアドレスの後ろに/を表記し、続けてサブネットマスクのビット数を表記
192.168.0.1/24を4つのサブネットに分割(256÷4＝64)
192.168.0.1/26,192.168.0.64/26, 192.168.0.128/26, 192.168.0.192/26© LPI-Japan all rights reserved.

18

1.07.1︓インターネットプロトコルの基礎

nウェルノウンポート → /etc/servicesファイルで確認可能
ポート番号
20
21
22
23
25
53
80
110
123
143
443
465
993
995

プロトコル
FTP(データ⽤)
FTP(制御⽤)
SSH
Telnet
SMTP
DNS
HTTP
POP3
NTP
IMAP
HTTPS
SMTPS
IMAPS
POPS

トランスポートプロトコル
TCP
TCP
TCP
TCP
TCP
UDP,TCP(ゾーン転送)
TCP
TCP
TCP
TCP
TCP
TCP
TCP
TCP
© LPI-Japan all rights reserved.

19

1.07.2 基本的なネットワーク構成

nホスト名の確認
 /etc/hostnameファイル- ホスト名が格納されているファイル- $ cat /etc/hostname

 hostnameコマンド- ホスト名を設定・変更する- $ hostname (現在のホスト名を表⽰)- # hostname xxx.yyy.zzz (引数をホスト名として設定。再起動で元に戻る)

 /etc/hostsファイル- ホスト名とIPアドレスの対応- $ cat /etc/hosts

 getentコマンド- ネームサービスのデータベースを表⽰- $ getent hosts (=cat /etc/hosts)- $ getent hosts [ホスト名/IPアドレス]- $ getent passwd

 /etc/nsswitch.confファイル- 名前解決の順番を指定- $ cat /etc/nsswitch.conf

 hostnamectlコマンド(試験範囲外)- ホスト名を管理- 引数無しでホスト名と関連情報を表⽰© LPI-Japan all rights reserved.

20

1.07.2 基本的なネットワーク構成

nネットワークの設定
NetworkManagerサービスで提供されるnmcli/nmtuiコマンドを使⽤

 nmcliコマンド- # nmcli general {status|hostname|hostname ホスト名}- # nmcli networking {on|off|connectivity [check]}- # nmcli radio {wifi [on|of]|wwan [on|off]|all [on|off]}- # nmcli connection {show [-active]|modify インターフェース パラメータ|{up|down} ID}- # nmcli device {status|show インターフェース|modify インターフェース パラメータ|{connect|disconnect} インターフェース|delete インターフェース|monitor インターフェース|wifi list|wifi connect SSID など}

 nmtuiコマンド- # nmtui※katacodaではUbuntu 18.04 以上のPlaygroundで実⾏可能。CentOS Playgroundではインストールが必要。
© LPI-Japan all rights reserved.

21

1.07.2 基本的なネットワーク構成

nネットワークの状況確認
 ipコマンドネットワークインターフェースやルーティングテーブルを管理- ip 操作対象 [サブコマンド]
IPアドレスの確認- $ ip addr show
- $ ip addr
- $ ip a

データリンク層の確認- $ ip link show
- $ ip link
- $ ip l

ルーティングテーブルの確認- $ ip route show
- $ ip route- $ ip r

IPアドレスの設定- # ip addr add 192.168.0.xxx/24 dev enp0s3
デフォルトゲートウェイの設定- # ip route add default via 192.168.0.xxx© LPI-Japan all rights reserved.

22

1.07.2 基本的なネットワーク構成

nネットワークの状況確認
 ifconfigコマンド

 routeコマンド

 ifup/ifdownコマンド

 pingコマンド（ICMP）

ネットワークインターフェースの設定や管理- ifconfig [ネットワークインターフェース] [パラメータ]
引数無しでネットワーク情報の表⽰- $ ifconfig
IPアドレスとサブネットマスクの設定- ifconfig eth0 192.168.0.xxx netmask
255.255.255.0- # ifup [ネットワークインターフェース]- # ifdown [ネットワークインターフェース]

ルーティングテーブルの確認- $ route- $ netstat -r と同じルーティングテーブルの編集- # route add- # route del –net
192.168.xxx.xxx netmask
255.255.255.0 dev xxx- ネットワークの疎通を確認- ping [オプション] ホスト名またはIPアドレス- $ ping -c 5 www.lpi.org© LPI-Japan all rights reserved.

23

1.07.3 基本的なネットワークの問題解決nネットワークの状況を表⽰
 netstatコマンド- TCP/UDPポート、ソケットの状態を表⽰- netstat [オプション]

オプション
内容-a
全てのソケット情報-i
ネットワークインターフェースの状態-l
待ち受けているポート-nアドレスやポートを数値で表⽰-p
PIDとプロセス名-r
ルーティングテーブルを表⽰-ttcpポートを表⽰-uudpポートを表⽰-4
ipv4を表⽰-6
ipv6を表⽰

 ssコマンド- TCP/UDPポート、ソケットの状態を表⽰- ss [オプション]

オプション
内容-a
全てのソケット情報-l
待ち受けているポート-nアドレスやポートを数値で表⽰-p
PIDとプロセス名-ttcpポートを表⽰-uudpポートを表⽰-4
ipv4を表⽰-6
ipv6を表⽰© LPI-Japan all rights reserved.

24

参考nnet-toolsパッケージとiprouteパッケージの⽐較
net-tools

iproute2ifconfig -a

ip addr show

ifconfig インターフェース {down|up}

ip link set インターフェース {down|up}

ifconfig インターフェース IPアドレス netmask ネットマスク値

ip addr add IPアドレス(/CIDR値) dev インターフェース

ifconfig インターフェース mtu mtu値

ip link set インターフェース mtu mtu値

netstat –r

ip route show

route

ip route show

route {add|del} default gw ゲートウェイアドレス

ip route {add|del} default via ゲートウェイアドレス

route {add|del} {–net|-host} 宛先 netmask gw ゲートウェイアドレス インターフェース

ip route {add|del} 宛先 via ゲートウェイアドレス

arp -aip neigh

netstat [-a,-n,-t,-u,-n]

ss [-a,-n,-t,-u,-n]※昨今はnet-toolsよりもiprouteパッケージの利⽤が推奨されているが、試験ではどちらも出題され同じ設定内容を選択する問題などが多い© LPI-Japan all rights reserved.

25

1.07.3 基本的なネットワークの問題解決

nネットワークの状況を表⽰
 tracerouteコマンド（ICMP) nmapコマンド

 tracepathコマンド nc(netcat)コマンド- ネットワークの経路を表⽰- traceroute ホスト名またはIPアドレス- ネットワークの経路を表⽰- tracepath ホスト名またはIPアドレス[/ポート番号] hostnameコマンド- オープンしているポートの状況を表⽰- nmap ホスト名

- TCP/UDPを使ったネットワーク通信を⾏う- オープンしているポートの状況を表⽰- nc [オプション] [ホスト名/IPアドレス] [ポート番号]- ホスト名の設定・変更- hostname ホスト名

© LPI-Japan all rights reserved.

26

1.07.4クライアント側のDNS設定

nリモートDNSサーバーに問い合わせ hostコマンド- host [オプション] ホスト名/ドメイン名/IPアドレス[DNSサーバ]- オプション

– -t ︓ タイプ︓検索タイプを指定– -C ︓ SOAレコードを表⽰- 検索タイプ– a ︓ Aレコード →IPｖ4アドレス– ns ︓ NSレコード →ネームサーバ– mx ︓ MXレコード →メールサーバ– soa ︓ SOAレコード →ゾーンの権威情報© LPI-Japan all rights reserved.

27

1.07.4クライアント側のDNS設定

nリモートDNSサーバーに問い合わせ digコマンド- dig [オプション] [@DNSサーバ] ホスト名/ドメイン名/IPアドレス [検索タイプ]- オプション
– -x︓

逆引きで問い合わせ- 検索タイプ– a ︓ Aレコード→IPｖ4アドレス– ns ︓ NSレコード→ネームサーバ– mx ︓ MXレコード→メールサーバ– soa ︓ SOAレコード→ゾーンの権威情報© LPI-Japan all rights reserved.

28

1.07.4クライアント側のDNS設定

n問い合わせるDNSサーバーの指定
 /etc/resolv.confファイル- domain︓⾃分が所属するドメイン名を指定（ドットがない）- search︓所属ドメイン名に付加するドメイン名を指定- nameserver︓問合せするDNSサーバのIPアドレスを指定（最⼤3つ）

n名前解決の実⾏順序を変更
 /etc/nsswitch.confファイル- grep hosts /etc/nsswitch.conf
hosts:
files dns mymachines（左から右に順に参照する）© LPI-Japan all rights reserved.

29

まとめ
nハンズオンで実⾏したネットワーク関連コマンド、確認した関連ファイルの内容
 ホスト名の確認（/etc/hostname,hostname,/etc/hosts,getent,/etc/nsswitch.conf）
 ネットワークの設定（nmcli,nmtui）
 ネットワークの状況確認（ip,ifconfig,route,ping）
 ネットワークの状況表⽰（netstat,ss,traceroute,tracepath,nmap,nc）
 リモートDNSサーバーに問い合わせ（host,dig） 問い合わせるDNSサーバーの指定と名前解決の実⾏順序を変更（/etc/resolv.conf,/etc/switcg.conf）

nクラウド型の学習環境を使うと、数ステップでLinuxを操作できる。思い⽴った時にすぐに使える。ネットワークコマンドの実⾏や各種サーバ構築など、踏み込んだ学習も可能だ
が、時間的な制約があるため、継続性が要求される内容の学習は難しい。使い捨て感覚で利⽤する⽅が精神衛⽣上も良い。メリットとデメリットをしっかし把握した上で、実機環境と使い分けてカジュアルに活⽤したい。
nクラウドの次は、実機や仮想環境でさらに突っ込んだ検証をオススメ。
© LPI-Japan all rights reserved.

30