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ù ppp
utilise le périphérique étiqueté enp7s0.201
et il fonctionne correctement jusqu'à ce que je redémarre. Lors du redémarrage, ppp
apparaî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.target
du ppp@.service
fichier 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ù pppd
s'exécute pendant le démarrage, il est encore bien avant quand enp7s0.201
est disponible.
EDIT: Je suis un idiot. J'ai oublié que j'avais aussi besoin d'un After=sys-subsystem-net-devices-enp7s0.201.device
dans le centre d'accueil.