Alpine Linux 镜像中 /etc/network 的内容

Alpine Linux 镜像中 /etc/network 的内容

我在 Docker 容器上安装了 Alpine Linux 映像。我正在探索它,并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 的内容,但我无法理解这一切的目的是什么。有人可以解释一下吗?

答案1

这些文件夹是ifupdown的钩子,ifupdown的实现有很多,但是alpine默认的是busybox的,你可以在这里查看源码网络/ifupdown.c

busybox仅处理auto接口,支持这些内置类型。

  • 内网
    • 手动 wvdial ppp 静态 bootp dhcp 环回
  • 内网6
    • 静态手动环回 v4tunnel

ifupdown 有两个 $MODE (updown),对于每个模式,有两个钩子:pre-post-

文件夹包含将由 调用的钩子脚本run-parts,检查代码流程

您可以使用钩子来实现额外的类型,以使配置更容易,就像bonding提供的那样粘合包裹。所有现有脚本都是这里

爸爸由 busybox 提供用于 IPv6 增强型重复地址检测。

相关内容