60 lines
1.9 KiB
Bash
60 lines
1.9 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
batctl meshif ${BATMAN_INTERFACE} interface create
|
|
ip link set ${BATMAN_INTERFACE} up
|
|
|
|
# setup ips
|
|
if [ "${BATMAN_IPV4}" ] ; then
|
|
ip -4 addr add ${BATMAN_IPV4} dev ${BATMAN_INTERFACE}
|
|
fi
|
|
if [ "${BATMAN_BRIDGE_IPV6}" ] ; then
|
|
ip -6 addr add ${BATMAN_IPV6} dev ${BATMAN_INTERFACE}
|
|
fi
|
|
|
|
# mark node as dhcp server
|
|
batctl meshif ${BATMAN_INTERFACE} gw server ${BATMAN_LIMIT_DOWNLOAD}Mbit/${BATMAN_LIMIT_UPLOAD}Mbit
|
|
|
|
if [ "${WIREGUARD_CONFIG}" ] ; then \
|
|
nft add table ip nat || true
|
|
nft add chain 'ip nat POSTROUTING { type nat hook postrouting priority srcnat; policy accept; }' || true
|
|
nft add rule nat POSTROUTING counter masquerade || true
|
|
nft add table ip6 nat || true
|
|
nft add chain 'ip6 nat POSTROUTING { type nat hook postrouting priority srcnat; policy accept; }' || true
|
|
nft add rule ip6 nat POSTROUTING counter masquerade || true
|
|
|
|
# remove dns defintion, because resolv.conf is write protected in the container
|
|
egrep -v '^\s*DNS\s*=' ${WIREGUARD_CONFIG} >/etc/wireguard/${WIREGUARD_INTERFACE}.conf
|
|
wg-quick up ${WIREGUARD_INTERFACE}
|
|
ip rule add iif ${BATMAN_INTERFACE} table 5000
|
|
fi
|
|
|
|
cat >/etc/radvd.conf <<EOF
|
|
interface ${RADVD_INTERFACE} {
|
|
AdvSendAdvert on;
|
|
IgnoreIfMissing on;
|
|
EOF
|
|
|
|
[ "${RADVD_ADV_MANAGEMENT_FLAG}" ] && \
|
|
echo " AdvManagedFlag ${RADVD_ADV_MANAGEMENT_FLAG};" >>/etc/radvd.conf
|
|
[ "${RADVD_MTU}" ] && \
|
|
echo " AdvLinkMTU ${RADVD_MTU};" >>/etc/radvd.conf
|
|
[ "${RADVD_SOURCE_LL_ADDRESS}" ] && \
|
|
echo " AdvSourceLLAddress ${RADVD_SOURCE_LL_ADDRESS};" >>/etc/radvd.conf
|
|
[ "${RADVD_OTHER_CONFIG_FLAG}" ] && \
|
|
echo " AdvOtherConfigFlag ${RADVD_OTHER_CONFIG_FLAG};" >>/etc/radvd.conf
|
|
|
|
cat >>/etc/radvd.conf <<EOF
|
|
prefix ${RADVD_PREFIX}
|
|
{
|
|
AdvOnLink on;
|
|
AdvAutonomous on;
|
|
AdvRouterAddr on;
|
|
DeprecatePrefix on;
|
|
};
|
|
};
|
|
EOF
|
|
|
|
/usr/sbin/radvd --config=/etc/radvd.conf --logmethod=stderr --nodaemon
|
|
|