LinuC レベル2
技術解説セミナー
主題2.03︓ネットワーク構成

2023/04/23（Sun） 13:00-14:15
LPI-Japanプラチナスポンサー 株式会社ゼウス・エンタープライズ
鯨井 貴博（LinuCエヴァンジェリスト）© LPI-Japan / EDUCO all rights reserved.

Who are you?（講師紹介）
鯨井貴博

LPI-Japan プラチナスポンサー
LinuCエヴァンジェリスト

株式会社ゼウス・エンタープライズ

Linuxとの出会い

⼤学時代 Unixの存在を知り、⽇経Linuxを読み始める。
2000年にVine Linux 2.0で⼀度挫折を経験。
その悔しさを忘れきれず、2007年 他業種からIT業界に転職しLinuxに再チャレンジ。
SE・商⽤製品サポート・インストラクター・プロジェクト管理などを経験し、現在に⾄る。
⾃分⾃⾝が学習で苦労した経験から、初⼼者を含む受講者に分りやすい講義を⾏うように⼼がけている。
また、興味の向くIT技術・オープンソースソフトウェアなどについて、Opensourcetehブログ（https://www.opensourcetech.tokyo/）で執筆中。
実際に⾃分でやってみる/使ってみる・開発者本⼈から話を聞いてみることを⼤切にしています。

Linus Torvaldsさん(Linux開発者)

Igor Sysoevさん(nginx開発者)

Alexei Vladishevさん(Zabbix開発者)© LPI-Japan / EDUCO all rights reserved.

2

Who are you?（講師紹介）
Open Source Summit Japan 2022 & KubeDay Japan 2022

Open Source Summit Japan 2022にイベント運営ボランティアリーダーとして参加してきた︕© LPI-Japan / EDUCO all rights reserved.
3

Who are you?（講師紹介）
DualStack(IPv4 & IPv6)のkubernetesクラスター構築(v1.26.00・ubuntu22.04)
https://www.opensourcetech.tokyo/entry/20230314/1678782139
MetalLBとService(type:LoadBalancer)による外部クライアントへのサービス公開(kubernetes v1.26.00 on ubuntu22.04)
https://www.opensourcetech.tokyo/entry/20230316/1678966960
NGINX Ingress Controller + Ingressによるサービス公開(kubernetes v1.26)
https://www.opensourcetech.tokyo/entry/20230317/1679054672
nginxコンテナ(Pod)のコンテンツ(index.html)をConfigMapで提供・更新する(kubernetes)
https://www.opensourcetech.tokyo/entry/20230319/1679224123
kubectl topコマンドを実施する(metrics-serverの導⼊)
https://www.opensourcetech.tokyo/entry/20230326/1679832639
kubernetesにおけるPodへの負荷分散状況の確認(Service/Deployment経由)
https://www.opensourcetech.tokyo/entry/20230326/1679837870

最近は、kubernetesをよく触ってます︕

kube-proxyのmodeをiptablesからipvsに変更する
https://www.opensourcetech.tokyo/entry/20230327/1679919167
kubernetes dashboardを使う
https://www.opensourcetech.tokyo/entry/20230329/1680093328
Network Policyによるトラフィック制御(kubernetes)
https://www.opensourcetech.tokyo/entry/20230331/1680263776© LPI-Japan / EDUCO all rights reserved.

4

ゼウス・エンタープライズの提供サービス
提供するITサービス

https://www.zeus-enterprise.co.jp/solution/service/© LPI-Japan / EDUCO all rights reserved.

5ゼウス・エンタープライズからの提供サービス
⼩学⽣向けプログラミング教室

https://www.it-training.tokyo/kids/index.html© LPI-Japan / EDUCO all rights reserved.

6

ゼウス・エンタープライズからの提供サービス
貸し会議室

https://www.zeus-enterprise.co.jp/ikebukuro_office/https://ginza168.tokyo/© LPI-Japan / EDUCO all rights reserved.

7

アジェンダ
1. LinuCについて

試験概要と特徴2.

技術解説

主題2.03︓ネットワーク構成- 2.03.1 基本的なネットワーク構成- 2.03.2 ⾼度なネットワーク構成- 2.03.3 ネットワークの問題解決

3.

Appendix

4.

お知らせ

5.

Q&A

© LPI-Japan / EDUCO all rights reserved.

8

本⽇のゴールØLinuxの基本的なネットワーク設定を理解するØ

ルーティングテーブルの操作を理解するØ

ネットワーク関連のツールの使⽤⽅法を理解するØ

ネットワーク関連のトラブルシュート⽅法を理解する© LPI-Japan / EDUCO all rights reserved.

9LinuC について

© LPI-Japan / EDUCO all rights reserved.

10LinuCレベル１／レベル２ Version10.0とは

nLinuCとは
クラウド時代の即戦⼒エンジニアであることを証明するLinux技術者認定

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

11

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

AWSなどのパブリッククラウドを活⽤するための技術

間が
⽋けて
いる状態

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

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

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

Version10.0© LPI-Japan / EDUCO all rights reserved.

12LinuC Level1試験
101試験

102試験

