DockerコンテナにAlpineLinuxイメージをインストールしています。私はそれを調査し、ls -lR /etc/network
を実行していました この結果が出ました:
/etc/network/:
total 24
drwxr-xr-x 2 root root 4096 Jan 16 2020 if-down.d
drwxr-xr-x 2 root root 4096 Jan 16 2020 if-post-down.d
drwxr-xr-x 2 root root 4096 Jan 16 2020 if-post-up.d
drwxr-xr-x 2 root root 4096 Jan 16 2020 if-pre-down.d
drwxr-xr-x 2 root root 4096 Jan 16 2020 if-pre-up.d
drwxr-xr-x 2 root root 4096 Jan 16 2020 if-up.d
/etc/network/if-down.d:
total 0
/etc/network/if-post-down.d:
total 0
/etc/network/if-post-up.d:
total 0
/etc/network/if-pre-down.d:
total 0
/etc/network/if-pre-up.d:
total 0
/etc/network/if-up.d:
total 4
-rwxrwxr-x 1 root root 218 Jan 15 2020 dad
/etc/network/if-up.d/dad
の内部 見つけた:
#!/bin/sh
# Block ifup until DAD completion
# Copyright (c) 2016-2018 Kaarle Ritvanen
has_flag() {
ip address show dev $IFACE | grep -q \" $1 \"
}
while has_flag tentative && ! has_flag dadfailed; do
sleep 0.2
done
これらのフォルダが存在する理由と、それがdad
の目的である理由を理解しようとしています。 。インターネットで検索しましたが、何も役に立ちませんでした。 / etc / network / interfacesのようなものを見つけることを期待していましたが、このすべての目的が理解できません。誰かがそれを説明できますか?
承認された回答:
これらのフォルダはifupdownのフックであり、ifupdownの実装はたくさんありますが、alpineのデフォルトのフォルダはbusyboxです。ここで、networking/ifupdown.cのソースを確認できます。
busyboxはauto
のみを処理します インターフェイス、これらの組み込みタイプをサポートします。
- inet
- 手動wvdialpppstaticbootpdhcpループバック
- inet6
- 静的手動ループバックv4tunnel
ifupdownには$MODE、up
が2つあります 、down
、モードごとに、2つのフックがあります。pre-
、post-
。
フォルダには、run-parts
によって呼び出されるフックスクリプトが含まれています 、コードプロセスを確認してください。
フックを使用して追加のタイプを実装し、bonding
のように構成を簡単にすることができます ボンディングパッケージによって提供されます。既存のスクリプトはすべてここにあります。
お父さんは、IPv6拡張重複アドレス検出用のbusyboxによって提供されます。