Помогите, пожалуйста, с написанием systemd-юнита, управляющего pppoe-соединениями в Fedora. Поднимать pppoe-соединения предпочитаю не через NetworkManager и не через /etc/sysconfig/network-scripts, а кошерным способом через «pppd pty pppoe».
Вы спросите, зачем мне нужно так извращаться в Федоре? У меня есть несколько учеток от pppoe-соединения и мне нужно попеременно входить в сеть то под одной, то под другой.
В слаке я делаю так: есть конфиг /etc/ppp/peers/pppoe
pty "/usr/sbin/pppoe -I eth0 -T 80 -U -m 1420"
defaultroute
usepeerdns
noproxyarp
mtu 1492
mru 1492
persist
hide-password
maxfail 99
name ?????? #учетка1
#name ?????? #учетка2
#name ?????? #учетка3
#name ?????? #учетка4
#name ?????? #учетка5
#name ?????? #учетка1
Ещё есть скрипт /etc/rc.d/rc.ppp
#!/bin/sh
if [ "$1" = "start" ]; then
echo "Starting ppp..."
/sbin/ifconfig eth0 up
/usr/sbin/pppd call ppp0
sleep 2s
cat /etc/ppp/resolv.conf > /etc/resolv.conf
elif [ "$1" = "stop" ]; then
echo "Stoping ppp..."
/bin/kill -TERM `cat /var/run/ppp0.pid`
/sbin/ifconfig eth0 down
elif [ "$1" = "restart" ]; then
echo "Stoping ppp..."
/bin/kill -TERM `cat /var/run/ppp0.pid`
sleep 10s
echo "Starting ppp..."
/usr/sbin/pppd call ppp0
sleep 2s
cat /etc/ppp/resolv.conf > /etc/resolv.conf
else
echo "Missing parameter: start, stop or restart"
fi
Так как же это делается? Я отключил юнит NetworkManager.service. Компоменты сети, сконфигурированные через /etc/sysconfig/network-scripts управляются юнитом systemd-networkd.service. Нужно написать юнит ppp.service, выполняющийся непосредственно перед systemd-networkd.service и чтобы его можно было рестартовать для захода под другой учеткой.