ネットワークの基礎
TCP/IPプロトコル
通信を行う上での取り決めをプロトコルという。企業や家庭内のLANやインターネットで最も一般的に使用されているプロトコル。
TCP(Transmission Control Protocol)
HTTPなど固有のアプリケーション層のプロトコルを橋渡しするもので、ポート番号用いて識別し、担当のソフトウェアに振り分ける。信頼性が高いが即時性や高速性は得られにくい
リアルタイム通信には不適切だが、webサーバーへのアクセスなどデータが抜け落ちて困る際に使用
- 途中で消失やエラーが発生したパケットを再送
- パケットの伝送順所を整列
TCPはコネクション型プロトコルで、相手に通信データが正しく届いていることを確認しながら通信するもので信頼性は高くなる。
IP(Internet Protocol)
TCPやUDP、ICMPなどのデータ転送(ルーティング)をつかさどるコネクションレス型のプロトコル。コネクションレス型とは、相手に通信データが正しく届いているかどうかを確認せず、一方的に送信するもの、信頼性は低くなるが伝送速度は速くなる。
- IPアドレスの規定
- データグラム(伝送単位)の規定
- データグラムが伝送されるネットワーク経路の制御
UDP(User Datagram Protcol)
DHCPなど各用途ごとに固有のアプリケーション層のプロトコルを橋渡しするもので、ポート番号用いて識別し、担当のソフトウェアに振り分ける。シンプルで低遅延だが信頼性は低い
正確性はないが、動画ストリーミングやリモート会議などライブ配信など速度に重視した通信が可能
ICMP(Internet Control Message Protocol)
エラーメッセージや制御メッセージを伝送するコネクションレス型のプロトコル。pingコマンドやtracerouteコマンドで利用される
OSI参照モデル
国際標準化機構(ISO:International Oraganaization for Standardization)によって通信プロトコルを設計するための指標として策定されたもの。
第1層 物理層
コンピューターが扱うデジタルデータとケーブルが扱う電気信号の相互変換といった物理的な接続を定めるもの
第2層 データリンク層
通信回線を正確に通信する規則を定めるもの
代表的な組み合わせはMACアドレスによるネットワーク接続で、隣接したノード(機器)間で通信中のデータが壊れていないか、通信相手の識別や認識、信号の衝突の検知や回避をチェックしながらデータの受け渡しが実現される
第3層 ネットワーク層(IGW/NAT ICMP)
複数のネットワークを接続し、全体を一つのネットワークとして相互に通信可能な状態にすること。伝送経路の選択が主
第4層 トランスポート層
データの送信元と送信元の間での制御や通知、データ転送の信頼性やリアルタイム性など目的に応じた通信品質を実現する。代表的なプロトコルはTCPとUDP。
第5層 セッション層
通信の確立、維持、終了するまでの手順を管理している。セッションによって利用者の認証やログイン、ログアウトなどの状態管理を行うことが可能
第6層 プレゼンテーション層
アプリケーション間でやり取りされるデータの表現形式を定義する。
SMTP(メール送信時のプロトコル)やFTP(サーバーへのファイル転送時のプロトコル)が主流となっている。実行することにより、webブラウザで文字化けが発生せずに正確な文章が表示されるようになる。
第7層 アプリケーション層
ユーザーが操作するソフトウェアが提供する具体的な機能についての仕様や通信手順やデータ形式などを定めている
IPアドレス
インターネット内で重複しないよう一意の割り当てが必要になる。1バイトごとに区切って10進数で表記する。
クラス | IPアドレスの範囲 | サブネットマスク |
---|---|---|
A | 0.0.0.0~127.255.255.255 | 255.0.0.0 |
B | 128.0.0.0~191.255.255.255 | 255.255.0.0 |
C | 192.0.0.0~223.255.255.255 | 255.255.255.0 |
D | 224.0.0.0~239.255.255.255 | |
E | 240.0.0.0~223.255.255.255 |
- クラスA
ネットワーク部1バイト、ホスト部3バイトの大規模ネットワーク - クラスB
ネットワーク部2バイト、ホスト部2バイトの中規模ネットワーク - クラスC
ネットワーク部3バイト、ホスト部1バイトの小規模ネットワーク
プライベートアドレスの範囲
クラス | IPアドレスの範囲 |
---|---|
A | 10.0.0.0~10.255.255.255 |
B | 172.16.0.0~172.31.255.255 |
C | 192.168.0.0~192.168.255.255 |
CIDR(Classless inter-Domain Routing)
IPアドレスのクラスの概念を使わずに、任意の長さのサブネットマスクを利用する事。ネットワークアドレス部を1ビット単位で扱うことが出来る。
例えば、クラスCネットワークをサブネットマスクで分割すると、4つのサブネットワークに分割でき、それぞれのサブネットワークでは62のホストを扱える。
IPアドレスの範囲 | ネットワークアドレス | ブロードキャストアドレス | 最大ホスト数 |
---|---|---|---|
192.168.0.0~192.168.0.63 | 192.168.0.0 | 192.168.0.63 | 62 |
192.168.0.64~192.168.0.127 | 192.168.0.64 | 192.168.0.127 | 62 |
192.168.0.128~192.168.0.191 | 192.168.0.128 | 192.168.0.191 | 62 |
192.168.0.192~192.168.0.255 | 192.168.0.192 | 192.168.0.255 | 62 |
ホストアドレスを数える際、実際の数から下記項目の数を抜いたものが使用できる
- 0.0.0.0のネットワーク自信を表すアドレス
- ブロードキャストアドレス
- ルータ分
IPv6
IPv4の32ビットに対して、128ビットになっている。16ビットずつ8つのブロックに区切られた16進数で表す。表示する際のルールが以下存在する
- 各ブロックの先頭の0は省略できる
- 1か所だけ、0が連続するブロックは省略して「::」と表記できる
- IPアドレス部分は括弧で囲み、末尾にポート番号と分かるように区別している
さらに、IPv6は以下に分類される
IPv6アドレスの分類 | 表記 |
---|---|
ローカルループバックアドレス | ::1/128 |
グローバルユニキャストアドレス(GUA) | 2000::/3 |
リンクローカルユニキャストアドレス(LLA) | fe80::/10 |
マルチキャストアドレス | ff00::/8 |
「/8」の表記は、先頭からのビット数を表し、IPv6の場合は以下の通り言う。
どちらも64ビットになっている。
- サブネットプレフィックス:IPv4のネットワーク部に相当する部分
- インタフェース識別子(Interface-ID):ホスト部に相当する部分
・リンクローカルアドレスとは??
同一リンク上でのみ有効なアドレス
・エニーキャストアドレスとは??
複数のホストの集合に割り当てられるアドレス
・マルチキャストアドレスとは??
IPv4のブロードキャストアドレス(同じネットワークに属する全てのホストに送信する特別なアドレス)に相当するもの
IPv6ヘッダ
IPv6パケット内の制御情報のことで、IPv6ヘッダ(固定長)+オプションの拡張ヘッダ(可変長)で構成されている。
項目 | ビット数 | 説明 |
---|---|---|
バージョン | 4 | IPのバージョン番号。6が入る |
トラフィッククラス | 8 | パケットの優先度をつける |
フローラベル | 20 | アプリケーションフローの識別 |
ペイロード長 | 16 | IPv6ヘッダを除くパケットのデータ部の長さ |
ネクストヘッダ | 8 | IPv6ヘッダの次に来るヘッダのタイプを示す |
ポップリミット | 8 | 通過できるルータの数(IPv4のTTLと同じ) |
送信元アドレス | 128 | 送信元のIPv6アドレス |
宛先アドレス | 128 | 宛先のIPv6アドレス |
ポート番号
IPアドレスを「住所」で例えるのであれば、ポート番号は「部屋番号」みたいなもの。
ポート番号は「0番~65535番」まで存在し、プロトコルやプログラムによってポート番号が決まる。世界共通の仕組みのため以下のルールに統一されている
・ウェルノウンポート(Well-Known Ports)
IANAが管理している番号。TCP/IPで使用されるポートのうち、特によく利用されている「0番~1023番ポート」のこと。著名なサービスやプロトコルのためにあらかじめシステムに予約されている。
使用するには、root権限が必要
・レジスタードポート(Registered Port)
IANAが管理している番号。サービスが増えていく未来に備えて管理してある「1024番~49151番ポート」のこと
・エフェメラルポート(ephemeral port)
IANAで正式に登録されていない番号。世界中の誰でも自由に設定できる「49152番~65535番ポート」のことで、よく使われるプログラムに割り当てられる。一般ユーザーは使用可能
・IANA(Internet Assigned Numbers Authority)とは?
ドメイン名やIPアドレス、ポート番号といったインターネット資源を管理する組織
それぞれの特性のサービスやプロトコルが利用するため、公開するサーバは該当するポート番号を利用することが推奨される
ポート番号とサービス名の情報は/etc/services
に記述されている。
ポート番号 | プロトコル | サービス名 | 説明 |
---|---|---|---|
20 | TCP | ftp-data | FTPのデータを送る |
21 | TCP | ftp | FTPの制御を行う |
22 | TCP/UDP | ssh | 暗号化技術を使用してリモート操作やファイル転送を行う |
23 | TCP | telnet | 暗号化技術を使用せずにリモート操作やファイル転送を行う |
25 | TCP | SMTP | 電子メールの送信を行う |
53 | TCP/UDP | dns | DNSの名前解決に使用 |
80 | TCP/UDP | http | webサーバと通信する |
123 | UDP | ntp | 時刻同期に使用 |
443 | TCP/UDP | https | webサーバとの通信にSSLを使用 |
必ずしもウェルノウンポートで指定されている番号に従う必要はない。HTTPのプロキシサーバーなどは、わざと本来とは別のポート番号でサービス提供することもある
ネットワークの基本設定
設定するには、コマンドを使って設定するか、/etc以下の設定ファイルに記述する方法がある。コマンドを使った設定は再起動すると失われるため、設定ファイルに起動することで永続的な設定になる。
/etc/hostname
Debian系ディストリビューションで使用され、ホスト名のみが記述されており、設定を行うことが可能。ディストリビューションによって/etc/HOSTNAME
というファイル名になっている。
[root@localhost ~]# cat /etc/hostname
localhost
/etc/sysconfig/network
Red Hat系ディストリビューションで使用され、ホスト名や、ネットワーク機能の有効/無効、デフォルトゲートウェイの設定などを記述する。
Red Hat Enterprise Linux(RHEL)7からは、ホスト名の設定はDebian系同様/etc/hostname
を使用するようになっている
[root@localhost ~]# cat /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=localhost
GATEWAY=192.168.1.0
/etc/hosts
名前解決に用いられるシンプルなテキストファイルで、IPアドレスとホスト名とを関連付けている。IPアドレスはIPv4、IPv6どちらでも指定可能。
小規模の閉じたネットワークなら、このファイルを作成し全てのホストに配布することで名前解決が実現可能。変更があった場合はその都度書き換えがいるので、大規模には向かない。
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
/etc/network/interfaces
Debian系ディストリビューションで、ネットワークインターフェースの設定を記述している
/etc/sysconfig/network-scriptsディレクトリ
Red Hat系ディストリビューションで、様々なネットワークインターフェースの設定ファイルが配置されている。ネットワークインターフェース名がeth0の場合、設定ファイル名はifcig-eth0となる。IPアドレスを固定で割り当てたい場合などに編集する。
最新のRedHat系、CentOS7では、/etc/sysconfig/network-scriptsディレクトリを編集するのではなく、nmtui/nmcliコマンドを使って設定することが推奨されている
/etc/services
ポート番号とサービス名の情報が記述されている。
ticf-1 492/tcp # Transport Independent Convergence for FNA
ticf-1 492/udp # Transport Independent Convergence for FNA
ticf-2 493/tcp # Transport Independent Convergence for FNA
ticf-2 493/udp # Transport Independent Convergence for FNA
pov-ray 494/tcp # POV-Ray
pov-ray 494/udp # POV-Ray
systemd-networkd
systemdの動作するシステムでネットワーク設定を管理するデーモン。設定は/etc/systemd/network
配下の拡張子.networkのファイルで行う。
NetworkManagerによる設定
CentOSやRed Hat Enterprise Linuxで導入されている動的にネットワークを管理する仕組み。ノートPCなどでネットワーク環境を切り替えるのに向いている。
以下のコマンドで利用状況を確認することが出来る
# systemctl status NetworkManager
システムで検出されたネットワークデバイスは自動で管理され、特定のインタフェースを管理しないように設定できる。
DHCPサーバが有効な環境であればDHCPによって動的なIPアドレスが割り当てられる。
ethernet(有線)、wifi(無線)、bridge(異なるネットワーク間の接続)のネットワークデバイスのタイプ種類がある。
- 設定をしていない全てのインターフェースに対して設定を行う
- 特別な設定をしてあるインターフェース以外はDHCPを設定する
- 検出されたネットワークデバイスは自動でNetworkManagerによって管理される
- 特定のインタフェースをNetworkManagerで管理しないように設定できる
nmcli(Network Manager command-line)コマンド
書式:nmcli オブジェクト [コマンド]
ネットワークの設定、接続管理、状態の確認などを行えるコマンド。引数のオブジェクト(以下4種類)は、操作対象のカテゴリのことで省略することが可能。変更を伴う操作はrootユーザー権限のみだが、参照するだけであれば一般ユーザーでも可能。
引数なしで実行すると、現在認識しているデバイス情報が表示される。
- general:NetworkManagerの状態や操作一般を扱う
コマンド | 説明 |
---|---|
status | NetworkManagerの状態を表示する |
hostname | ホスト名を表示する |
hostname ホスト名 | 指定したホスト名に変更する |
- networking:ネットワーク管理全般を扱う
コマンド | 説明 |
---|---|
on/off | ネットワークを有効または無効にする |
connectivity [check] | ネットワークの状態を表示する。[check]を指定すると再確認する |
【connectivityで表示される設定項目】
状態 | 説明 |
---|---|
full | インターネットにアクセス可能なネットワークに接続している |
portal | インターネットにアクセスする前のcaptive potralの状態である |
limited | ネットワークに接続しているが、インターネットにアクセスできない |
none | どのネットワークにも接続していない |
unknown | 接続状態が見つからない |
・captive portalとは??
Wi-Fiホットスポットやホテルなどで、インターネット利用前に強制的に認証や課金のWebページを参照させる技術。ログインが完了しないとインターネットにアクセスできない
[root@localhost etc]# nmcli networking connectivity
full
- radio:無線ネットワークを扱う
コマンド | 説明 |
---|---|
wifi | Wi-Fiの状態を表示する |
wifi on/off | Wi-Fi接続を有効または無効にする |
wwan | モバイルブロードバンドの状態を表示する |
wwan on/off | モバイルブロードバンド接続を有効または無効にする |
all on/off | 全ての無線接続を有効または無効にする |
- connection:接続を扱う
コマンド | 説明 |
---|---|
show [--active] | 接続情報を表示する。activeが指定されればアクティブな接続のみ |
modify インターフェース名 パラメータ | 指定した接続を設定する |
up ID | 接続を有効にする |
down ID | 接続を無効にする |
- device:デバイスを扱う
コマンド | 説明 |
---|---|
status | デバイスの状態を表示する |
show インターフェース名 | 指定したデバイスの情報を表示する |
modify インターフェース名 パラメータ | 指定したデバイスを設定する |
connect インターフェース名 | 指定したデバイスを接続する |
disconnect インターフェース名 | 指定したデバイスを切断する |
monitor インターフェース名 | 指定したデバイスを監視する |
wifi list | Wi-Fiアクセスポイントを表示する |
wifi connect SSID | Wi-Fiアクセスポイントに接続する |
wifi hotspot | Wi-Fiホットスポットを作成する |
wifi rescan | Wi-Fiアクセスポイントを再検索する |
##現在アクティブとなっているデバイス情報を取得する
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 exxxxxxx-dxxx-3xxx-9xxx-xxxxxxxxxxxx ethernet eth0
nmtuiコマンド
curses(カーシス:UNIX向け端末制御ライブラリ)ベースのテキストユーザーインターフェース。テキストの組み合わせで画面を構成し、ボタンやメニューをキーボードで移動して操作する。
hostnamectlコマンド
書式:hosetnamectl [サブコマンド]
ホスト名を設定するコマンド。サブコマンドなしに実行すると、ホスト名と関連情報が表示される。
サブコマンド | 説明 |
---|---|
status | ホスト名と関連情報を表示する(デフォルト) |
set-hostname ホスト名 | ホスト名を設定する |
$ hostnamectl
Static hostname: server1
Icon name: computer-vm
Chassis: vm
Machine ID: 0ae27c0b9a48e140810fcddec0520100
Boot ID: 6ff4d74225e9457381ae5f088024a000
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.6.1.el7.x86_64
Architecture: x86-64
ネットワークのトラブルシューティング
pingコマンド
書式:ping [オプション] ホスト名またはIPアドレス
指定されたホスト(ホスト名もしくはIPアドレス)にICMPパケットを送り、その反応を表示するコマンド。送信回数を指定しなければ、Ctrl+Cキーを押すまで繰り返しパケットが送られる。
通信に問題がある場合は、エラーの原因として時間超過や宛先到達不能などのメッセージが返される
IPv6の場合は、ping6コマンドを使用する。使い方は一緒
オプション | 説明 |
---|---|
-c(count) 回数 | 指定した回数だけICMPパケットを送信する |
-i(interval) 間隔 | 指定した間隔(秒)毎にICMPパケットを送信する。デフォルトは1秒 |
-n(numeric) | 結果表示時の形式をホスト名ではなくアドレスで表示 |
停止しているサーバに対してpingを実行した場合は応答がない。
tracerouteコマンド
書式:traceroute [オプション] 宛先
指定されたホスト(ホスト名またはIPアドレス)までパケットが伝わる経路を表示する。宛先までのルータやホストが順に表示されるため、ネットワーク経路上に障害があった場合はその位置を特定できる可能性がある。
オプション | 説明 |
---|---|
-n (numeric) | 結果表示時の形式をホスト名ではなくアドレスで表示 |
IPv6の場合は、traceroute6コマンドを使用する。使い方は一緒
tracepathコマンド
書式:tracepath ホスト名またはIPアドレス[/ポート番号]
tracerouteコマンドと同様、指定されたホスト(ホスト名またはIPアドレス)までパケットが伝わる経路を表示し、PathMTUを確認する。
IPv6の場合は、tracepath6コマンドを使用する。使い方は一緒
オプション | 説明 |
---|---|
-n | 経路ホストの名前解決を行わない |
-b | ホスト名とIPアドレスを両方出力 |
-l | 送信パケットサイズを指定する(デフォルトはtracepathで65536、tracepath6で128000) |
-m | 最大ホップ (または最大 TTL) を 30 ではなく max_hops に設定する |
-p | 使用する最初の宛先ポートを設定 |
・Path MTU Discoveryとは??
IPネットワーク上で特定の相手までの経路上の最小のMTU(Maximum Transmission Unit:機器が一度に送信できる最大のデータ量)を調べること
[root@centos ~]# tracepath -b www.yahoo.co.jp
1?: [LOCALHOST] pmtu 1500
1: web.setup (192.168.0.1) 0.513ms
1: web.setup (192.168.0.1) 0.397ms
2: web.setup (192.168.0.1) 0.426ms pmtu 1454
hostnameコマンド
書式:hostname [ホスト名]
ホスト名を一時的に変更するコマンド。ホスト名を指定しなかった場合、現在のホスト名を表示する。rootユーザー権限のみ可能。
netstatコマンド
書式:netstat [オプション]
ネットワーク機能に関わる様々な情報を表示するコマンド。開いているポートの確認によく利用される。その際にはアドレスやポート番号の名前解決を自動で行って表示するが、この時にDNSサーバに障害などがあると、名前解決が出来ずに結果が表示がされない場合がある。
オプション無しで実行すると、有効なネットワーク接続や開いているソケットの情報等を表示する。
オプション | 説明 |
---|---|
-a | 全てのソケット情報を表示する |
-c | 状況を1秒ごとにリアルタイムで表示する |
-i | ネットワークインターフェースの統計状態を表示する |
-n | アドレスやポートの名前解決をしないで表示する |
-p | PIDとプロセスも表示する |
-r | ルーティングテーブルを表示する |
-t | TCPポートのみを表示する |
-u | UDPポートのみを表示する |
[root@localhost ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost.localdoma:ssh 10.0.2.2:59023 ESTABLISHED
tcp6 0 1 localhost.localdo: tp-in-f26.1e100.ne:smtp SYN_SENT
tcp6 0 1 localhost.localdo: ta-in-f26.1e100.ne:smtp SYN_SENT
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 12563 /run/systemd/shutdownd
unix 2 [ ] DGRAM 18830 /var/run/chrony/chronyd.sock
unix 3 [ ] DGRAM 7644 /run/systemd/notify
unix 2 [ ] DGRAM 7646 /run/systemd/cgroups-agent
unix 5 [ ] DGRAM 7657 /run/systemd/journal/socket
[root@localhost ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
enp0s3 1500 135 0 0 0 260 0 0 0 BMRU
enp0s8 1500 486 0 0 0 162 0 0 0 BMRU
lo 65536 161 0 0 0 161 0 0 0 LRU
virbr0 1500 0 0 0 0 0 0 0 0 BMU
ssコマンド
書式:ss [オプション]
netstatの後継となるコマンド。ネットワークのソケットの情報を表示する。
ifconfig、route、arp、netstatコマンドなど旧来のネットワーク関連ユーティリティであるnet-toolsの代替として開発されたiproute2ユーティリティに含まれている
オプション | 説明 |
---|---|
-a | 全てのソケットを表示 |
-n | サービス名の名前解決をしない |
-t | TCPソケットを表示 |
-u | UDPソケットを表示 |
nc(netcat)コマンド
書式:nc [オプション] 接続先アドレス 宛先ポート番号
catコマンドと同様の働きをネットワーク上で行うコマンド。TCP/UDPを使った通信を手軽に行うことのできる便利なツール。ネットワーク通信の確認などに利用する。簡易的なサーバにもなれる。
宛先ポート番号が未指定の場合、デフォルトで31337番ポートが指定されたものとして動作する。
オプション | 説明 |
---|---|
-l | 指定したアドレス、ポート番号で接続の待ち受けをする |
-p ポート | 送信元ポート番号を指定する |
-u | UDPを利用する。デフォルトはTCP |
-o ファイル | 指定したファイルに出力する |
routeコマンド
書式:route [オプション]
設定書式:route add[オプション] 対象
削除書式:route del[オプション] 対象
ルーティングテーブルの表示、追加、削除や操作を行うコマンド。引数なしで実行すると、ルーティングテーブルが表示される。
オプション | 説明 |
---|---|
-F | ルーティングテーブルを表示する |
-C | ルーティングキャッシュを表示する |
-n | 名前解決をせずルーティングテーブルを表示する。ルーティングテーブルの表示に非常に時間がかかってしまっている場合、表示までのプロセスを変えることによってすばやく表示することができる |
-host | 対象をホストのアドレスとみなす |
-net | 対象をネットワークアドレスとみなす |
netmask | サブネットマスクを指定 |
gw | ゲートウェイを指定 |
default gw | デフォルトゲートウェイを指定 |
default | IPアドレスを指定しないデフォルトゲートウェイ |
##デフォルトルート(デフォルトゲートウェイは192.168.122.1)を追加・削除
# route add default gw 192.168.122.1
# route del default gw 192.168.122.1
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.0 0.0.0.0 UG 100 0 0 enp0s3
0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 enp0s8
10.0.0.0 0.0.0.0 255.0.0.0 U 100 0 0 enp0s3
192.168.0.0 0.0.0.0 255.255.255.0 U 101 0 0 enp0s8
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
項目 | 説明 |
---|---|
Destination | 宛先のネットワークもしくはホスト |
Gateway | ゲートウェイのアドレス。「*」は未設定 |
Genmask | 宛先のサブネットマスク |
Flags | 経路の状態。U:経路が有効、H:宛先はホスト、G:ゲートウェイを使用、!:経路は無効 |
Metric | 宛先までの距離 |
Ref | ルートの参照数(不使用) |
Use | 経路の参照数 |
Iface | この経路を使うネットワークインターフェース |
ipコマンド
書式:ip オブジェクト [コマンド] 値
ネットワークインターフェースやルーティングテーブル、ARPテーブルなどを管理するコマンド。オブジェクト(機能)に対して、コマンド(処理)を指定する形式で実行する。
[-s]オプションを付けることで、送受信バイト数などの統計情報も表示することができる。
オブジェクト | 説明 |
---|---|
link | ネットワークデバイス |
addr | IPv4,IPv6アドレス |
route | ルーティングテーブル |
neighbour(neighbor) | IPv4のARPキャッシュ,IPv6のNDキャッシュ |
コマンド | 説明 |
---|---|
show | 現在の状態を表示する |
add | 値の追加 |
del | 値の削除 |
##デフォルトルート(デフォルトゲートウェイは192.168.122.1)を追加・削除
# ip route add default via 192.168.122.1
# ip route del default via 192.168.122.1
##インタフェース「enp0s3」の送受信バイト数などの統計情報を確認
# ip -s link show dev endp0s3
##インターフェース「eth0」にIPアドレス「192.168.1.1」、クラスのデフォルト値を使用してサブネットマスクを追加する
# ip addr add 192.168.1.1/255.255.255.0 dev eth0
##インタフェースeth0を有効化する
# ip link set eth0 up
ネットワークインターフェースの設定
ifconfigコマンド
書式:ifconfig ネットワークインターフェース名 パラメータ
IPアドレスを確認するときによく使われる。ネットワークインターフェースの状態を表示したり、設定を行ったりする。引数なしで実行すると、有効化されている全てのネットワークインターフェースの状態を表示する。
設定した値は再起動すると失われる。永続的にする場合は、記述ファイルに記述する
表示結果からは、インターフェースのMACアドレスやIPアドレス、ブロードキャストアドレス、サブネットマスク、MTU(最大転送単位)などが確認できる。
パラメータ | 説明 |
---|---|
IPアドレス | IPアドレスを設定する |
netmask サブネットマスク | サブネットマスクを設定する |
up | ネットワークインターフェースを有効化する |
down | ネットワークインターフェースを無効化する |
[root@localhost ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.1.1.0 netmask 255.0.0.0 broadcast 10.255.255.255
inet6 0000::0:48:bf4a:ff20 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:7c:00:b0 txqueuelen 1000 (Ethernet)
RX packets 472 bytes 37440 (36.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 418 bytes 60515 (59.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifupコマンド
Red Hat系書式:ifup ネットワークインターフェース名
Debian系書式:ifup ネットワークインターフェース名
指定したインターフェースを有効にするコマンド。最近のディストリビューションでは使えないことがある。
ifdownコマンド
Red Hat系書式:ifdown ネットワークインターフェース名
Debian系書式:ifdown [オプション] ネットワークインターフェース名
指定したインタフェースを無効にするコマンド。
DNS(Domain Name System)の設定
DNSサーバがホスト名とIPアドレスの変換サービスを提供する。これを名前解決と言い、ホスト名からIPアドレスを求めることを正引き、その反対を逆引きという。
設定ファイル
/etc/resolv.conf
参照先DNSサーバを設定する。複数指定する場合は、1行ずつ記述する。
項目 | 説明 |
---|---|
nameserver | 名前解決に使用するDNSサーバ(1サーバ1行) |
domain | 自サーバの所属するドメイン名 |
search | 名前解決の際に省略されうるドメイン名のリスト(スペース区切り) |
- nameserverは標準では3つまでしか設定不可。上限を変更する場合はライブラリの再コンパイルが必要。
- domainは自身の所属するドメイン名を記述する。ホスト名のみの問い合わせの場合は同じドメインに所属するホストとみなされ、自動的にドメイン名が追加される。
- searchは省略されうるドメイン名を列挙する。最大6つまでしか設定できず、上限を変更する場合はライブラリの再コンパイルが必要。
- domainとsearchはいずれか一つしか設定できず、最後に記述されたものが有効になる。
[root@localhost]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
/etc/nsswitch.conf
NSS(Name Service Switch)と呼ばれる、GNU Cライブラリが名前解決やサービス名解決の際の問い合わせ順序を指定するデータベースファイル。「hosts:」に続けて優先順位の高い方から名前解決方法を記述する。最初の「files」で「/etc/hosts」ファイルを参照して名前解決をするように指定し、それができなければ続く「dns」でDNSサーバに問い合わせを行うように指定している。
##/etc/nsswitch.confファイルの書式
# cat /etc/nsswitch.conf
hosts: files dns
services: files
(files→/etc/hostsファイル、dns→DNSサーバ)
/etc/systemd/resolve.conf
systemd-resolvedサービスを利用した名前解決の設定ファイル
getentコマンド
書式:getent データベース名 [キー ...]
ユーザー情報、パスワード情報の取得、ホスト名からIPアドレスを取得する際の情報検索先などの情報を問い合わせるコマンド。データベース名には、passwd,hostsなど /etc/nsswitch.conf
で指定できるサービス名を指定する。キー名にはデータベースのキーを指定する。キーを指定しなかった場合、指定したデータベースの全ての内容が表示される。
- 名前解決の順序を
/etc/nsswitch.conf
で指定する - 「hosts」項目で設定
- 「files dns」の設定であれば、
/etc/hosts
から検索 - 見つからなければ次にDNSサーバに問い合わせを行う
##/ete/passwd内のユーザーuser01のエントリを表示する場合
# getent passwd user01
##yahoo.co.jpの名前解決を表示する場合
[root@localhost ~]# getent hosts yahoo.co.jp
183.79.250.251 yahoo.co.jp
183.79.217.124 yahoo.co.jp
183.79.249.124 yahoo.co.jp
182.22.31.124 yahoo.co.jp
・LDAP(Lightweight Directory Access Protocol)とは??
ディレクトリサービスに使われるプロトコル。ユーザー情報やグループ情報などを一元管理することが出来る
hostコマンド
書式:host [オプション] ホスト名またはIPアドレス [DNSサーバ]
DNSサーバを使ってホストやドメインに関する情報を表示するコマンド。最もシンプルに情報を得ることができ、ホスト名とIPアドレスの変換を行う。
オプション | 説明 |
---|---|
-t | 問い合わせる情報の指定(type) |
-v | 詳細な情報を表示する |
検索タイプ | 説明 |
---|---|
a | IPアドレス |
aaaa | IPv6アドレス |
any | 全ての情報 |
mx | メールサーバの情報 |
ns | ネームサーバの情報 |
[root@localhost ~]# host -t a www.yahoo.co.jp
www.yahoo.co.jp is an alias for edge12.g.yimg.jp.
edge12.g.yimg.jp has address 182.22.16.251
digコマンド
書式:dig [オプション] [@DNSサーバ名] ホスト名またはドメイン名 [検索タイプ]
DNSサーバへ直接問い合わせて、指定した名前に関するDNSサーバからの応答を表示するコマンド。知りたい情報のタイプは検索タイプで指定する。
デフォルトの検索タイプはaになっている。
オプション | 説明 |
---|---|
-t | 問い合わせるDNSサーバを指定する |
-x | IPアドレスからホスト名を検索する |
検索タイプ | 説明 |
---|---|
a | IPアドレス |
aaaa | IPv6アドレス |
any | 全ての情報 |
mx | メールサーバの情報 |
ns | ネームサーバの情報 |
soa | ゾーン(ドメインの範囲)の情報 |
## DNSサーバに登録されている、「yahoo.co.jp」のネームサーバの情報を表示する
# dig yahoo.co.jp ns
##外部のDNSサーバ8.8.8.8に「yahoo.co.jp」のIPアドレスを問い合わせる
# dig @8.8.8.8 yahoo.co.jp
nslookupコマンド
書式;nslookup [オプション] [ドメイン名またはIPアドレス] [DNSサーバ]
DNSサーバに名前解決を問い合わせるコマンド。DNSサーバが正常に動作しているのかを調べる際にも、利用できる。
whoisコマンド
whoisサーバのデータベースに問い合わせを行い、ドメインの登録者や管理者、所属団体等の情報を得るコマンド。