network について
ネットワークの接続問題の調査やインフラ設定に使うスキルです。DNS、SSL/TLS、ロードバランサー、トラフィック分析、性能診断のコマンド例と手順を扱います。
主な機能
- 01接続とポートの確認
- 02DNS と SSL/TLS のデバッグ
- 03ロードバランサー設定のガイダンス
- 04パケットキャプチャとトラフィック分析
- 05一般的なネットワーク問題の診断
活用シーン
- 01API のタイムアウト調査
- 02DNS や証明書エラーの対応
- 03ロードバランサーの設定
- 04ネットワーク遅延やパケットの確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ htlin222/ dotfiles --skill networkインストール後、Claude Code で/networkを入力して読み込まれたか確認します。
詳細
ネットワークエンジニアリング
接続をデバッグし、ネットワークインフラストラクチャを設定します。
使用する場面
- 接続の問題
- ロードバランサーの設定
- SSL/TLS の問題
- DNS のデバッグ
- ネットワークパフォーマンス
診断コマンド
接続テスト
# Basic connectivity
ping -c 4 host.example.com
traceroute host.example.com
# Port check
nc -zv host.example.com 443
telnet host.example.com 80
# DNS lookup
dig +short example.com
dig +trace example.com
nslookup -type=MX example.com
# HTTP testing
curl -v https://api.example.com/health
curl -w "@curl-format.txt" -o /dev/null -s https://example.com
curl-format.txt
time_namelookup: %{time_namelookup}s\n
time_connect: %{time_connect}s\n
time_appconnect: %{time_appconnect}s\n
time_pretransfer: %{time_pretransfer}s\n
time_redirect: %{time_redirect}s\n
time_starttransfer: %{time_starttransfer}s\n
----------\n
time_total: %{time_total}s\n
SSL/TLS のデバッグ
# Check certificate
openssl s_client -connect example.com:443 -servername example.com
# Verify certificate chain
openssl s_client -connect example.com:443 -showcerts
# Check expiry
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
# Test specific TLS version
curl --tlsv1.2 --tls-max 1.2 https://example.com
ロードバランサーの設定
Nginx
upstream backend {
least_conn;
server backend1.example.com:8080 weight=5;
server backend2.example.com:8080 weight=3;
server backend3.example.com:8080 backup;
keepalive 32;
}
server {
listen 443 ssl http2;
server_name api.example.com;
ssl_certificate /etc/ssl/certs/api.crt;
ssl_certificate_key /etc/ssl/private/api.key;
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_connect_timeout 5s;
proxy_read_timeout 60s;
}
location /health {
access_log off;
return 200 "OK";
}
}
トラフィック分析
# Capture packets
tcpdump -i eth0 -w capture.pcap port 443
# Read capture
tcpdump -r capture.pcap -n
# Filter by host
tcpdump -i any host 10.0.0.1 and port 80
# Show HTTP requests
tcpdump -i any -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
よくある問題
| 症状 | 確認項目 | 修正方法 |
|---|---|---|
| 接続が拒否される | ポートは開いているか?サービスは稼働しているか? | サービスを起動し、ファイアウォールを開放する |
| 接続がタイムアウトする | ファイアウォールか?ルートか? | セキュリティグループとルーティングを確認する |
| SSL エラー | 証明書は有効か?チェーンは完全か? | 証明書を更新し、チェーンを修正する |
| DNS の障害 | リゾルバーか?レコードは存在するか? | DNS 設定を確認し、レコードを追加する |
| 応答が遅い | レイテンシか?帯域幅か? | ルートを最適化し、容量を増やす |
例
入力:「API 呼び出しがタイムアウトする」 **アクション:**接続をテストし、DNS を確認し、SSL を検証し、レイテンシを分析する
入力:「ロードバランサーを設定する」 **アクション:**nginx/HAProxy を設定し、ヘルスチェックを追加し、フェイルオーバーをテストする
コメント
Markdown 対応