「TCP/IP」の版間の差分
ナビゲーションに移動
検索に移動
76行目: | 76行目: | ||
===Network Namespace=== | ===Network Namespace=== | ||
---- | ---- | ||
− | * ip netns add {{名前}} | + | * ip netns add {{名前}}で新しいNetwork Namespaceを作成できる |
− | + | * ip netns delete {{名前}}で削除 | |
<pre> | <pre> | ||
$ sudo ip netns add helloworld | $ sudo ip netns add helloworld | ||
85行目: | 85行目: | ||
* ip nets exec | * ip nets exec | ||
− | ** | + | ** 指定したNetwork Namespace環境でコマンドを実行 |
<pre> | <pre> | ||
$ sudo ip netns exec helloworld ip address show | $ sudo ip netns exec helloworld ip address show | ||
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 | 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 | ||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 | link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 | ||
+ | </pre> | ||
+ | |||
+ | * Network Namespaceでシェルも起動できる | ||
+ | <pre> | ||
+ | $ sudo ip netns exec helloworld bash | ||
</pre> | </pre> |
2022年2月15日 (火) 14:17時点における版
目次
TCP/IP
ip address show
- inet の後がIPアドレス
- lo,ens3 はネットワークインターフェース(NICや無線LANアダプタなどを抽象化)
- IPアドレスはネットワークインターフェースに付与される
- 127.0.0.1はループバックアドレスで、自分自身を表す
- ループバックアドレスが付与されているインターフェースはループバックインターフェース
$ ip address show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:97:68:97 brd ff:ff:ff:ff:ff:ff inet 192.168.122.243/24 brd 192.168.122.255 scope global dynamic ens3 valid_lft 3189sec preferred_lft 3189sec inet6 fe80::5054:ff:fe97:6897/64 scope link valid_lft forever preferred_lft forever
tcpdump パケットキャプチャ
- -t : 時刻情報出力抑制
- -n : IP逆引きしない
- -i : 対象インターフェースを指定 anyで全て
- icmp : icmp プロトコルに限定
$ sudo tcpdump -tn -i any icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes IP 192.168.122.243 > 8.8.8.8: ICMP echo request, id 2, seq 1, length 64 IP 8.8.8.8 > 192.168.122.243: ICMP echo reply, id 2, seq 1, length 64 IP 192.168.122.243 > 8.8.8.8: ICMP echo request, id 2, seq 2, length 64 IP 8.8.8.8 > 192.168.122.243: ICMP echo reply, id 2, seq 2, length 64
traceroute
- パケット通過ルーター
- TTL : 0-255と解釈される値が入りパケット送出時にノードが初期値を設定、ルーター追加ごとに1つづつ値が減る。経路で値が0になるとルーターにより破棄されるが、この時ルーターは、ICMPで時間切れメッセージを送信元に送る
- TTLにあえて小さな値を設定し、TTLを1つづつ増やしたパケットを送信、時間切れをおこした通知を組み立てる
- 時間切れを通知しないルーター設定は、* となる
$ traceroute typea.info traceroute to typea.info (160.16.110.88), 64 hops max 1 192.168.122.1 0.343ms 0.288ms 0.301ms 2 192.168.0.1 0.694ms 0.492ms 0.487ms 3 210.173.146.32 4.710ms 4.013ms 3.784ms 4 210.173.145.69 3.968ms 4.044ms 4.072ms 5 210.173.150.97 3.557ms 4.091ms 3.896ms 6 210.171.224.113 9.550ms 7.866ms 8.150ms 7 * * * 8 * * * 9 * * * 10 * * * 11 160.16.110.88 11.148ms 12.124ms 12.150ms
ip route show ルーティングテーブル
- 複数のルーティングエントリから構成(それぞれの行)
- 先頭に宛先のIPアドレス
- 宛先に続くのがネクストホップ(パケットを次に渡す相手)
$ ip route show default via 192.168.122.1 dev ens3 proto dhcp src 192.168.122.243 metric 100 192.168.122.0/24 dev ens3 proto kernel scope link src 192.168.122.243 192.168.122.1 dev ens3 proto dhcp scope link src 192.168.122.243 metric 100
Network Namespace
$ sudo ip netns add helloworld $ ip netns list helloworld
- ip nets exec
- 指定したNetwork Namespace環境でコマンドを実行
$ sudo ip netns exec helloworld ip address show 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- Network Namespaceでシェルも起動できる
$ sudo ip netns exec helloworld bash
© 2006 矢木浩人