コース一覧
LinuC レベル1 102試験対策(LPIC-1対応)
ルーティング

LinuC レベル1 102試験対策(LPIC-1対応)

LinuC レベル1/LPIC-1の102範囲を、シェル、ユーザーとセキュリティ、ネットワーク、システム管理の実機演習と章末問題で固めます。Linuxを安全に運用するための知識とコマンド操作を体系的に身につける25レッスンのコースです。

1
102 シェルとスクリプト
01. シェル環境18分
02. testと条件式18分
03. スクリプトの制御18分
04. cronとat15分
05. systemdタイマー18分
06. 過去問 シェル15分
2
102 ユーザーとセキュリティ
01. passwdとshadow18分
02. ユーザー管理コマンド18分
03. suとsudo18分
04. 特殊パーミッション18分
05. ホストのセキュリティ18分
06. SSHとGPG18分
07. 過去問 ユーザーとセキュリティ15分
3
102 ネットワーク
01. TCP/IPとウェルノウンポート18分
02. アドレス設定18分
03. ルーティング18分
04. 名前解決の設定18分
05. 疎通トラブルシュート18分
06. 過去問 ネットワーク15分
4
102 システム管理
01. 時刻とNTP15分
02. ロケールと文字コード18分
03. ログ管理18分
04. サービス管理の試験形式18分
05. メールと印刷のきほん15分
06. 過去問 システム管理15分

ルーティング

経路が複数あるとき、Linux はどれを選ぶのか。答えはロンゲストマッチで、プレフィックス長が長い、つまりより具体的な経路が勝ちます。この原則を頭に置くと ip route show の出力が1行ずつ読めます。

ip route show の1行を読む

プレーンテキスト

default via 192.168.1.1 dev eth0
172.20.0.0/16 via 192.168.1.254 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
要素意味
default0.0.0.0/0 のこと。他のどの経路にも当てはまらないパケットの行き先
via <アドレス>次に渡す相手 (ネクストホップ) のアドレス
dev <名前>どのインターフェースから出すか
proto kernelカーネルが自動で作った経路。scope link は同じリンク上の範囲
metric <数値>同じ宛先に複数経路があるときの優先度。小さいほうが優先

3行目のように via が無い経路は直接接続の経路です。インターフェースにアドレスを付けると自動で作られ、同じセグメントの相手にはルーターを介さず直接届けられます。

via はネクストホップ、dev はインターフェース

ターミナル

ip route add default via 192.168.1.1            # デフォルトゲートウェイ
ip route add 172.20.0.0/16 via 192.168.1.254    # 静的経路。ルーター経由
ip route add 10.10.0.0/16 dev eth0              # 直接接続として扱う
ip route del 172.20.0.0/16                      # 経路を消す
ip route get 172.20.5.1                         # この宛先にどの経路が使われるか

デフォルト経路は default とも 0.0.0.0/0 とも書け、どちらも正しい書き方です。ip route get は宛先アドレスを渡すと、実際に選ばれる経路と送信元アドレスを教えてくれます。テーブルを目で追う必要がないので、実務で強い道具です。

ip route add で追加した経路も、アドレスと同じく再起動で消えます。恒久化は /etc/network/interfaces の gateway 行や、NetworkManager の設定、systemd-networkd の Gateway= で行います。

旧 route コマンドとの対応

route -n が ip route show、route add default gw <IP> が ip route add default via <IP>、route add -net <網> netmask <マスク> gw <IP> が ip route add <網>/<長さ> via <IP> に対応します。route del default はそのまま ip route del default です。

route -n の -n は名前解決をせず数値のまま表示するオプションで、DNS が引けない環境で route が固まるのを避けるために付けます。出力には Flags 列があり、U は経路が有効、G はゲートウェイ経由、H はホスト単位の経路です。デフォルトゲートウェイの行は UG になります。

IP フォワーディングは既定で無効

Linux が受け取ったパケットを別のインターフェースへ転送する機能です。ルーターや NAT ゲートウェイを作るときに有効化します。現在の値は 0 が無効、1 が有効です。

ターミナル

cat /proc/sys/net/ipv4/ip_forward
sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1

一時的に有効化するには sysctl -w を使うか、/proc/sys/net/ipv4/ip_forward へ 1 を書き込みます。どちらも同じ場所を触っています。再起動しても残すには /etc/sysctl.conf か /etc/sysctl.d/ 配下に net.ipv4.ip_forward = 1 の行を書き、sysctl -p で読み込みます。IPv6 では net.ipv6.conf.all.forwarding が対応します。

/proc/sys/ 配下のパス区切りのスラッシュをドットに置き換えたものが sysctl のパラメータ名です。この対応を覚えておくと両方の書き方に迷いません。

試験で狙われるところ

デフォルト経路は default とも 0.0.0.0/0 とも書けます。via はネクストホップのアドレス、dev はインターフェース名で役割が違います。metric は小さいほうが優先です。ip route で足した経路は再起動で消えます。そして直接接続の経路には via が付きません。

ヒント

まず ip route show を打ってください。192.168.50.0/24 の1行だけがあるはずです。これが直接接続の経路です

経路を足すのは ip route add <宛先> via <ネクストホップ> です。デフォルト経路のときは宛先の代わりに default と書きます

ip route add default via 192.168.50.1 と ip route add 10.20.0.0/16 via 192.168.50.254 の2行です

  • 1. ip route show で現在のルーティングテーブルを確かめる
  • 2. ip route add default via 192.168.50.1 でデフォルトゲートウェイを足す
  • 3. ip route add 10.20.0.0/16 via 192.168.50.254 で静的経路を足す
  • 4. ip route show でテーブルの並びを確かめる
  • 5. ip route get 10.20.5.1 で、どの経路が選ばれるかを確かめる

Linux は使うときに起動します(初回は約102MB通信します)

4 項目で採点します