1.01︓Linuxのインストールと仮想マシン・コンテナの利⽤
1.01.1Linuxのインストール、起動、接続、切断と停⽌
1.01.2仮想マシン・コンテナの概念と利⽤
1.01.3ブートプロセスとsystemd
1.01.4プロセスの⽣成、監視、終了
1.01.5デスクトップ環境の利⽤
1.02︓ファイル・ディレクトリの操作と管理
1.02.1ファイルの所有者とパーミッション
1.02.2基本的なファイル管理の実⾏
1.02.3ハードリンクとシンボリックリンク
1.02.4ファイルの配置と検索
1.03︓GNUとUnixのコマンド
1.03.1コマンドラインの操作
1.03.2フィルタを使ったテキストストリームの処理
1.03.3ストリーム、パイプ、リダイレクトの使⽤
1.03.4正規表現を使⽤したテキストファイルの検索
1.03.5エディタを使った基本的なファイル編集の実⾏
1.04︓リポジトリとパッケージ管理
1.04.1apt コマンドによるパッケージ管理
1.04.2Debianパッケージ管理
1.04.3yumコマンドによるパッケージ管理
1.04.4RPMパッケージ管理
1.05︓ハードウェア、ディスク、パーティション、ファイルシステム
1.05.1ハードウェアの基礎知識と設定
1.05.2ハードディスクのレイアウトとパーティション
1.05.3ファイルシステムの作成と管理、マウント
https://linuc.org/linuc1/range/101.html
https://linuc.org/linuc1/range/102.html

1.06︓シェルおよびスクリプト
1.06.1シェル環境のカスタマイズ
1.06.2シェルスクリプト
1.07︓ネットワークの基礎
1.07.1インターネットプロトコルの基礎
1.07.2基本的なネットワーク構成
1.07.3基本的なネットワークの問題解決
1.07.4クライアント側のDNS設定
1.08︓システム管理
1.08.1アカウント管理
1.08.2ジョブスケジューリング
1.08.3ローカライゼーションと国際化
1.09︓重要なシステムサービス
1.09.1システム時刻の管理
1.09.2システムのログ
1.09.3メール配送エージェント(MTA)の基本
1.10︓セキュリティ
1.10.1セキュリティ管理業務の実施
1.10.2ホストのセキュリティ設定
1.10.3暗号化によるデータの保護
1.10.4クラウドセキュリティの基礎
1.11︓オープンソースの⽂化
1.11.1オープンソースの概念とライセンス
1.11.2オープンソースのコミュニティとエコシステム© LPI-Japan / EDUCO all rights reserved.

13

LinuC Level2試験
201試験

2.01︓システムの起動とLinuxカーネル
2.01.1 ブートプロセスとGRUB
2.01.2 システム起動のカスタマイズ
2.01.3 Linux カーネルの構成要素
2.01.4 Linuxカーネルのコンパイル
2.01.5 カーネル実⾏時における管理とトラブルシューティング
2.02︓ファイルシステムとストレージ管理
2.02.1 ファイルシステムの設定とマウント
2.02.2 ファイルシステムの管理
2.02.3 論理ボリュームマネージャの設定と管理
2.03︓ネットワーク構成
2.03.1 基本的なネットワーク構成
2.03.2 ⾼度なネットワーク構成
2.03.3 ネットワークの問題解決
2.04︓システムの保守と運⽤管理
2.04.1 makeによるソースコードからのビルドとインストール
2.04.2 バックアップとリストア
2.04.3 ユーザへの通知
2.04.4 リソース使⽤状況の把握
2.04.5 死活監視、リソース監視、運⽤監視ツール
2.04.6 システム構成ツール
2.05︓仮想化サーバー
2.05.1 仮想マシンの仕組みとKVM
2.05.2 仮想マシンの作成と管理
2.06︓コンテナ
2.06.1 コンテナの仕組み
2.06.2 Dockerコンテナとコンテナイメージの管理
https://linuc.org/linuc2/range/201.html
https://linuc.org/linuc2/range/202.html

202試験

2.07︓ネットワーククライアントの管理
2.07.1 DHCPサーバーの設定と管理
2.07.2 PAM認証
2.07.3 LDAPクライアントの利⽤⽅法
2.07.4 OpenLDAPサーバーの設定
2.08︓ドメインネームサーバー
2.08.1 BINDの設定と管理
2.08.2 ゾーン情報の管理
2.08.3 セキュアなDNSサーバーの実現
2.09︓HTTPサーバーとプロキシサーバー
2.09.1 Apache HTTPサーバーの設定と管理
2.09.2 OpenSSLとHTTPSの設定
2.09.3 nginxの設定と管理
2.09.4 Squidの設定と管理
2.10︓電⼦メールサービス
2.10.1 Postfixの設定と管理
2.10.2 Dovecotの設定と管理
2.11︓ファイル共有サービス
2.11.1 Sambaの設定と管理
2.11.2 NFSサーバーの設定と管理
2.12︓システムのセキュリティ
2.12.1 iptables や firewalld によるパケットフィルタリング
2.12.2 OpenSSH サーバーの設定と管理
2.12.3 OpenVPNの設定と管理
2.12.4 セキュリティ業務
2.13︓システムアーキテクチャ
2.13.1 ⾼可⽤システムの実現⽅式
2.13.2 キャパシティプランニングとスケーラビリティの確保
2.13.3 クラウドサービス上のシステム構成
2.13.4 典型的なシステムアーキテクチャ© LPI-Japan / EDUCO all rights reserved.

