ネットワーク
Linuxのネットワーク設定と管理
Linuxのネットワークスタックは、カーネル内のTCP/IP実装を中心に構成されています。 インターフェース設定、ルーティング、ファイアウォール、ソケット通信などを管理します。
基本コマンド
1 # ネットワークインターフェース 2 ip addr # IPアドレス確認 3 ip link # リンク状態確認 4 ip route # ルーティングテーブル 5 6 # 接続確認 7 ping host 8 traceroute host 9 mtr host # 継続的な経路監視 10 11 # DNS 12 dig example.com 13 nslookup example.com 14 cat /etc/resolv.conf 15 16 # ソケット・接続 17 ss -tuln # リスニングポート 18 ss -tunp # 接続中ソケット(プロセス名付き) 19 netstat -tuln # 従来のコマンド
設定ファイル
/etc/hostsローカルホスト名解決
/etc/resolv.confDNSサーバー設定
/etc/sysconfig/network-scripts/RHEL系のインターフェース設定
/etc/netplan/Ubuntu 18.04以降のネットワーク設定
ネットワーク名前空間
Network Namespaceはネットワークスタックを分離する機能。 コンテナ技術の基盤として使用されます。
1 # 名前空間一覧 2 ip netns list 3 4 # 名前空間作成 5 ip netns add myns 6 7 # 名前空間内でコマンド実行 8 ip netns exec myns ip addr 9 10 # vethペアで接続 11 ip link add veth0 type veth peer name veth1 12 ip link set veth1 netns myns
SRE/インフラ観点
監視・トラブルシューティング
- • 接続問題: ss, netstat, tcpdump
- • 帯域: iftop, nethogs, iperf
- • パケットロス: mtr, ping統計
- • DNS問題: dig +trace, nslookup