2020年09月27日作成
Linux って、コマンド操作が多いのですが、コマンドが変わりましたね。例えば、「ifconfig」で各インターフェースに割り当てられている IP アドレスが見られたのですが、これは「ip address」に変わってます。
これくらいなら、大きな問題にはならないのですが、「nmcli」という Network Service コマンドになると、もうさぱりです。何だたっけ?と、インターネットでその都度調べないと使えません。
私は古いコマンドで Linux を使っていた人ですが、5 年くらい前に対応していたある案件で、久しぶりに Linux を触った時に、「え、何これ?」って感じでした。確か、その時に触ったのが、CentOS 7 だったと思います。
最近は、自宅での動作確認で使用している仮想環境や AWS などのパブリッククラウド上で、Linux を再びよく使うようになりました。やはり、何らかのサーバーを作る際に、Windows よりも Linux が便利である面は多いです。
そこで、迷って Linux のコマンドを確認したい時にすぐに見られるように、ちょっとまとめておこうと思いました。
IP コマンド
オブジェクト | 省略形 | 説明 |
addr | a | IP アドレスの設定や確認します |
link | l | ネットワークデバイスの設定や確認します |
route | r | ルーティングテーブルの設定や確認します |
neighbor | n | ARP キャッシュの表示します |
addr のコマンド | 省略形 | 説明 |
show | s | 指定したデバイスのみのIP アドレス情報を表示します |
add | a | IP アドレスの追加します |
del | d | IP アドレスの削除します |
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
宛先ホストに到達するまでの経路情報を表示します。
オプション | 説明 |
-U | UDP パケットを送信すします(デフォルト) |
-I | ICMP パケットを送信します |
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 コマンド
オブジェクト | コマンド | 説明 |
なし | – | デバイスの情報を一覧表示 |
device | show <device-name> | 指定したデバイスの情報のみを表示 |
connection | show <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>
これはたまに使うなと思うコマンドあれば、今後も追記して更新していきたいと思います。
関連する記事:
- Cisco ルーターでリモートアクセス VPN の設定
- FHRP を学ぶ (0) FHRP の種類
- QNAP NASのポートトランキング設定ガイド
- Cisco EEMを用いた自動化: イベント管理をマスターする
- Cisco 認定資格 CCNP の更新時期が迫ってきた
最近の記事:
- 複数の宛先に ping を打つことができる「fping」
- ネイティブの英語 7 “A cup of joe”
- 死刑確定囚・野比のび太 – 第二十三話・昇華するのび太の鬱屈
- 死刑確定囚・野比のび太 – 第二十二話・静の怒りと武の苛立ち
- 死刑確定囚・野比のび太 – 第二十一話・夫婦間の亀裂とのび太の影響
- 死刑確定囚・野比のび太 – 第二十話・のび太の初出勤: 恐れと葛藤
- 死刑確定囚・野比のび太 – 第十九話・ジャイアンとのび太の絆
- 死刑確定囚・野比のび太 – 第十八話・引きこもりの息子と家族のジレンマ
- 死刑確定囚・野比のび太 – 第十七話・ドラえもんと30歳ののび太の葛藤
- 死刑確定囚・野比のび太 – 第十六話・剛田商店の成長と静香の貢献