36 lines
1.5 KiB
SYSTEMD
36 lines
1.5 KiB
SYSTEMD
|
[Unit]
|
||
|
Description='share internet'
|
||
|
Conflicts=dnsmasq.service
|
||
|
Wants=network.target
|
||
|
Before=network.target
|
||
|
BindsTo=sys-subsystem-net-devices-%i.device
|
||
|
After=sys-subsystem-net-devices-%i.device
|
||
|
|
||
|
[Service]
|
||
|
Type=simple
|
||
|
EnvironmentFile=/etc/conf.d/share-internet@%i
|
||
|
ExecStartPre=/usr/bin/dnsmasq --test
|
||
|
ExecStartPre=/usr/bin/iptables -t nat -A POSTROUTING -o $EXTERNAL_DEVICE -j MASQUERADE
|
||
|
ExecStartPre=/usr/bin/ip6tables -t nat -A POSTROUTING -o $EXTERNAL_DEVICE -j MASQUERADE
|
||
|
ExecStartPre=/usr/bin/sysctl -w net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1
|
||
|
ExecStartPre=/usr/bin/ip link set %i up
|
||
|
ExecStartPre=/usr/bin/ip addr add ${IP4_ADDRESS}/${IP4_NETMASK} dev %i
|
||
|
ExecStartPre=/usr/bin/ip addr add ${IP6_ADDRESS}/${IP4_NETMASK} dev %i
|
||
|
|
||
|
ExecStart=/usr/bin/dnsmasq -k --user=dnsmasq --pid-file \
|
||
|
--conf-file=/etc/dnsmasq.conf \
|
||
|
--interface=%i \
|
||
|
--dhcp-range=${IP4_SUBNET},infinite \
|
||
|
--dhcp-range=${IP6_SUBNET},ra-stateless,ra-names,infinite \
|
||
|
--dhcp-option=3,${IP4_ADDRESS} \
|
||
|
--dhcp-option=5,${IP4_ADDRESS} \
|
||
|
--enable-ra \
|
||
|
--no-daemon
|
||
|
ExecReload=/bin/kill -HUP $MAINPID
|
||
|
|
||
|
ExecStopPost=/usr/bin/ip addr flush dev %i
|
||
|
ExecStopPost=/usr/bin/ip link set %i down
|
||
|
ExecStopPost=/usr/bin/sysctl -w net.ipv4.ip_forward=0 net.ipv6.conf.all.forwarding=0
|
||
|
ExecStopPost=/usr/bin/iptables -t nat -D POSTROUTING -o $EXTERNAL_DEVICE -j MASQUERADE
|
||
|
ExecStopPost=/usr/bin/ip6tables -t nat -D POSTROUTING -o $EXTERNAL_DEVICE -j MASQUERADE
|