こんにちは、おはじきです。
前回からLpicレベル1ネットワーク編という事で、IPアドレスについてお話させていただきました。
今回はLinuxでのネットワークの基本設定について解説します。
Linuxにはネットワークを管理するシステムとしてNetwork Managerというシステムがあります。
Network Managerの設定を確認したり設定を変更するにはnmcliコマンドを使います。
使い方が少し込み入っていて、ややこしいのですが試験にはかなりの確率で出ると思われるので是非とも習得したいコマンドです。
書式: nmcli オブジェクト サブコマンド
主なオブジェクト、サブコマンド
| general | status | Network Managerの状態を表示する |
| hostname | ホストネームの確認、変更を行う | |
| networking | on,off | ネットワークの有効、無効の設定 |
| connectivity | ネットワークの状態を表示する | |
| radio | wifi | wi-fiの状態を表示する |
| wifi on,off | wi-fi接続の有効、無効のの設定 | |
| all on,off | 全ての無線接続の有効、無効の設定 | |
| connection | show | ネットワークへの接続情報を表示 |
| modify インターフェース名 | 指定したインターフェースの設定を変更 | |
| up インターフェース名 | インターフェースへの接続を有効 | |
| downインターフェース名 | インターフェースへの接続を無効 | |
| device | status | デバイスの情報を表示 |
| show インターフェース名 | 指定したデバイスの情報を表示 | |
| modify インターフェース名 | 指定したデバイスの設定を変更 | |
| connect インターフェース名 | 指定したデバイスを接続 | |
| disconnect インターフェース名 | 指定したデバイスを切断 | |
| delete インターフェース名 | 指定したデバイスを削除 | |
| monitor インターフェース名 | 指定したデバイスを監視 | |
| wifi list | wifiのアクセスポイントを表示 | |
| wifi connect | wifiアクセスポイントに接続 | |
| wifi rescan | wifiアクセスポイントを再検索 |
まずはオブジェクトを指定して何を操作するかを指定した後にどのような操作をするかを指定します。
例えば
nmcli device statusや
nmcli connection showなどのコマンドでどのネットワークインターフェースが有効かを調べることができます。

nmcli networking connectivityでネットワークの状態を表示する事ができます。

fullと表示されていますがいくつかパラメータがあるのでテスト対策という意味でも覚えておきましょう。
| full | インターネットに接続しています |
| portal | インターネットにアクセスできる状態ではあるがfreewifiのポータルサイトなどで止まっている状況 |
| limited | ネットワークに接続されているが、インターネットにアクセスできない |
| none | ネットワークに接続していない |
| unknown | ネットワークが見つけられない |
テスト対策の余談ですが何気にnmcliコマンドでホスト名の確認、一時的な変更もできるので覚えておきましょう。
ホストネームの変更はhostname,hostnamectl,nmcliコマンドなどで変更できます。
ホストネームの変更はファイルに記述する事でも設定できます。
Debian系ディストリビューションでは/etc/hostname
Red Hat系ディストリビューションでは/etc/sysconfig/network
にホスト名を書き込むことで設定する事ができます。
最近ではRed Hat系も/etc/hostnameでホスト名を設定する傾向にあるようなのですがテストではまだ上記のように区別しているようです。
ネットワークのトラブルシューティングに当たって利用する機会の多いコマンドを紹介します。
pingコマンド
指定したホストにICMPプロトコルを利用してパケット送信を行い反応を返ってくるかどうかで疎通確認を行います。
webサーバーを起動できているはずなのにサイトが表示されないといったような不具合が起きた時にまずwebサーバーに通信できているかどうかを確認するために利用します。
| -c 回数 | パケットを送信する回数を指定 |
| -i 秒数 | 指定した秒数毎にパケットを送信する |
| -n | 送信先の名前解決をせずに実行 |

上の画像ではgoogle.comのサイトに3回パケット送信して返ってくるかどうかを検証しています。
ちゃんと帰ってきているので接続できていることが確認できますね。
tracerouteコマンド
指定したホストまでパケットが伝わる経路を表示します。
webサイトへ接続する時は外部のネットワークのいくつかのゲートウェイを経由して宛先に行きつくのですが、
もし経由したゲートウェイで問題が発生していて接続できない場合などはtracerouteコマンドで経路上のどのゲートウェイで問題が発生するのか調べることができます。
tracepathコマンド
基本的な動作はtracerouteコマンドと同じなのですが転送可能な最大データ数(MTU)を追加で表示します。
これらのコマンドはipv4のみで利用できるのですがping6やtraceroute6など後に6を加えるとipv6対応のコマンドになるのでこちらも試験対策に是非覚えておきましょう。
ポートとは、サーバーやクライアントがサービス毎に保有しているドアのようなもので、ポート番号で管理されています。
アプリケーション毎に利用するポート番号が決められているので、
ポート番号を利用してアクセスの監視や制限をしたり、
外部から特定のサービスにアクセスする事ができます。
ポート番号は0~65535番まであります。
0~1023番までのポートをウェルノウンポートといい主要なサービスが予約している番号です。
テストにも出るので主なウェルノウンポートの利用サービスと使用ポートを挙げていきますね。ここに挙げた部分は覚えておきましょう。
| 20番 | FTPデータ用 |
| 21番 | FTP制御用 |
| 22番 | ssh |
| 23番 | telnet |
| 25番 | SMTP |
| 80番 | HTTP |
| 110番 | POP3 |
| 143番 | IMAP |
| 443番 | HTTPS |
1024~49151まではレジスタードポートと呼ばれていて団体やベンダーなどが予約しているポート番号で分かりやすいところだと各種データベースなどで利用します。
49152~65535まではユーザーが自由に使えるポート番号となっています。
netstatコマンドを利用する事で開いているポートの確認を行います。
主なオプション
| -a | 全てのソケット情報を表示 |
| -c | 情報をリアルタイムで表示し続ける |
| -i | ネットワークインターフェースの状態を表示 |
| -n | 結果を名前解決せずに表示 |
| -p | PIDとプロセス名も表示 |
| -r | ルーティングテーブルを表示 |
| -t | tcpポートを表示 |
| -u | udpポートを表示 |
こちらが実際に使用した画面です。

Local Addressは接続元
Foreign Addressは接続先の情報を示しています。
StateのLISTENは接続待ち、ESTABLISHEDは接続中であることを意味しています。
今回はネットワークの設定の確認や変更について解説しました。
基本的かつ非常に利用頻度の高いコマンドをいくつかご紹介できたかと思います。
ネットワークの理解を深めることができればインフラエンジニアとしてより成長できるかと思いますので、
もっと深い所まで勉強して、サーバーとネットワークの両方を扱えるエンジニアを目指してこれからも頑張ります。
それでは。