ipコマンド¶
monitor¶
詳しくはNETLINK, RTNETLINKなどを見ましょう。
monitor route (IPv4/IPv6対応)¶
経路の追加削除をmonitorします。
トリガとなるコマンド例
sudo ip route delete 10.1.1.1/32
sudo ip route add 10.1.1.1/32 via 192.168.101.2
sudo ip route add 2001:db8::/32 via fe80::dead:beed dev enp2s0
sudo ip route del 2001:db8::/32 via fe80::dead:beed
出力例
Deleted 10.1.1.1 via 192.168.101.2 dev enp2s0
10.1.1.1 via 192.168.101.2 dev enp2s0
2001:db8::/32 via fe80::dead:beed dev enp2s0 metric 1024 pref medium
Deleted 2001:db8::/32 via fe80::dead:beed dev enp2s0 metric 1024 pref medium
monitor link¶
リンク状態をmonitorします。admin状態の辺かも検知します。
トリガとなるコマンド例
sudo ip link set down dev enp1s0f0np0
出力例
3: enp1s0f0np0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default
link/ether b8:3f:d2:0f:d7:ee brd ff:ff:ff:ff:ff:ff
3: enp1s0f0np0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default
link/ether b8:3f:d2:0f:d7:ee brd ff:ff:ff:ff:ff:ff
monitor neigh¶
ARP/NDテーブルのクエリをmonitorします。IPv4, IPv6が一緒に出てきます。
トリガとなるコマンド例
> pingでもなんでも同一リンク上のアドレスにアクセス
192.168.101.50 dev enp2s0 lladdr 1c:83:41:00:00:00 REACHABLE
192.168.101.1 dev enp2s0 lladdr 14:eb:b6:00:00:00 STALE
192.168.101.49 dev enp2s0 FAILED
2400:beef:beef:f000::1 dev enp2s0 FAILED
monitor address¶
IPアドレスの付与・削除やRAで付与されたアドレスの再付与をmonitorします。RAが送られるたび出ます。
kanai@kanaipc1:~$ sudo ip addr add 10.0.0.1/28 dev enp1s0f0np0
kanai@kanaipc1:~$ sudo ip addr del 10.0.0.1/28 dev enp1s0f0np0
また`03:27:08.068173 IP6 _gateway > ip6-allnodes: ICMP6, router advertisement, length 96`を受けたタイミングでも出ます
3: enp1s0f0np0 inet 10.0.0.1/28 scope global enp1s0f0np0
valid_lft forever preferred_lft forever
Deleted 3: enp1s0f0np0 inet 10.0.0.1/28 scope global enp1s0f0np0
valid_lft forever preferred_lft forever
# 以下はRAを受けときのもの
2: enp2s0 inet6 2400:4050:aaaa:aaaa::beef/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 300sec preferred_lft 300sec
monitor nsid¶
Network NameSpaceの作成を検知します。実際にI/Fがアサインされたときにnsidが割り当てられることに注意します。
トリガとなるコマンド例
sudo ip netns add pc2 # ここではなにも出ない
sudo ip link set enp1s0f1np1 netns pc2
sudo ip netns del pc2
nsid 0 (iproute2 netns name: pc2)
Deleted nsid 0 (iproute2 netns name: pc2)