ネットワーク

Linuxのネットワーク設定と管理

Linuxのネットワークスタックは、カーネル内のTCP/IP実装を中心に構成されています。 インターフェース設定、ルーティング、ファイアウォール、ソケット通信などを管理します。

基本コマンド

1# ネットワークインターフェース
2ip addr # IPアドレス確認
3ip link # リンク状態確認
4ip route # ルーティングテーブル
5
6# 接続確認
7ping host
8traceroute host
9mtr host # 継続的な経路監視
10
11# DNS
12dig example.com
13nslookup example.com
14cat /etc/resolv.conf
15
16# ソケット・接続
17ss -tuln # リスニングポート
18ss -tunp # 接続中ソケット(プロセス名付き)
19netstat -tuln # 従来のコマンド

設定ファイル

/etc/hosts

ローカルホスト名解決

/etc/resolv.conf

DNSサーバー設定

/etc/sysconfig/network-scripts/

RHEL系のインターフェース設定

/etc/netplan/

Ubuntu 18.04以降のネットワーク設定

ネットワーク名前空間

Network Namespaceはネットワークスタックを分離する機能。 コンテナ技術の基盤として使用されます。

1# 名前空間一覧
2ip netns list
3
4# 名前空間作成
5ip netns add myns
6
7# 名前空間内でコマンド実行
8ip netns exec myns ip addr
9
10# vethペアで接続
11ip link add veth0 type veth peer name veth1
12ip link set veth1 netns myns

SRE/インフラ観点

監視・トラブルシューティング

  • 接続問題: ss, netstat, tcpdump
  • 帯域: iftop, nethogs, iperf
  • パケットロス: mtr, ping統計
  • DNS問題: dig +trace, nslookup

詳細トピック