Access from '18.117.101.7'
You are in US.
It is 19:18 JST now.
Hook ifupdown NetworkManager networkd-dispatcher
pre-up if-pre-up.d pre-up.d no-carrier.d *
dormant.d *
carrier.d *
configuring.d *
post-up if-up.d up.d degraded.d *
routable.d *
configured.d *
pre-down if-down.d pre-down.d N/A **
post-down if-post-down.d down.d off.d *

ネットワークを設定するにあたり、イーサーネットデバイスの設定前や設定後などに使用するshell scriptなど、実行したいコマンド等を /etc/networkd-dispatcher/ の下 それぞれ carrier.d degraded.d dormant.d no-carrier.d off.d routable.d 以下に置くことで実行できるようになる。
* ifupdown と等価という訳では無く、同期されずに実行されます。 つまり、別の状態への移行をブロックしません。
** systemd-networkd は内部状態を保持しませんが、カーネルの内部ネットリンク状態を使用します。 したがって、「ダウン前」状態について知ることはできず、pre-down は使用できません。ネットリンクがインターフェースがダウンしていると報告すると (つまり、「ip link set eth0 down」)、インターフェースはオフとみなされ、off.d フックがトリガーされます。 ネットリンクの状態以外に利用可能な情報や D-Bus プロパティはありません。

Ubuntu Server 版の場合はNetwokdを使用しいるので networkd-dispatcher 配下になり、Desktop版の場合はNetworkManager(GUI使用の為)で /etc/NetworkManager/dispatcher.d/ となる。
これらの詳細は https://netplan.io/faq#example-for-an-ifupdown-legacy-hook-for-post-up%2Fpost-down-states を参照。

networkd-dispatcher の実例で ifup後に実行される Shell script。 /etc/networkd-dispatcher/routable.d/50-ifup-hooks

#!/bin/sh
for d in up post-up; do
    hookdir=/etc/network/if-${d}.d
    [ -e $hookdir ] && /bin/run-parts $hookdir
done
exit 0

同様に ifdown 時に実行する例で /etc/networkd-dispatcher/off.d/50-ifdown-hooksである。

#!/bin/sh
for d in down post-down; do
    hookdir=/etc/network/if-${d}.d
    [ -e $hookdir ] && /bin/run-parts $hookdir
done
exit 0