カテゴリー
2020年 Linux LPIC コマンド コンピューター トラブルシューティング 技術一般 認定資格

Linux の基本コマンドが変更されて困った

2020年09月27日作成

Linux って、コマンド操作が多いのですが、コマンドが変わりましたね。例えば、「ifconfig」で各インターフェースに割り当てられている IP アドレスが見られたのですが、これは「ip address」に変わってます。

これくらいなら、大きな問題にはならないのですが、「nmcli」という Network Service コマンドになると、もうさぱりです。何だたっけ?と、インターネットでその都度調べないと使えません。

私は古いコマンドで Linux を使っていた人ですが、5 年くらい前に対応していたある案件で、久しぶりに Linux を触った時に、「え、何これ?」って感じでした。確か、その時に触ったのが、CentOS 7 だったと思います。

最近は、自宅での動作確認で使用している仮想環境や AWS などのパブリッククラウド上で、Linux を再びよく使うようになりました。やはり、何らかのサーバーを作る際に、Windows よりも Linux が便利である面は多いです。

そこで、迷って Linux のコマンドを確認したい時にすぐに見られるように、ちょっとまとめておこうと思いました。

IP コマンド

オブジェクト省略形    説明
addr aIP アドレスの設定や確認します
link lネットワークデバイスの設定や確認します
route rルーティングテーブルの設定や確認します
neighbor nARP キャッシュの表示します
addr のコマンド省略形    説明
show s指定したデバイスのみのIP アドレス情報を表示します
add aIP アドレスの追加します
del dIP アドレスの削除します

IP アドレスの表示

ip addr / ip a

全てのデバイスの IP アドレス情報を一覧で表示します。

ip addr show <device-name>

デバイス名を指定し、特定のデバイスに割り当てられた IP アドレスの情報を表示します。

以下の例では、ens33 を指定して表示しています。

以下の例では、Loopback インターフェースを指定して表示しています。

IP アドレスの追加と削除

ip addr add <ip-address>/<prefix> dev <device-name>

dev でデバイス名を指定し、指定したデバイスに対して、IP アドレスを追加します。

以下の例では、ens33を指定して、IP アドレスをマニュアルにて設定しています。

ip a で表示してみると、指定した IP アドレスが設定されていますね。

ただ、上書きされると思っていたのですが、追加されるみたいです。これは気をつけないといけない点です。

ip addr del <ip-address>/<prefix> dev <device-name>

dev でデバイス名を指定し、指定したデバイスに対して、IP アドレスの削除を行います。

以下の例では、ens33を指定して、IP アドレスを削除しています。

ip a で表示してみると、指定した IP アドレスが削除されていますね。

疎通確認コマンド

疏通確認

ping

ping は非常によく使用する疏通確認コマンドですが、さすがにこれは変わってませんね。

経路確認

traceroute

宛先ホストに到達するまでの経路情報を表示します。

オプション説明
-UUDP パケットを送信すします(デフォルト)
-IICMP パケットを送信します

Linux の traceroute って、Cisco 機器と同じ様に、デフォルトは UDP なんですね。Windows と同じく ICMP を使っていると思ってました。オプションで切り替えられるのは便利ですね。

以下の例では、Google DNS である「8.8.8.8」に対して、Traceroute を打ってみました。

ついでに、Linux のTraceroute のデフォルトがUDP であることも確かめてみようと思い、隣で動かしているWindows マシンで、Wiresharkを取って見てみました。確かにUDP を使っていますね。TTL exceed などの応答は、ICMP を使うんですね。

「-I 」オプションも試してみましょう。今度はICMPを使ってTraceroute を打つはずです。

Wireshark でパケット見てみると、UDP はなくなり、ICMP のみ見えています。

IPv6 の環境では、traceroute6 コマンドを使用します。

tracepath

宛先ホストに到達するまでの経路情報を表示します。traceroute との違いは、PMTU (Path MTU)を表示できるという点です。

以下の例では、Google DNS である「8.8.8.8」に対して、Tracepath を打ってみました。PMTU の値が表示されていますね。

これもついでに、パケットキャプチャを見てみました。UDP を使っていますね。

ちなみに、私が先日受講した Linux のオンライン講義では、「ICMP を使う」と言っていましたが、実際に見てみるとICMP ではなくUDP を使っています。ここにもそう書いてありますね。

やはり、実機でちゃんと見てみるというのは重要ですね!

ルーティングコマンド

経路情報の確認

ip route

経路情報(ルーティングテーブル)を表示します。昔からの「netstat -r」は非推奨になってしまったみたいです。