14

LinuC 学習のコツ①出題範囲の内容について調べてみる
公式ドキュメント・技術書など②実際に操作してみる
これが⼤事︕③学習の補助教材などを利⽤する・メールマガジン
・標準教科書・過去のセミナー資料
詳細は、https://lpi.or.jp/learning/

LPI-Japan LinuC通信「レベル2・レベル3を受けてみよう︕」でサンプル問題作ってるので、よかったら登録
してください︕© LPI-Japan / EDUCO all rights reserved.

15

LinuC 学習のコツ④過去セミナーの動画
https://www.youtube.com/user/LPIJapan© LPI-Japan / EDUCO all rights reserved.

16

LinuC 学習のコツ
学習の具体的な進め⽅(2~3か⽉程度)
試験範囲の確認(LinuC HP)●月頃、受験しようという目標を立てる↓
LinuC認定教材の購⼊・1週⽬読込 https://lpi.or.jp/linuc1/book.shtml
https://lpi.or.jp/linuc2/book.shtml↓
LinuC認定教材・Webサイトを参考に、実機操作(サーバ構築やコマンド操作)を試す※操作やトラブルシュートで⼒が⾝に付く︕
1ヶ⽉↓
LinuC認定教材 2週⽬読込●月●日頃、受験しようと決める↓問題集やメルマガサンプル問題で理解⼒確認 https://linuc.org/study/samples/※理解不⾜箇所の洗い出し↓
LinuC認定教材 3週⽬
2ヶ⽉※弱点の補強↓仕上げ
受験申込
受験日の変更も可能なので安心(80%)↓
問題を8~9割以上、正解となるまで繰り返し解く
苦⼿な部分を重点的に復習・受験まで継続して学習すること↓
2.5ヶ⽉
・繰り返し学習し、理解度/問題正解率を⾼めた状態で受験すること完全に理解した︕ 受験© LPI-Japan / EDUCO all rights reserved.
(100%)
学習開始(0%)

17

技術解説

主題2.03︓ネットワーク構成試験としての重要度(出題割合)は高くないが、実践では特にトラブルシュートで力を発揮する内容なのでしっかりと理解しておきたい！

© LPI-Japan / EDUCO all rights reserved.

18

技術解説
2.03.1 基本的なネットワーク構成
重要度

3

概要
ネットワークデバイスを設定し、有線または無線のローカルネットワークと広域ネットワークに接続できる。
詳細Ethernetネットワークインターフェイスを設定および操作する。デフォルトルートの設定を含む。
ip, ifconfig, route, arp, nmcli
無線ネットワークを構成する。
iw, iwconfig, iwlist© LPI-Japan / EDUCO all rights reserved.

19

技術解説
2.03.2 ⾼度なネットワーク構成
重要度

3

概要
複数のサブネットへの経路設定ができる。これにはルータ機能の設定も含まれる。
ネットワークの状態を監視できる。
ネットワークのデバイス、通信状態などを分析できる。
詳細
ルーティングテーブルを操作するユーティリティ
ip, route
IPフォワードを設定してルータ機能を実装する。
/etc/sysctl.conf, sysctl
ネットワークデバイスの状態を分析するユーティリティ
ip, ifconfig
TCP/IPの通信状態やトラフィックを監視および分析するユーティリティ
ping, ping6, netcat(nc, ncat), tcpdump, nmap, ss, netstat© LPI-Japan / EDUCO all rights reserved.

20

技術解説
2.03.3 ネットワークの問題解決
重要度

3

概要
⼀般的なネットワーク設定に関する問題を特定して解決できる。
これには、基本的な設定ファイルの位置とコマンドに関する知識も含まれる。
詳細
ネットワークの設定に関する情報を取得する。
hostname, /etc/hostname, /etc/hosts, /etc/resolv.conf, nmcli, ip
ネットワークの通信経路の問題を特定して解決する。
traceroute, traceroute6, ip, route, mtr
ハードウェアの認識と利⽤に関する情報を取得する。
dmesg, /var/log/syslogおよび/var/log/messagesなどのシステムのログファイルおよび systemd のジャーナル
システムの初期化ファイルとその内容（systemd）
NetworkManagerおよびそれがネットワーク設定に及ぼす影響について知っている。
/etc/network/, /etc/sysconfig/network-scripts/© LPI-Japan / EDUCO all rights reserved.

21

技術解説

はじめに

© LPI-Japan / EDUCO all rights reserved.

22

技術解説
ネットワークの重要性

サーバ
インターネット

ルータ

今や、つながっていて当たり前となっている※早期の障害ポイント特定、復旧が求められる
ユーザ端末© LPI-Japan / EDUCO all rights reserved.

23

技術解説
トラブルシュートの進め⽅(OSI参照モデル)

階層

階層名

取り扱う情報など

Layer7

アプリケーション層

アプリケーションデータ

Layer6

プレゼンテーション層

