1. ネットワークの概念への導入: 少しの理論
今日の講義では、Linuxネットワークツールの基本について説明するよ。ネットワークノードのアクセス確認やネットワークインターフェースの状態や設定を分析する方法、さらにネットワーク設定について学ぶんだ。
ネットワークって、ITの世界の神経システムみたいなものだよね。ブラウザがどうやってウェブページを開くのか不思議に思ったことがある?その答えはネットワークのおかげなんだよ。開発者でも管理者でもエンジニアでも、ネットワークの基本を理解するのは超重要なスキルだね。
ネットワークって何?データを交換するために繋がれたコンピュータの集まりだよ。Linuxのネットワーク管理においては、次の基本的な概念を理解することから始まるんだ:
- IPアドレス: ネットワーク内のデバイスのユニークな識別子だよ。簡単に言うと、これはコンピュータの住所みたいなもの。
- サブネット: ネットワーク内のデバイスの論理的なグループだよ。地区みたいなもので、その地区内の家が住所を持ってる感じ。
- ゲートウェイ: 「外の世界」への出口だね。ローカルネットワーク内のデバイスがインターネットに出たり他のサブネットに接続したりできる経路だよ。
IPアドレスには2種類ある: IPv4 (例えば 192.168.1.1) と IPv6 (例えば 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。IPv4の方がシンプルで、この講義ではそれを扱うよ。IPv6はすごくクールで将来的な標準だけど、それは後で学ぼう。
2. コマンド ping: ノードの接続確認
pingは何をするの?
ping っていうのは、ネットワーク内の他のノードが接続可能かどうかを確認するツールだよ。ターゲットサーバーに小さな「挨拶状」(ICMPリクエスト)を送信して、応答を待つんだ。ノードが応答すれば問題なし。応答がなければ、何か問題があるかも(もしくはサーバーがあなたを無視しているのかも、失礼な!)。
pingの使い方は?
ちょっとpingを使ってみよう。ターミナルを開いて、次のコマンドを入力してみてね:
ping 8.8.8.8
このコマンドは、GoogleのパブリックDNSサーバーにリクエストを送信するよ。こんな感じの結果が表示されるはず:
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=117 time=10.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=10.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=10.3 ms
これらの行が意味するところは:
- icmp_seq: 送信されたリクエストの番号。
- ttl: パケットの「生存時間」(ネットワーク内で何回「飛び」が可能か)。
- time: 応答を送受信するのにかかった時間(ミリ秒単位)。
送信リクエストの数を制限するには、-cフラグを使おう:
ping -c 4 8.8.8.8
このコマンドは無限ループの代わりに4つだけリクエストを送信するよ。
実践: ローカルホストとインターネットの接続確認
ルーターのIPアドレス(普通は192.168.1.1みたいなもの)や8.8.8.8でpingを試してみて。この操作でローカルネットワークが機能しているか、インターネット接続があるかを確認できるよ。
3. ip addr コマンド:ネットワークインターフェースを確認する
ネットワークインターフェースって何?
ネットワークインターフェースは、コンピュータがネットワークと「コミュニケーション」するためのものだよ。Ethernet(有線接続)、WLAN(無線接続)、特定のタスク用に作られた仮想インターフェースの場合もあるんだ。
ip addr コマンドは現在のネットワークインターフェース設定を表示する。やってみよう:
ip addr
結果はこんな感じになると思うよ:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic enp0s3
inet6 fe80::1a2b:3c4d:5e6f:f7g8/64 scope link
ここで見えるもの:
lo— ローカルインターフェース (localhost)。このアドレスはいつも127.0.0.1。enp0s3— Ethernetアダプタのネットワークインターフェース名。inet— インターフェースのIPv4アドレス。inet6— インターフェースのIPv6アドレス。
IPアドレスを一時的に設定する方法
sudo 経由でスーパーユーザー権限がある場合、IPアドレスを一時的に設定できるよ:
sudo ip addr add 192.168.1.101/24 dev enp0s3
このIPアドレスは再起動するまで有効だよ。
4. コマンド ifconfig: 古いけどまだ人気のツール
昔はネットワークインターフェース管理に ifconfig が使われていたよ。最近はだんだん使われなくなってきて(代わりに ip addr が使われてる)、でも古いディストリビューションではまだたまに出会うことがある。
インターフェースの状態確認
ifconfig でインターフェースの状態を確認するには、このコマンドを実行してみて:
ifconfig
結果は ip addr コマンドの出力に似てるよ。
インターフェースの有効化/無効化
インターフェースを有効化または無効化するには、以下のコマンドを使おう:
sudo ifconfig enp0s3 down
sudo ifconfig enp0s3 up
でも、ifconfig は最新のディストリビューションでは動かないことがあるから気をつけてね。コマンドが見つからない場合は、 net-tools パッケージをインストールしてみるか、すぐに ip addr に切り替えるのがおすすめ。
5. 例: 接続とネットワークを確認しよう
ここで、学んだ知識を小さな実践例でまとめてみよう。
ローカルインターフェイスの接続確認をしてみよう:
ping 127.0.0.1ネットワークのIPアドレスを確認しよう:
ip addr一時的に新しいIPアドレスを設定してみよう:
sudo ip addr add 192.168.1.102/24 dev enp0s3 ip addr show enp0s3公開ノードの接続確認をしてみよう:
ping -c 3 8.8.8.8古いディストリビューションを使用している場合、インターフェイスの切り替えを試してみよう:
sudo ifconfig enp0s3 down sudo ifconfig enp0s3 up
これでLinuxでネットワーク診断をするための基本的なツールを身に付けたよ。ping, ip addr, ifconfig コマンドは、ネットワーク管理の世界への第一歩だよ。これからもっと面白くなるぞ!
GO TO FULL VERSION