以下の例が、ip route の出力結果です。1行しかなく、非常にシンプルですが、NIC が1つでスタティックルートも使っていませんので、PC として使っていれば大体こんなものでしょう。

でも、デフォルトゲートウェイは、どうやって確認しましょうか?

route -n コマンドを使えば良いみたいですね。先日の講義で、route コマンドも非推奨だという話を聞きましたが、インターネットでいろいろ調べてみた限り、そのようなことはなさそうです。とりあえず、デフォルトゲートウェイの確認には、このコマンドを使っておきましょう。

経路情報の追加と削除

オプション説明
addルーティングテーブルに、経路情報を追加します
delルーティングテーブルから、経路情報を削除します
経路情報の追加
ip route add <dest-network> via <gw-ip-addr> dev <device-name>

dev でデバイス名を指定し、ルーティングテーブルに経路情報を追加します。

以下の例が、「10.10.10.0 /24」ネットワーク向けのネクトホップを「192.168.45.2」に設定した出力です。

route -n コマンドでも、追加した経路が見られますね。と言うか、初めから route -n お使っていた方が早い気がしてきました。デフォルトゲートウェイも見られますし。

経路情報の削除
ip route del <dest-network>

ip route del <dest-network> via <gw-ip-addr> dev <device-name>

ルーティングテーブルから、指定した経路情報を削除します。

dev でデバイス名を指定し、特定のデバイスに関連付いているルーティングテーブルに経路情報を削除することもできます。

以下の例が、「10.10.10.0 /24」ネットワーク向けのネクトホップを「192.168.45.2」に設定した経路情報を削除した出力です。

ホスト名の設定

このコマンドは変更された訳ではないですが、個人的に思い出せないことが多いのでメモしておきます。

ホスト名の表示

ホスト名は、/etc/hostnameファイルの中に記載されています。

ホスト名の表示には、hostname コマンドで表示するのと、cat /etc/hostnameとホスト名ファイルを表示する方法があります。

ホスト名の変更

ホスト名の変更には、hostnamectl コマンドを使用します。set-hostname の後に hostnameファルを指定して、ホスト名を変更します。

DNS の設定

DNS で使用するネームサーバーは、/etc/resolve.conf ファイルの中に記載されています。

ネームサーバーの表示

Cat コマンドで、上記ファイルを指定して、内容を表示させます。

ネームサーバーの追加・変更

ネームサーバーは上記ファイルの記載されていますので、vi などのエディターを使って編集すれば、追加・変更が可能です。

ついでに vi エディターですが、最低限のこれくらい知っておけば、とりあえず使えます。

  • i で入力モード
  • ESC ボタンを押して、コマンドモード
  • :wq で保存して終了
  • :q! で終了

NMCLI コマンドは、まだ下書きです。時間のある時に修正していきます。

nmcli コマンド

オブジェクトコマンド説明
なしデバイスの情報を一覧表示
deviceshow <device-name>指定したデバイスの情報のみを表示
connectionshow <connection-name>接続情報を表示
modify <connection-name> <parameter>指定した接続を設定
up <connection-name>接続を有効化
down <connection-name>接続を無効化

IP アドレスの表示

nmcli

各デバイスの IP アドレス情報を表示します。

nmcli show <device-name>

指定したデバイスの IP アドレス情報のみを表示します。

IP アドレスの変更

nmcli connection modify <conn.-name> ipv4.method manual ipv4.addresses <ip-address> / <prefix>

コネクション名を指定して、IP アドレスを設定します。

コネクションの有効化・無効化

nmcli connection up <conn.-name>

設定を反映させるために、コネクションを UP にします。

nmcli connection down <conn.-name>

コネクションを Down させます。

デフォルトデートウェイの設定

nmcli connection modify <conn.-name> ipv4.gateway <default-gw-ip-address>

指定したコネクションに対して、デフオルトゲートウェイを設定します。

nmcli connection modify <conn.-name> ipv4.dns <dns-ip-address>

指定したコネクションの参照先 DNS サーバーのアドレスを設定します。

これを覚えておくと、ちょっと便利です。

IP アドレス、デフォルトゲートウェイ、DNS サーバーのアドレスは、セットで設定することが多い項目です。この様にコマンドを組み合わせることで、これら3つの項目が一度に設定ができます。

nmcli connection modify <conn.-name> ipv4.method manual ipv4.addresses <ip-address> / <prefix> ipv4.gateway <default-gw-ip-addr> ipv4.dns <dns-ip-addr>

これはたまに使うなと思うコマンドあれば、今後も追記して更新していきたいと思います。

関連する記事:

最近の記事:

カテゴリー
2020年 AWS AWS Solutions Architect - Associate クラウド コンピューター 技術一般 認定資格