Layer5

セッション層Layer4

トランスポート層

ポート番号(TCP/UDPなど)

Layer3

ネットワーク層

IPアドレスLayer2

データリンク層

MACアドレス(ARP)

Layer1

物理層

物理メディア
トラブルシュートは下の階層から︕© LPI-Japan / EDUCO all rights reserved.

24

技術解説
IPアドレスの種類
・IPv4(32bits、10進数で標記)
0.0.0.0 ~ 255.255.255.255の範囲
プライベート︓10.0.0.0 ~ 10.255.255.255(/8)
172.16.0.0 ~ 172.31.255.255(/12)
192.168.0.0 ~ 192.168.255.255(/16)※RFC1918 https://www.rfc-editor.org/rfc/rfc1918
・IPv6(128bits、16進数で表記)
0000.0000.0000.0000.0000.0000.0000.0000 ~ ffff.ffff.ffff.ffff.ffff.ffff.ffff.ffffの範囲
グローバル ユニキャストアドレス
リンクローカル ユニキャストアドレス ※ルータを超えない組織内で利⽤
ユニークローカル ユニキャストアドレス ※同⼀LAN内のみで利⽤
fe80:1::a00:27ff:fe16:5fac/64
︓1 → ︓0001 の”0”が省略されている
︓︓ → 連続する”0”が省略されている

IPv4(or IPv6)のみを使った構成をSingleStack、
IPv4/IPv6の両⽅を使った構成を
DualStackと呼ぶことがある。
© LPI-Japan / EDUCO all rights reserved.

25

技術解説
MACアドレス(48ibts 、16進数で表記)
08:00:27:70:df:8a
前半24bits(08:00:27)は、ベンダーコード
https://gist.github.com/aallan/b4bb86db86079509e6159810ae9bd3e4

後半24bits(70:df:8a)は、ベンダー内で重複がない⼀意© LPI-Japan / EDUCO all rights reserved.

26

技術解説

2.03.1 基本的なネットワーク構成© LPI-Japan / EDUCO all rights reserved.

27

技術解説
2.03.1 基本的なネットワーク構成
重要度

3

概要
ネットワークデバイスを設定し、有線または無線のローカルネットワークと広域ネットワークに接続できる。
詳細Ethernetネットワークインターフェイスを設定および操作する。デフォルトルートの設定を含む。
ip, ifconfig, route, arp, nmcli
無線ネットワークを構成する。
iw, iwconfig, iwlist© LPI-Japan / EDUCO all rights reserved.

28

技術解説
IPアドレスの確認※利⽤するディストリビューションによって、デフォルトで⽤意されているコマンドが異なる

