aboutsummaryrefslogtreecommitdiff
path: root/straper/db/public/network/etc-network
diff options
context:
space:
mode:
Diffstat (limited to 'straper/db/public/network/etc-network')
-rwxr-xr-xstraper/db/public/network/etc-network/if-down.d/postfix3
-rwxr-xr-xstraper/db/public/network/etc-network/if-down.d/resolved26
-rwxr-xr-xstraper/db/public/network/etc-network/if-post-down.d/wireless-tools78
-rwxr-xr-xstraper/db/public/network/etc-network/if-pre-up.d/ethtool14
-rwxr-xr-xstraper/db/public/network/etc-network/if-pre-up.d/wireless-tools143
-rwxr-xr-xstraper/db/public/network/etc-network/if-up.d/ethtool55
-rwxr-xr-xstraper/db/public/network/etc-network/if-up.d/postfix3
-rwxr-xr-xstraper/db/public/network/etc-network/if-up.d/resolved131
-rw-r--r--straper/db/public/network/etc-network/interfaces7
9 files changed, 460 insertions, 0 deletions
diff --git a/straper/db/public/network/etc-network/if-down.d/postfix b/straper/db/public/network/etc-network/if-down.d/postfix
new file mode 100755
index 0000000..9db2b8b
--- /dev/null
+++ b/straper/db/public/network/etc-network/if-down.d/postfix
@@ -0,0 +1,3 @@
+#! /bin/sh
+# update postfix copy of resolv.conf (picked up automatically); only default instance is handled
+[ lo != "$IFACE" ] && cp -pLu /etc/resolv.conf /var/spool/postfix/etc/resolv.conf 2>/dev/null || :
diff --git a/straper/db/public/network/etc-network/if-down.d/resolved b/straper/db/public/network/etc-network/if-down.d/resolved
new file mode 100755
index 0000000..5c603d8
--- /dev/null
+++ b/straper/db/public/network/etc-network/if-down.d/resolved
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# Script fragment to make ifupdown supply DNS information to resolved
+#
+
+case "$ADDRFAM" in
+ inet|inet6) : ;;
+ *) exit 0 ;;
+esac
+
+if systemctl is-enabled systemd-resolved > /dev/null 2>&1; then
+ interface=$IFACE
+ if [ ! "$interface" ]; then
+ return
+ fi
+ ifindex=$(cat "/sys/class/net/$interface/ifindex")
+ if [ ! "$ifindex" ]; then
+ return
+ fi
+ mystatedir=/run/network
+ statedir=/run/systemd/resolve/netif
+ rm -f "$mystatedir/isc-dhcp-v4-$interface" "$mystatedir/isc-dhcp-v6-$interface" "$mystatedir/ifupdown-inet-$interface" "$mystatedir/ifupdown-inet6-$interface" "$statedir/$ifindex"
+ if systemctl --quiet is-active systemd-resolved; then
+ resolvectl revert "$ifindex" || true
+ fi
+fi
diff --git a/straper/db/public/network/etc-network/if-post-down.d/wireless-tools b/straper/db/public/network/etc-network/if-post-down.d/wireless-tools
new file mode 100755
index 0000000..7ddf29f
--- /dev/null
+++ b/straper/db/public/network/etc-network/if-post-down.d/wireless-tools
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+IWCONFIG=/usr/sbin/iwconfig
+
+if [ ! -x $IWCONFIG ]; then
+ exit 0
+fi
+
+# check if this is a 802.11 device we're supposed to be effecting
+case "${IF_WIRELESS:-enable}" in
+ wireless-tools|iwconfig)
+ # *we* and not some other 802.11 tool should be used
+ ;;
+ true|yes|enable|1)
+ # 802.11 should be used on this device, check for extensions
+ $IWCONFIG $IFACE >/dev/null 2>&1 || exit 0
+ ;;
+ *)
+ exit 0
+ ;;
+esac
+
+apply_settings()
+{
+ if [ -n "$IF_WIRELESS_MODE" ]; then
+ $IWCONFIG "$IFACE" mode auto
+ fi
+
+ if [ -n "$IF_WIRELESS_AP" ]; then
+ $IWCONFIG "$IFACE" ap off
+ fi
+
+ if [ -n "$IF_WIRELESS_RATE" ]; then
+ $IWCONFIG "$IFACE" rate auto
+ fi
+
+ if [ -n "$IF_WIRELESS_RTS" ]; then
+ $IWCONFIG "$IFACE" rts auto
+ fi
+
+ if [ -n "$IF_WIRELESS_FRAG" ]; then
+ $IWCONFIG "$IFACE" frag auto
+ fi
+
+ if [ -n "$IF_WIRELESS_POWER" ]; then
+ $IWCONFIG "$IFACE" power off
+ fi
+
+ if [ -n "$IF_WIRELESS_TXPOWER" ]; then
+ $IWCONFIG "$IFACE" txpower auto
+ fi
+
+ if [ -n "$IF_WIRELESS_ENC" ]; then
+ $IWCONFIG "$IFACE" enc off
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY" ]; then
+ $IWCONFIG "$IFACE" key off
+ fi
+
+ if [ -n "$IF_WIRELESS_DEFAULTKEY" ]; then
+ $IWCONFIG "$IFACE" key off
+ fi
+
+ if [ -n "$IF_WIRELESS_NWID" ]; then
+ $IWCONFIG "$IFACE" nwid off
+ fi
+
+ if [ -n "$IF_WIRELESS_ESSID" ]; then
+ $IWCONFIG "$IFACE" essid any
+ fi
+
+ if [ -n "$IF_WIRELESS_COMMIT" ]; then
+ $IWCONFIG "$IFACE" commit
+ fi
+}
+
+apply_settings 2>/dev/null
diff --git a/straper/db/public/network/etc-network/if-pre-up.d/ethtool b/straper/db/public/network/etc-network/if-pre-up.d/ethtool
new file mode 100755
index 0000000..6c1d5de
--- /dev/null
+++ b/straper/db/public/network/etc-network/if-pre-up.d/ethtool
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+ETHTOOL=/usr/sbin/ethtool
+
+test -x $ETHTOOL || exit 0
+
+[ "$IFACE" != "lo" ] || exit 0
+
+# Gather together the mixed bag of settings applied with -s/--change
+SETTINGS="\
+${IF_ETHERNET_PORT:+ port $IF_ETHERNET_PORT}\
+${IF_DRIVER_MESSAGE_LEVEL:+ msglvl $IF_DRIVER_MESSAGE_LEVEL}\
+"
+[ -z "$SETTINGS" ] || $ETHTOOL --change "$IFACE" $SETTINGS
diff --git a/straper/db/public/network/etc-network/if-pre-up.d/wireless-tools b/straper/db/public/network/etc-network/if-pre-up.d/wireless-tools
new file mode 100755
index 0000000..fcabb34
--- /dev/null
+++ b/straper/db/public/network/etc-network/if-pre-up.d/wireless-tools
@@ -0,0 +1,143 @@
+#!/bin/sh
+
+IWCONFIG=/sbin/iwconfig
+
+if [ ! -x $IWCONFIG ]; then
+ exit 0
+fi
+
+# check if this is a 802.11 device we're supposed to be effecting
+case "${IF_WIRELESS:-enable}" in
+ wireless-tools|iwconfig)
+ # *we* and not some other 802.11 tool should be used
+ ;;
+ true|yes|enable|1)
+ # 802.11 should be used on this device, check for extensions
+ $IWCONFIG $IFACE >/dev/null 2>&1 || exit 0
+ ;;
+ *)
+ exit 0
+ ;;
+esac
+
+# The wireless driver madness:
+#
+# - Some drivers want everything to be configured before bringing the interface up
+# - Some drivers want everything to be configured after bringing the interface up
+# - Some drivers want some parameters before, other parameters after bringing the interface up
+#
+# So, we try to set every parameter when the interface is still down,
+# and remember which ones failed to be configured properly.
+# If some failed, we bring the interface up, and try the failed ones again.
+
+apply_settings()
+{
+ if [ -n "$IF_WIRELESS_SENS" ]; then
+ $IWCONFIG "$IFACE" sens $IF_WIRELESS_SENS && IF_WIRELESS_SENS= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_MODE" ]; then
+ $IWCONFIG "$IFACE" mode $IF_WIRELESS_MODE && IF_WIRELESS_MODE= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_AP" ]; then
+ $IWCONFIG "$IFACE" ap $IF_WIRELESS_AP && IF_WIRELESS_AP= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_RATE" ]; then
+ $IWCONFIG "$IFACE" rate $IF_WIRELESS_RATE && IF_WIRELESS_RATE= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_RTS" ]; then
+ $IWCONFIG "$IFACE" rts $IF_WIRELESS_RTS && IF_WIRELESS_RTS= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_FRAG" ]; then
+ $IWCONFIG "$IFACE" frag $IF_WIRELESS_FRAG && IF_WIRELESS_FRAG= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_POWER" ]; then
+ $IWCONFIG "$IFACE" power $IF_WIRELESS_POWER && IF_WIRELESS_POWER= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_POWERPERIOD" ]; then
+ $IWCONFIG "$IFACE" power period $IF_WIRELESS_POWERPERIOD && IF_WIRELESS_POWERPERIOD= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_POWERTIMEOUT" ]; then
+ $IWCONFIG "$IFACE" power timeout $IF_WIRELESS_POWERTIMEOUT && IF_WIRELESS_POWERTIMEOUT= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_TXPOWER" ]; then
+ $IWCONFIG "$IFACE" txpower $IF_WIRELESS_TXPOWER && IF_WIRELESS_TXPOWER= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_RETRY" ]; then
+ $IWCONFIG "$IFACE" retry $IF_WIRELESS_RETRY && IF_WIRELESS_RETRY= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_ENC" ]; then
+ eval $IWCONFIG "$IFACE" enc $IF_WIRELESS_ENC && IF_WIRELESS_ENC= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_DEFAULTKEY" ]; then
+ $IWCONFIG "$IFACE" key ["$IF_WIRELESS_DEFAULTKEY"] && IF_WIRELESS_DEFAULTKEY= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEYMODE" ]; then
+ $IWCONFIG "$IFACE" key "$IF_WIRELESS_KEYMODE" && IF_WIRELESS_KEYMODE= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY" ]; then
+ eval $IWCONFIG "$IFACE" key $IF_WIRELESS_KEY && IF_WIRELESS_KEY= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY1" ]; then
+ $IWCONFIG "$IFACE" key [1] "$IF_WIRELESS_KEY1" && IF_WIRELESS_KEY1= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY2" ]; then
+ $IWCONFIG "$IFACE" key [2] "$IF_WIRELESS_KEY2" && IF_WIRELESS_KEY2= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY3" ]; then
+ $IWCONFIG "$IFACE" key [3] "$IF_WIRELESS_KEY3" && IF_WIRELESS_KEY3= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_KEY4" ]; then
+ $IWCONFIG "$IFACE" key [4] "$IF_WIRELESS_KEY4" && IF_WIRELESS_KEY4= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_FREQ" ]; then
+ $IWCONFIG "$IFACE" freq $IF_WIRELESS_FREQ && IF_WIRELESS_FREQ= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_CHANNEL" ]; then
+ $IWCONFIG "$IFACE" channel $IF_WIRELESS_CHANNEL && IF_WIRELESS_CHANNEL= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_NICK" ]; then
+ $IWCONFIG "$IFACE" nick "$IF_WIRELESS_NICK" && IF_WIRELESS_NICK= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_NWID" ]; then
+ $IWCONFIG "$IFACE" nwid "$IF_WIRELESS_NWID" && IF_WIRELESS_NWID= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_ESSID" ]; then
+ $IWCONFIG "$IFACE" essid "$IF_WIRELESS_ESSID" && IF_WIRELESS_ESSID= || FAIL=true
+ fi
+
+ if [ -n "$IF_WIRELESS_COMMIT" ]; then
+ $IWCONFIG "$IFACE" commit && IF_WIRELESS_COMMIT= || FAIL=true
+ fi
+}
+
+FAIL=
+apply_settings 2>/dev/null
+
+if [ -n "$FAIL" ]; then
+ FAIL=
+ ip link set dev "$IFACE" up
+ apply_settings
+fi
diff --git a/straper/db/public/network/etc-network/if-up.d/ethtool b/straper/db/public/network/etc-network/if-up.d/ethtool
new file mode 100755
index 0000000..05b56d7
--- /dev/null
+++ b/straper/db/public/network/etc-network/if-up.d/ethtool
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+ETHTOOL=/usr/sbin/ethtool
+
+test -x $ETHTOOL || exit 0
+
+[ "$IFACE" != "lo" ] || exit 0
+
+# Find settings with a given prefix and print them as they appeared in
+# /etc/network/interfaces, only with the prefix removed.
+# This actually prints each name and value on a separate line, but that
+# doesn't matter to the shell.
+gather_settings () {
+ set | sed -n "
+/^IF_$1[A-Za-z0-9_]*=/ {
+ h; # hold line
+ s/^IF_$1//; s/=.*//; s/_/-/g; # get name without prefix
+ y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/; # lower-case
+ p;
+ g; # restore line
+ s/^[^=]*=//; s/^'\(.*\)'/\1/; # get value
+ p;
+}"
+}
+
+# Gather together the mixed bag of settings applied with -s/--change
+SETTINGS="\
+${IF_LINK_SPEED:+ speed $IF_LINK_SPEED}\
+${IF_LINK_DUPLEX:+ duplex $IF_LINK_DUPLEX}\
+"
+
+# WOL has an optional pass-key
+set -- $IF_ETHERNET_WOL
+SETTINGS="$SETTINGS${1:+ wol $1}${2:+ sopass $2}"
+
+# Autonegotiation can be on|off or an advertising mask
+case "$IF_ETHERNET_AUTONEG" in
+'') ;;
+on|off) SETTINGS="$SETTINGS autoneg $IF_ETHERNET_AUTONEG" ;;
+*) SETTINGS="$SETTINGS autoneg on advertise $IF_ETHERNET_AUTONEG" ;;
+esac
+
+[ -z "$SETTINGS" ] || $ETHTOOL --change "$IFACE" $SETTINGS
+
+SETTINGS="$(gather_settings ETHERNET_PAUSE_)"
+[ -z "$SETTINGS" ] || $ETHTOOL --pause "$IFACE" $SETTINGS
+
+SETTINGS="$(gather_settings HARDWARE_IRQ_COALESCE_)"
+[ -z "$SETTINGS" ] || $ETHTOOL --coalesce "$IFACE" $SETTINGS
+
+SETTINGS="$(gather_settings HARDWARE_DMA_RING_)"
+[ -z "$SETTINGS" ] || $ETHTOOL --set-ring "$IFACE" $SETTINGS
+
+SETTINGS="$(gather_settings OFFLOAD_)"
+[ -z "$SETTINGS" ] || $ETHTOOL --offload "$IFACE" $SETTINGS
diff --git a/straper/db/public/network/etc-network/if-up.d/postfix b/straper/db/public/network/etc-network/if-up.d/postfix
new file mode 100755
index 0000000..9db2b8b
--- /dev/null
+++ b/straper/db/public/network/etc-network/if-up.d/postfix
@@ -0,0 +1,3 @@
+#! /bin/sh
+# update postfix copy of resolv.conf (picked up automatically); only default instance is handled
+[ lo != "$IFACE" ] && cp -pLu /etc/resolv.conf /var/spool/postfix/etc/resolv.conf 2>/dev/null || :
diff --git a/straper/db/public/network/etc-network/if-up.d/resolved b/straper/db/public/network/etc-network/if-up.d/resolved
new file mode 100755
index 0000000..e79f997
--- /dev/null
+++ b/straper/db/public/network/etc-network/if-up.d/resolved
@@ -0,0 +1,131 @@
+#!/bin/sh
+#
+# Script fragment to make ifupdown supply DNS information to resolved
+#
+
+case "$ADDRFAM" in
+ inet|inet6) : ;;
+ *) exit 0 ;;
+esac
+
+if systemctl is-enabled systemd-resolved > /dev/null 2>&1; then
+ interface=$IFACE
+ if [ ! "$interface" ]; then
+ return
+ fi
+ # TODO handle lo interface settings
+ if [ "$interface" = "lo" ]; then
+ return
+ fi
+ ifindex=$(cat "/sys/class/net/$interface/ifindex")
+ if [ ! "$ifindex" ]; then
+ return
+ fi
+ mystatedir=/run/network
+ mkdir -p $mystatedir
+
+ statedir=/run/systemd/resolve/netif
+ mkdir -p $statedir
+ chown systemd-resolve:systemd-resolve $statedir
+
+ oldstate="$(mktemp)"
+ # ignore errors due to nonexistent file
+ md5sum "$mystatedir/isc-dhcp-v4-$interface" "$mystatedir/isc-dhcp-v6-$interface" "$mystatedir/ifupdown-inet-$interface" "$mystatedir/ifupdown-inet6-$interface" > "$oldstate" 2> /dev/null || true
+
+ NEW_DEFAULT_ROUTE=$IF_DNS_DEFAULT_ROUTE
+ NEW_DNS=$(echo $IF_DNS_NAMESERVERS $IF_DNS_NAMESERVER)
+ NEW_DOMAINS=$(echo $IF_DNS_DOMAIN $IF_DNS_SEARCH)
+ DNS=DNS
+ DOMAINS=DOMAINS
+ if [ "$ADDRFAM" = "inet6" ]; then
+ DNS=DNS6
+ DOMAINS=DOMAINS6
+ fi
+ if [ -n "$NEW_DNS" ]; then
+ cat <<EOF >"$mystatedir/ifupdown-${ADDRFAM}-$interface"
+$DNS="$NEW_DNS"
+EOF
+ if [ -n "$NEW_DOMAINS" ]; then
+ cat <<EOF >>"$mystatedir/ifupdown-${ADDRFAM}-$interface"
+$DOMAINS="$NEW_DOMAINS"
+EOF
+ fi
+ fi
+ case "$NEW_DEFAULT_ROUTE" in
+ 1|yes|true|on) NEW_DEFAULT_ROUTE=yes ;;
+ 0|no|false|off) NEW_DEFAULT_ROUTE=no ;;
+ *) NEW_DEFAULT_ROUTE= ;;
+ esac
+ if [ -n "$NEW_DEFAULT_ROUTE" ]; then
+ cat <<EOF >>"$mystatedir/ifupdown-${ADDRFAM}-$interface"
+DEFAULT_ROUTE="$NEW_DEFAULT_ROUTE"
+EOF
+ fi
+
+ newstate="$(mktemp)"
+ # ignore errors due to nonexistent file
+ md5sum "$mystatedir/isc-dhcp-v4-$interface" "$mystatedir/isc-dhcp-v6-$interface" "$mystatedir/ifupdown-inet-$interface" "$mystatedir/ifupdown-inet6-$interface" > "$newstate" 2> /dev/null || true
+ if ! cmp --silent "$oldstate" "$newstate" 2>/dev/null; then
+ unset DNS DNS6 DOMAINS DOMAINS6 DEFAULT_ROUTE
+ # v4 first
+ if [ -e "$mystatedir/isc-dhcp-v4-$interface" ]; then
+ . "$mystatedir/isc-dhcp-v4-$interface"
+ fi
+ # v4 manual config overrides
+ if [ -e "$mystatedir/ifupdown-inet-$interface" ]; then
+ . "$mystatedir/ifupdown-inet-$interface"
+ fi
+ # v6 preffered
+ if [ -e "$mystatedir/isc-dhcp-v6-$interface" ]; then
+ . "$mystatedir/isc-dhcp-v6-$interface"
+ fi
+ # v6 manual config overrides
+ if [ -e "$mystatedir/ifupdown-inet6-$interface" ]; then
+ . "$mystatedir/ifupdown-inet6-$interface"
+ fi
+ resolvectl_failed=
+ if [ "$DNS" ] || [ "$DNS6" ] ; then
+ cat <<EOF >"$statedir/$ifindex"
+# This is private data. Do not parse.
+LLMNR=yes
+MDNS=no
+SERVERS=$(echo $DNS6 $DNS)
+DOMAINS=$(echo $DOMAINS6 $DOMAINS)
+EOF
+ if [ -n "$DEFAULT_ROUTE" ]; then
+ cat <<EOF >>"$statedir/$ifindex"
+DEFAULT_ROUTE=$DEFAULT_ROUTE
+EOF
+ fi
+ chown systemd-resolve:systemd-resolve "$statedir/$ifindex"
+ # In addition to creating the state file (needed if we run before
+ # resolved is started), also feed the information directly to
+ # resolved.
+ if systemctl --quiet is-active systemd-resolved; then
+ resolvectl llmnr "$ifindex" yes || resolvectl_failed=$?
+ resolvectl mdns "$ifindex" no || resolvectl_failed=$?
+ if [ "$DOMAINS6" ] || [ "$DOMAINS" ]; then
+ resolvectl domain "$ifindex" $DOMAINS6 $DOMAINS || resolvectl_failed=$?
+ else
+ resolvectl domain "$ifindex" "" || resolvectl_failed=$?
+ fi
+ resolvectl dns "$ifindex" $DNS6 $DNS || resolvectl_failed=$?
+ if [ "$DEFAULT_ROUTE" ]; then
+ resolvectl default-route "$ifindex" $DEFAULT_ROUTE || resolvectl_failed=$?
+ fi
+ fi
+ else
+ rm -f "$statedir/$ifindex"
+ if systemctl --quiet is-active systemd-resolved; then
+ resolvectl revert "$ifindex" || resolvectl_failed=$?
+ fi
+ fi
+
+ # resolved was running, but without dbus, it means state files
+ # will not be read & resolvectl commands failed, restart it
+ if [ "$resolvectl_failed" ]; then
+ systemctl try-restart systemd-resolved
+ fi
+ fi
+ rm -f "$oldstate" "$newstate"
+fi
diff --git a/straper/db/public/network/etc-network/interfaces b/straper/db/public/network/etc-network/interfaces
new file mode 100644
index 0000000..4abc807
--- /dev/null
+++ b/straper/db/public/network/etc-network/interfaces
@@ -0,0 +1,7 @@
+auto lo
+iface lo inet loopback
+
+auto enx00e04c2e4828
+iface enx00e04c2e4828 inet dhcp
+
+