AWS を学ぶ(17)CloudWatch を使ってみる

このページは、日本語で作成し、機械翻訳で外国語に変換しています。

今回は、CloudWatch について学んでみます。

例えば、何らかのしきい値を超えたらアラートを出し、Eメールで通知するということは、運用上必要だと思います。

この機能を、CloudWatch は、簡単に提供してくれます。

実際に使ってみることが早いですので使ってみました。

CloudWatch を使ってみる

AWS 管理コンソールにログインします。

検索テキストボックスで、CloudWatch と入力すると、CloudWatch が見つかるので、それをクリックします。

CloudWatch の管理コンソールが表示されます。

画面右側のメニューから、「アラーム」をクリックします。

アラーム設定画面が表示されます。

画面右上の「アラームの作成」をクリックします。

メトリクスの設定画面が表示されます。

「メトリクスの選択」をクリックします。

EBS、EC2、S3 などの項目が表示されます。表示される項目は、実際に使っている環境で異なります。

今回は、EC2 インスタンスに対して、アラームを設定したいと思います。EC2 をクリックします。

「インスタンス別メトリクス」をクリックします。

さまざまなメトリクスが表示されます。

とりあえず、分かりやすく、CPU 使用率でアラートを設定してみましょう。

一覧の中から、「CPU Utilization」をクリックします。

対象となるインスタンス ID が表示されています。これは EC2 の仮想インスタンスのインスタンスIDです。EC2 の管理コンソールも同時に開いて確認しましょう。

私の場合、テスト向けのインスタンスである、TEST-amz-linux があります。これのインスタンス名とインスタンス ID が同じであるかを確認します。

「CPU Utilization」を選択すると、現在の対象インスタンスの CPU 使用率が表示されます。

メトリクスの条件と指定の画面が表示されます。

今回は、CPU 使用率をメトリクスとして使用します。そのメトリクスは、AWS が用意しているので、メトリクス名は、そのまま使います。

今回は、CPU 使用率が 70% を超えたらアラートメールを出すようにしようと思います。「しきい値の種類」は、静的にします。

「より大きい」を選択し、「よりも」の項目で「70」を入力します。

まだトピックがありませんので、「新しいトピック」を選択し、「通知を受け取るEメールエンドポイント」に、メールの送信先になるEメールアドレスを入力します。このEメールアドレスが、アラートメールの受け取り先です。

名前と説明の画面が表示されます。

アラームの名前とその説明を入力します。

「次へ」を押すと、設定が完了します。

アクションのところを見ると、まだ「保留中の確認」になってますね。

先ほどメールの送信先に設定したメールを確認してみましょう。AWS からメールが届いているはずです。

メールの本文中にある「Confirm Subscription」をクリックします。

以下のような画面が表示されるはずです。これで、サブスクリプションは完了です。これからアラートメールが飛んできます。

CloudWatch の管理画面に戻ると、先ほど保留中だったステータス項目が、「確認済み」に変わります。

設定は、これで完了です。

CloudWatch のアラートを確認してみる

では、実際にアラートを発生させてみましょう。

今回設定しているのは、「CPU の使用率が 70% を超えたら、Eメールでアラートを出す」です。

Linux の top コマンドで、現在の CPU 使用率を確認してみます。テスト機を使ってますので、現在の CPU 使用率は 0% です。

top

次に、Linux の yes コマンドを使って、CPU 使用率を上げてみたいと思います。

これは不思議なコマンドです。Null にリダイレクトし続けると、CPU 使用率がどんどん上がっていきます。

yes > /dev/null

これを 4つ か 5つ 繰り返すと、すぐに CPU 使用率が上がります。今回は、5つ 繰り返してみましょう。

yes > /dev/null &
yes > /dev/null &
yes > /dev/null &
yes > /dev/null &
yes > /dev/null &

すぐに CPU 使用率が 99% まで上昇しました。

しかし、CloudWatch の方は、5分間の平均値で表示しています。すぐには結果が反映されませんので、5分から10分くらい待ってみましょう。

CloudWatch 側でも、CPU 使用率の上昇がみられるようになりました。

アラートメールが飛んでいるはずです。

メールボックスを確認してみると、70% のアラートのメールが届いてますね。動作確認は成功です。

今回は、CPU 使用率でアラートメールを飛ばすように設定してみましたが、CloudWatchは、いろいろなメトリクスが用意されています。いろんなアラートを飛ばして、試してみて下さい。

この教材を使って勉強してます。

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト【電子書籍】[ 佐々木 拓郎 ]価格:2,618円
(2020/8/30 16:09時点)
感想(0件)