ubuntu@ubuntuserver:~$ ip addr show
※IPv6については、.
.
デフォルトでは無効化されていることがある.
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default
qlen 1000
link/ether 08:00:27:16:5f:ac brd ff:ff:ff:ff:ff:ff
inet 192.168.1.111/24 metric 100 brd 192.168.1.255 scope global dynamic enp0s3
valid_lft 6284sec preferred_lft 6284sec
inet6 240f:32:57b8:1:a00:27ff:fe16:5fac/64 scope global dynamic mngtmpaddr noprefixroutevalid_lft 298sec preferred_lft 298sec
inet6 fe80::a00:27ff:fe16:5fac/64 scope link
valid_lft forever preferred_lft forever[root@localhost ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.140 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 240f:32:57b8:1:5e06:7ace:4d2e:3456 prefixlen 64 scopeid 0x0<global>
inet6 fe80::81ce:f1ca:2a63:fbf3 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:70:df:8a txqueuelen 1000 (Ethernet)
RX packets 232 bytes 19508 (19.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 142 bytes 15387 (15.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0© LPI-Japan / EDUCO all rights reserved.

29

技術解説
IPアドレスの確認[root@localhost ~]# nmcli device show
GENERAL.DEVICE:
enp0s3
GENERAL.TYPE:
ethernet
GENERAL.HWADDR:
08:00:27:70:DF:8A
GENERAL.MTU:
1500
GENERAL.STATE:
100 (接続済み)
GENERAL.CONNECTION:
enp0s3
GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:
オン
IP4.ADDRESS[1]:192.168.1.140/24
IP4.GATEWAY:
192.168.1.1
IP4.ROUTE[1]:dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100
IP4.ROUTE[2]:dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:8.8.8.8
IP4.DNS[2]:8.8.4.4
IP6.ADDRESS[1]:240f:32:57b8:1:5e06:7ace:4d2e:3456/64
IP6.ADDRESS[2]:fe80::81ce:f1ca:2a63:fbf3/64
IP6.GATEWAY:
fe80::6ee4:daff:fedd:7400
IP6.ROUTE[1]:dst = 240f:32:57b8:1::/64, nh = ::, mt = 100
IP6.ROUTE[2]:dst = ::/0, nh = fe80::6ee4:daff:fedd:7400, mt = 100
IP6.ROUTE[3]:dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[4]:dst = fe80::/64, nh = ::, mt = 100.
.
.

IPアドレス以外にも、
・MTU
・DNS名
・ルーティング情報・インターフェイスの状態などが読み取れる© LPI-Japan / EDUCO all rights reserved.

30

技術解説
IPアドレスの⼀時的な適⽤[root@localhost ~]# ifconfig enp0s3 192.168.1.140 netmask 255.255.255.0[root@localhost ~]# ip addr add 192.168.1.140/255.255.255.0 dev enp0s3© LPI-Japan / EDUCO all rights reserved.

31

技術解説
IPアドレスの恒久的な適⽤[root@localhost ~]# nmcli c modify enp0s3 ipv4.method manual ipv4.addresses "192.168.1.140/24"[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none・・・・”static”と記載してもOK、DHCPを使う場合”dhcp”と記載する.
.
.
NAME=enp0s3
UUID=22e3c1a4-ff0e-4c3e-bacd-d75d719e367a
DEVICE=enp0s3
ONBOOT=yes・・・・OS起動時に利⽤するかどうか
IPADDR=192.168.1.140・・・・IPv4のアドレス指定
PREFIX=24・・・・プレフィックス(サブネットマスク)指定GATEWAY=192.168.1.1・・・・ゲートウェイ指定
DNS1=8.8.8.8・・・・優先DNSサーバ指定
DNS2=8.8.4.4・・・・セカンダリDNSサーバ指定[root@localhost ~]# systemctl restart network© LPI-Japan / EDUCO all rights reserved.

32

技術解説
IPアドレスの恒久的な適⽤(ubuntu)
How to Configure Networking on Ubuntu with Netplan
https://vitux.com/how-to-configure-networking-with-netplan-on-ubuntu/
https://netplan.readthedocs.io/en/stable/tutorials/© LPI-Japan / EDUCO all rights reserved.

33

技術解説
ARPの確認ubuntu@ubuntuserver:~$ arp -a? (192.168.1.123) at 7c:b2:7d:de:c2:f9 [ether] on enp0s3? (192.168.1.113) at 16:27:f5:0a:2d:01 [ether] on enp0s3_gateway (192.168.1.1) at 74:da:88:e6:b3:f8 [ether] on enp0s3.

ARPのやりとり

DHCPサーバ(ルータ)

関連付けられている
IPアドレスとMACアドレスの⼀覧を表⽰①ARPリクエスト(ブロードキャスト)「IPアドレスが欲しいです︕」②ARPリプライ(ユニキャスト)「x.x.x.xを使って︕」© LPI-Japan / EDUCO all rights reserved.

34

技術解説
ルーティング情報の参照[root@localhost ~]# route
Kernel IP routing table
Destination
Gateway
GenmaskFlags Metric Ref Use Iface
default
gateway
0.0.0.0
UG 100 0
0 enp0s3
192.168.1.0
0.0.0.0
255.255.255.0 U
100 0
0 enp0s3[root@localhost ~]# ip route show
default via 192.168.1.1 dev enp0s3 proto static metric 100
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.140 metric 100[root@localhost ~]# nmcli c show enp0s3
connection.id:
enp0s3.
.
.
ipv4.method:manual
ipv4.dns:
8.8.8.8,8.8.4.4
ipv4.dns-search:-ipv4.dns-options:""
ipv4.dns-priority:0
ipv4.addresses:
192.168.1.140/24
ipv4.gateway:
192.168.1.1© LPI-Japan / EDUCO all rights reserved.

35

技術解説
ルーティング情報の設定[root@localhost ~]# route add default gw 192.168.1.1[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3.
.
.
GATEWAY=192.168.1.1・・・・ゲートウェイ指定
DNS1=8.8.8.8・・・・優先DNSサーバ指定
DNS2=8.8.4.4・・・・セカンダリDNSサーバ指定[root@localhost ~]# systemctl restart network[root@localhost ~]# nmcli connection modify enp0s3 ipv4.gateway "192.168.1.1"© LPI-Japan / EDUCO all rights reserved.

36

技術解説
Linuxに無線LAN設定
iwコマンド・・・・無線LAN設定の確認や操作をする
https://linux.die.net/man/8/iw
iwlistコマンド
・・・・無線LANデバイスで検知した無線LAN情報の表⽰など
https://linux.die.net/man/8/iwlist
iwconfigコマンド
・・・・無線LAN設定をする
https://linux.die.net/man/8/iwconfig
Ubuntu 22.04でのwi-fi設定(netplan)
https://www.opensourcetech.tokyo/entry/20230218/1676723684© LPI-Japan / EDUCO all rights reserved.

37

技術解説

2.03.2 ⾼度なネットワーク構成© LPI-Japan / EDUCO all rights reserved.

38

技術解説
2.03.2 ⾼度なネットワーク構成
重要度

3

概要
複数のサブネットへの経路設定ができる。これにはルータ機能の設定も含まれる。
ネットワークの状態を監視できる。
ネットワークのデバイス、通信状態などを分析できる。
詳細
ルーティングテーブルを操作するユーティリティ
ip, route
IPフォワードを設定してルータ機能を実装する。
/etc/sysctl.conf, sysctl
ネットワークデバイスの状態を分析するユーティリティ
ip, ifconfig
TCP/IPの通信状態やトラフィックを監視および分析するユーティリティ
ping, ping6, netcat(nc, ncat), tcpdump, nmap, ss, netstat© LPI-Japan / EDUCO all rights reserved.

39

技術解説
Linuxをルータとして動作させる

192.168.100.0/24

192.168.101.0/24

eth0
192.168.100.254

eth1
192.168.101.254

ルーティング経由で通信© LPI-Japan / EDUCO all rights reserved.

40

技術解説
/etc/sysctl.conf, sysctl＝

カーネルパラメータの表⽰や変更をする

kubeuser@master01:~$ cat /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
kubeuser@master01:~$ sudo sysctl --system.
.
.
* Applying /etc/sysctl.d/k8s.conf ...
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1• Applying /etc/sysctl.conf ...

デフォルトでは無効(0)となっているので、有効化(1)に変更する必要がある

kubeuser@master01:~$ sudo sysctl -a.
.
.
net.ipv4.ip_forward = 1© LPI-Japan / EDUCO all rights reserved.

41

技術解説
kubernetesなどの構築では必要
複数のPCを連携させるためのNW

内部アプリケーションを動作させるためのNW

ルーティング© LPI-Japan / EDUCO all rights reserved.

42

技術解説
ping/ping6
kubeuser@master01:~$ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=4.46 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=4.67 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=4.60 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=4.32 ms--- 8.8.8.8 ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 4.324/4.513/4.672/0.133 ms
kubeuser@master01:~$ ping6 -c 4 2a05:d014:edb:5704::6
PING 2a05:d014:edb:5704::6(2a05:d014:edb:5704::6) 56 data bytes
64 bytes from 2a05:d014:edb:5704::6: icmp_seq=1 ttl=43 time=248 ms
64 bytes from 2a05:d014:edb:5704::6: icmp_seq=2 ttl=43 time=248 ms
64 bytes from 2a05:d014:edb:5704::6: icmp_seq=3 ttl=43 time=249 ms
64 bytes from 2a05:d014:edb:5704::6: icmp_seq=4 ttl=43 time=249 ms--- 2a05:d014:edb:5704::6 ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 247.655/248.354/249.284/0.621 ms© LPI-Japan / EDUCO all rights reserved.

43

技術解説
tcpdump ＝

パケットキャプチャコマンド

ubuntu@ubuntuserver:~$ sudo tcpdump -i enp0s3 icmp
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), snapshot length 262144 bytes
05:44:10.792774 IP 192.168.1.140 > ubuntuserver2: ICMP echo request, id 1550, seq 1, length 64
05:44:10.792828 IP ubuntuserver2 > 192.168.1.140: ICMP echo reply, id 1550, seq 1, length 64
05:44:11.794747 IP 192.168.1.140 > ubuntuserver2: ICMP echo request, id 1550, seq 2, length 64
05:44:11.794780 IP ubuntuserver2 > 192.168.1.140: ICMP echo reply, id 1550, seq 2, length 64^C
4 packets captured
4 packets received by filter
0 packets dropped by kernel

フィルターを活用しないと大量のログが出力されるので注意
解析には通信内容に関する知識(例：ICMPやhttpのやりとりやアプリケーション通信がどのようなものか、TCP/UDP・IP・ARPなど)が必須© LPI-Japan / EDUCO all rights reserved.

44

技術解説
wireshark ＝

GUIのパケットキャプチャツール

tcpdumpを利用するのと同様の知識などは必須© LPI-Japan / EDUCO all rights reserved.

45

技術解説
nmap ＝

対象IPアドレスで公開されているポートの⼀覧確認など

ubuntu@ubuntuserver:~$ nmap 192.168.1.140
Starting Nmap 7.80 ( https://nmap.org ) at 2023-04-17 05:40 UTC
Nmap scan report for 192.168.1.140
Host is up (0.0040s latency).
Not shown: 984 closed ports
PORT
STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
同一NW内で通信可能なIPアドレス一覧検索など便利
53/tcp open domain
80/tcp open httpシステムに侵入した攻撃者がサーバ情報を調べることに使ったり
110/tcp open pop3
111/tcp open rpcbind
143/tcp open imap
465/tcp open smtps
587/tcp open submission
993/tcp open imaps
995/tcp open pop3s
2030/tcp open device2
3306/tcp open mysql
8009/tcp open ajp13
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds© LPI-Japan / EDUCO all rights reserved.

46

技術解説
ss/netstat＝

現在通信が⾏われているエントリーを表⽰[root@localhost ~]# ss -tanp
State
Recv-Q Send-Q
Local Address:Port
Peer Address:Port.
.
.
LISTEN
0
100
*:465
*:*
users:(("master",pid=1278,fd=22))
ESTAB
0
0
192.168.1.140:22
192.168.1.124:60596
users:(("sshd",pid=1387,fd=3))
LISTEN010[::1]:53[::]:*
users:(("named",pid=937,fd=23))
LISTEN09[::]:21[::]:*
users:(("pureftpd",pid=922,fd=5))
LISTEN0128[::]:22[::]:*
users:(("sshd",pid=866,fd=4))
LISTEN0100[::]:25[::]:*
users:(("master",pid=1278,fd=14)).
.
.
users:(("httpd",pid=947,fd=4),("httpd",pid=946,fd=4),("httpd",pid=945,fd=4),("httpd",pid=944,fd=4))
LISTEN0100[::]:465[::]:*
users:(("master",pid=1278,fd=23))© LPI-Japan / EDUCO all rights reserved.

47

技術解説

2.03.3 ネットワークの問題解決© LPI-Japan / EDUCO all rights reserved.

48

技術解説
2.03.3 ネットワークの問題解決
重要度

3

概要
⼀般的なネットワーク設定に関する問題を特定して解決できる。
これには、基本的な設定ファイルの位置とコマンドに関する知識も含まれる。
詳細
ネットワークの設定に関する情報を取得する。
hostname, /etc/hostname, /etc/hosts, /etc/resolv.conf, nmcli, ip
ネットワークの通信経路の問題を特定して解決する。
traceroute, traceroute6, ip, route, mtr
ハードウェアの認識と利⽤に関する情報を取得する。
dmesg, /var/log/syslogおよび/var/log/messagesなどのシステムのログファイルおよび systemd のジャーナル
システムの初期化ファイルとその内容（systemd）
NetworkManagerおよびそれがネットワーク設定に及ぼす影響について知っている。
/etc/network/, /etc/sysconfig/network-scripts/© LPI-Japan / EDUCO all rights reserved.

49

技術解説
hostname、/etc/hostname ＝

⾃⾝のホスト名を設定、表⽰

ubuntu@ubuntuserver:~$ man hostname
HOSTNAME(1)HOSTNAME(1)Linux Programmer's Manual

NAME
hostname - show or set the system's host namedomainname - show or set the system's NIS/YP domain nameypdomainname - show or set the system's NIS/YP domain namenisdomainname - show or set the system's NIS/YP domain namednsdomainname - show the system's DNS domain nameubuntu@ubuntuserver:~$ hostname
ubuntuserver
ubuntu@ubuntuserver:~$ cat /etc/hostname
ubuntuserver© LPI-Japan / EDUCO all rights reserved.

50

技術解説
/etc/hosts＝

IPアドレスとホスト名の組み合わせを記載し、静的な名前解決に使われる

kubeuser@master01:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 master01
192.168.1.41 master01
192.168.1.45 worker01
192.168.1.46 worker02“IPアドレス ホスト名”という記載方法

240f:32:57b8:1:5054:ff:fe8e:5428 master01
240f:32:57b8:1:5054:ff:fe93:acfc worker01
240f:32:57b8:1:5054:ff:fe9e:4f00 worker02
fe80::5054:ff:fe8e:5428 master01
fe80::5054:ff:fe93:acfc worker01
fe80::5054:ff:fe9e:4f00 worker02# The following lines are desirable for IPv6 capable hosts::1
ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters© LPI-Japan / EDUCO all rights reserved.

51

技術解説
/etc/resolv.conf＝

名前解決に使うDNSサーバを記載する

ubuntu@ubuntuserver:~$ cat /etc/resolv.conf# This is /run/systemd/resolve/stub-resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
## This file might be symlinked as /etc/resolv.conf. If you're looking at# /etc/resolv.conf and seeing this text, you have followed the symlink.
## This is a dynamic resolv.conf file for connecting local clients to the# internal DNS stub resolver of systemd-resolved. This file lists all
その他、# configured search domains.
nslookup/dig/hostなど## Run "resolvectl status" to see details about the uplink DNS servers
名前解決に利用するコマンドも併せて覚# currently in use.
えておくとよりよい## Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a different symlink.
## See man:systemd-resolved.service(8) for details about the supported modes of# operation for /etc/resolv.conf.
nameserver 127.0.0.53
options edns0 trust-ad
search© LPI-Japan / EDUCO all rights reserved.

52

技術解説
traceroute/traceroute6 ＝宛先に到達するまでのルータとその到達性を確認する

ubuntu@ubuntuserver:~$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 _gateway (192.168.1.1) 2.790 ms 3.779 ms 4.229 ms
2 192.168.0.1 (192.168.0.1) 8.498 ms 8.418 ms 9.704 ms
.
.
.
8 ***
9 dns.google (8.8.8.8) 7.632 ms 7.627 ms 7.621 ms

ルーティング経路のどこでNGとなっているか確認できる

kubeuser@master01:~$ traceroute6 2001:4860:4860::8888
traceroute to 2001:4860:4860::8888 (2001:4860:4860::8888), 30 hops max, 80 byte packets
1 240f:32:57b8:1:6ee4:daff:fedd:7400 (240f:32:57b8:1:6ee4:daff:fedd:7400) 0.835 ms 0.860 ms
0.858 ms
2 2001:268:de13::62 (2001:268:de13::62) 4.504 ms 4.386 ms 4.362 ms.
.
.
7 2404:6800:800a::1 (2404:6800:800a::1) 4.016 ms 2404:6800:8102::1 (2404:6800:8102::1)
4.617 ms 2404:6800:80c3::1 (2404:6800:80c3::1) 5.099 ms
8 dns.google (2001:4860:4860::8888) 3.956 ms 3.872 ms 3.793 ms© LPI-Japan / EDUCO all rights reserved.

53

技術解説
dmesg ＝

Linux起動時のメッセージを表⽰

ubuntu@ubuntuserver:~$ sudo dmesg[sudo] password for ubuntu:[ 0.000000] Linux version 5.15.0-69-generic (buildd@lcy02-amd64-080) (gcc (Ubuntu 11.3.01ubuntu1~22.04) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #76-Ubuntu SMP Fri Mar 17
17:19:29 UTC 2023 (Ubuntu 5.15.0-69.76-generic 5.15.87)[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-5.15.0-69-generic root=/dev/mapper/ubuntu-vg-ubuntu--lv ro.
.
左記のように.
[ 4.229262] e1000: Intel(R) PRO/1000 Network Driver
正常であればNIC関連のログが[ 4.229964] e1000: Copyright (c) 1999-2006 Intel Corporation.
出力されているはず.
.
.
[ 5.577426] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 08:00:27:16:5f:ac[ 5.577458] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection[ 5.579397] e1000 0000:00:03.0 enp0s3: renamed from eth0.
.
.
[ 9.902019] e1000: enp0s3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX[ 9.913040] IPv6: ADDRCONF(NETDEV_CHANGE): enp0s3: link becomes ready.
.
© LPI-Japan / EDUCO all rights reserved.

54

技術解説
/var/log/messagesなどのシステムのログファイル[root@localhost ~]# tail -f /var/log/messages
Apr 17 14:26:02 localhost server: 情報: Server startup in 15122 ms
Apr 17 14:26:07 localhost dhclient[911]: XMT: Info-Request on enp0s3, interval 27510ms.
Apr 17 14:26:22 localhost NetworkManager[605]: <warn> [1681709182.3445] dhcp6 (enp0s3):
request timed out
Apr 17 14:26:22 localhost NetworkManager[605]: <info> [1681709182.3446] dhcp6 (enp0s3): statechanged unknown -> timeout
Apr 17 14:26:22 localhost NetworkManager[605]: <info> [1681709182.3483] dhcp6 (enp0s3):
canceled DHCP transaction, DHCP client pid 911
Apr 17 14:26:22 localhost NetworkManager[605]: <info> [1681709182.3484] dhcp6 (enp0s3): statechanged timeout -> done
Apr 17 14:26:46 localhost chronyd[625]: Selected source 162.159.200.123
Apr 17 14:26:48 localhost systemd: Created slice User Slice of root.
Apr 17 14:26:48 localhost systemd: Started Session 1 of user root.
Apr 17 14:26:48 localhost systemd-logind: New session 1 of user root.

問題のあるプログラムがちゃんと起動しているかなどを“tail -f”(リアルタイムでログに吐き出される内容を確認できる)を使って確認できる。
各プログラムの詳細ログは、/var/logなどにあるログファイルを参照する。
© LPI-Japan / EDUCO all rights reserved.

55

技術解説
systemd のジャーナル[root@localhost ~]# journalctl -u sshd-- Logs begin at ⽉ 2023-04-17 14:25:23 JST, end at ⽉ 2023-04-17 14:30:01 JST. -4⽉ 17 14:25:34 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
4⽉ 17 14:25:34 localhost.localdomain sshd[866]: Server listening on 0.0.0.0 port 22.
4⽉ 17 14:25:34 localhost.localdomain sshd[866]: Server listening on :: port 22.
4⽉ 17 14:25:34 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
4⽉ 17 14:26:48 localhost.localdomain sshd[1387]: Accepted password for root from 192.168.1.124
port 60596 ssh2

systemdのログを参照すると、プログラムがうまく起動していない原因が分かるかも。

© LPI-Japan / EDUCO all rights reserved.

56

Appendix© LPI-Japan / EDUCO all rights reserved.

57

Appendix
IPv6アドレスを使ってWebサイトにアクセスする

https://www.opensourcetech.tokyo/entry/20230131/1675164136© LPI-Japan / EDUCO all rights reserved.

58

Appendix
LinuCレベル2 201試験
主題2.03の例題と解説
https://linuc.org/study/samples/index/s/2_03/© LPI-Japan / EDUCO all rights reserved.

59

お知らせ

© LPI-Japan / EDUCO all rights reserved.

60

お知らせ
Kubernets(LFS458-JP)の研修、はじめました︕

https://www.it-training.tokyo/kubernetes/© LPI-Japan / EDUCO all rights reserved.

61

本⽇のまとめØLinuxの基本的なネットワーク設定を理解するØルーティングテーブルの操作を理解するØネットワーク関連のツールの使⽤⽅法を理解するØネットワーク関連のトラブルシュート⽅法を理解する

IPv4だけでなく、IPv6についても理解しておく必要がある
構築段階だけでなく、トラブルシュート時に⾮常に重要となってくる
レイヤー(1~7)やアプリケーション通信に関する理解も必要© LPI-Japan / EDUCO all rights reserved.

62

Q&A

© LPI-Japan / EDUCO all rights reserved.

63

Thank you for joining my seminar!
https://www.opensourcetech.tokyo/

https://twitter.com/matt_zeus

https://www.facebook.com/takahiro.kujirai.1© LPI-Japan / EDUCO all rights reserved.

64