Utilisez systemd pour démarrer ppp sur un VLAN au démarrage


1

Je remplace mon routeur / AP consommateur par un boîtier Linux. Mon routeur grand public s'est connecté à mon fournisseur de services Internet via une liaison PPPoE sur un VLAN étiqueté. J'ai une configuration de travail configurée où ppputilise le périphérique étiqueté enp7s0.201et il fonctionne correctement jusqu'à ce que je redémarre. Lors du redémarrage, pppapparaît avant que le périphérique VLAN soit créé et il meurt immédiatement.

[me@router ~]$ sudo journalctl -b | egrep 'ppp|enp7s0'
Feb 11 03:01:22 router kernel: r8169 0000:07:00.0 enp7s0: renamed from eth0
Feb 11 03:01:23 router systemd[1]: ppp@centurylink.service: Unit is bound to inactive unit sys-subsystem-net-devices-enp7s0.201.device. Stopping, too.
Feb 11 03:01:23 router systemd-networkd[444]: /etc/systemd/network/enp7s0.201.netdev:5: Unknown section 'VLAN'. Ignoring.
Feb 11 03:01:25 router systemd-networkd[444]: enp7s0.201: netdev ready
Feb 11 03:01:25 router systemd-networkd[444]: enp7s0: IPv6 successfully enabled
Feb 11 03:01:25 router kernel: r8169 0000:07:00.0 enp7s0: link down
Feb 11 03:01:25 router kernel: r8169 0000:07:00.0 enp7s0: link down
Feb 11 03:01:25 router kernel: IPv6: ADDRCONF(NETDEV_UP): enp7s0: link is not ready
Feb 11 03:01:25 router systemd-networkd[444]: enp7s0.201: IPv6 successfully enabled
Feb 11 03:01:25 router systemd-networkd[444]: enp7s0: Gained carrier
Feb 11 03:01:25 router systemd-networkd[444]: enp7s0.201: Gained carrier
Feb 11 03:01:25 router systemd-networkd[444]: enp7s0.201: Lost carrier
Feb 11 03:01:26 router systemd-networkd[444]: enp7s0: Lost carrier
Feb 11 03:01:27 router systemd-networkd[444]: enp7s0.201: Gained IPv6LL
Feb 11 03:01:27 router systemd-networkd[444]: enp7s0: Gained carrier
Feb 11 03:01:27 router kernel: r8169 0000:07:00.0 enp7s0: link up
Feb 11 03:01:27 router kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp7s0: link becomes ready
Feb 11 03:01:27 router systemd-networkd[444]: enp7s0.201: Gained carrier
Feb 11 03:01:29 router systemd-networkd[444]: enp7s0: Gained IPv6LL
Feb 11 03:01:32 router systemd-networkd[444]: enp7s0: Lost carrier
Feb 11 03:01:32 router kernel: r8169 0000:07:00.0 enp7s0: link down
Feb 11 03:01:32 router systemd-networkd[444]: enp7s0.201: Lost carrier
Feb 11 03:01:35 router systemd-networkd[444]: enp7s0: Gained carrier
Feb 11 03:01:35 router kernel: r8169 0000:07:00.0 enp7s0: link up
Feb 11 03:01:35 router systemd-networkd[444]: enp7s0.201: Gained carrier

J'ai supprimé a Before=network.targetdu ppp@.servicefichier et ajouté une liste déroulante BindsTo=sys-subsystem-net-devices-enp7s0.201.device.

[me@router ~]$ sudo systemctl cat ppp@centurylink
[sudo] password for me: 
# /usr/lib/systemd/system/ppp@.service
[Unit]
Description=PPP link to %I
#Before=network.target

[Service]
ExecStart=/usr/sbin/pppd call %I nodetach nolog

[Install]
WantedBy=multi-user.target

# /etc/systemd/system/ppp@centurylink.service.d/port-bind.conf
[Unit]
BindsTo=sys-subsystem-net-devices-enp7s0.201.device

Cependant, en regardant où pppds'exécute pendant le démarrage, il est encore bien avant quand enp7s0.201est disponible.


EDIT: Je suis un idiot. J'ai oublié que j'avais aussi besoin d'un After=sys-subsystem-net-devices-enp7s0.201.devicedans le centre d'accueil.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.