5. Configurer les démons OSPFv2 et OSPFv3

Dans cette section, on introduit les premières commandes de configuration du protocole de routage dynamique OSPF qui permettent d'activer le protocole puis d'ajouter des entrées de réseau dans la base de données de ce protocole.

Q4.

Comment peut on contrôler que le protocole OSPF est actif ou non sur un routeur ?

Une fois la console vtysh ouverte, lancer les commandes de visualisation de l'état du protocole listées ci-dessous. Ces commandes peuvent être lancées sur chacun des trois routeurs.

show ip ospf
show ipv6 ospf6
show daemons

Dans les informations données dans la copie d'écran ci-dessous, il apparaît qu'aucune configuration du protocole de routage dynamique n'a été activée.

R1# sh ip ospf
R1# sh ipv6 ospf6
% OSPFv3 instance not found
R1# sh daemons
 zebra ospfd ospf6d watchfrr staticd

Q5.

Quelles sont les opérations à effectuer pour activer les protocoles de routage OSPFv2 et OSPFv3 ? Comment affecter manuellement l'identifiant du routeur ?

[Avertissement] Avertissement

Les identifiants à utiliser lors de la séance de travaux pratiques sont donnés dans les tableaux des plans d'adressage. Voir Section 2, « Topologie réseau étudiée ».

La liste des commandes utiles en mode configuration dans la console vtysh est la suivante.

router ospf
router ospf6
ospf router-id X.X.X.X
ospf6 router-id X.X.X.X
log detail

Toujours à partir de la console vtysh, on accède au mode configuration à l'aide de la commande conf t. Voici un exemple de séquence sur le troisième routeur.

R1# conf t
R1(config)# router ospf
R1(config-router)# ospf router-id 0.0.4.1
R1(config-router)# log detail
R1(config-router)# ^Z
R1# conf t
R1(config)# router ospf6
R1(config-ospf6)# ospf6 router-id 0.0.6.1
R1(config-ospf6)# log detail
R1(config-ospf6)# ^Z
R1# sh run ospfd
Building configuration...

Current configuration:
!
frr version 8.3.1
frr defaults traditional
hostname R1
log syslog informational
service integrated-vtysh-config
!
router ospf
 ospf router-id 0.0.4.1
 log-adjacency-changes detail
exit
!
end
R1# sh run ospf6d
Building configuration...

Current configuration:
!
frr version 8.3.1
frr defaults traditional
hostname R1
log syslog informational
service integrated-vtysh-config
!
router ospf6
 ospf6 router-id 0.0.6.1
 log-adjacency-changes detail
exit
!
end

Le choix de codage des identifiants OSPF a pour but d'éviter une confusion avec les adresses des réseaux actifs sur chaque routeur.

Si on reprend l'instruction de la question précédente, on obtient l'état de chacun des démons de protocole de routage dynamique.

R3# sh ip ospf
 OSPF Routing Process, Router ID: 0.0.4.3
 Supports only single TOS (TOS0) routes
 This implementation conforms to RFC2328
 RFC1583Compatibility flag is disabled
 OpaqueCapability flag is disabled
 Initial SPF scheduling delay 0 millisec(s)
 Minimum hold time between consecutive SPFs 50 millisec(s)
 Maximum hold time between consecutive SPFs 5000 millisec(s)
 Hold time multiplier is currently 1
 SPF algorithm has not been run
 SPF timer is inactive
 LSA minimum interval 5000 msecs
 LSA minimum arrival 1000 msecs
 Write Multiplier set to 20
 Refresh timer 10 secs
 Maximum multiple paths(ECMP) supported 256
 Administrative distance 110
 Number of external LSA 0. Checksum Sum 0x00000000
 Number of opaque AS LSA 0. Checksum Sum 0x00000000
 Number of areas attached to this router: 0
 All adjacency changes are logged
R3# sh ipv6 ospf6
 OSPFv3 Routing Process (0) with Router-ID 0.0.6.3
 Running 00:01:52
 LSA minimum arrival 1000 msecs
 Maximum-paths 256
 Administrative distance 110
 Initial SPF scheduling delay 0 millisec(s)
 Minimum hold time between consecutive SPFs 50 millsecond(s)
 Maximum hold time between consecutive SPFs 5000 millsecond(s)
 Hold time multiplier is currently 1
 SPF algorithm has not been run
 SPF timer is inactive
 Number of AS scoped LSAs is 0
 Number of areas in this router is 0
 Authentication Sequence number info
  Higher sequence no 0, Lower sequence no 0
 All adjacency changes are logged

Q6.

Quelles sont les opérations à effectuer pour activer les protocoles de routage OSPFv2 et OSPFv3 pour les réseaux d'interconnexion de chaque routeur ?

Il faut activer le protocole de routage dynamique sur chaque interface de la topologie qui participe à la construction du triangle.

La liste des commandes utiles en mode console et en mode configuration dans vtysh est la suivante.

show ip route connected
show ip route ospf
show ipv6 route connected
show ipv6 route ospf
ip ospf area 0
ipv6 ospf6 area 0

Voici un exemple de séquence d'instructions pour le routeur R1-rouge.

On commence par lister les entrées marquées C ou connected de la table de routage IPv4 de façon à reconnaître les deux côtés de la topologie triangle connus du "sommet" R1-rouge.

R1# sh ip route connected
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

C>* 10.10.0.0/24 is directly connected, sw-vlan10, 02:28:24
C>* 10.48.0.0/29 is directly connected, enp0s1.480, 02:28:24
C>* 10.48.1.0/29 is directly connected, enp0s1.481, 02:28:24
C>* 192.168.104.128/27 is directly connected, enp0s1.360, 02:28:26

À partir de cette identification, on doit activer le protocole OSPFv2 pour les deux interfaces : enp0s1.480 et enp0s1.481.

R1# conf t
R1(config)# int enp0s1.480
R1(config-if)# ip ospf area 0
R1(config-if)# int enp0s1.481
R1(config-if)# ip ospf area 0
R1(config-if)# ^Z

On reprend le même processus pour le protocole OSPFv3. Voici une copie des entrées connectées de la table de routage IPv6.

R1# sh ipv6 route connected
Codes: K - kernel route, C - connected, S - static, R - RIPng,
       O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
       v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

C>* 2001:678:3fc:168::/64 is directly connected, enp0s1.360, 02:31:04
C>* fd14:ca46:3864:a::/64 is directly connected, sw-vlan10, 02:31:02
C * fe80::/64 is directly connected, asw-host, 02:31:00
C * fe80::/64 is directly connected, enp0s1.481, 02:31:02
C * fe80::/64 is directly connected, sw-vlan10, 02:31:02
C * fe80::/64 is directly connected, enp0s1.480, 02:31:03
C * fe80::/64 is directly connected, enp0s1, 02:31:04
C>* fe80::/64 is directly connected, enp0s1.360, 02:31:04

On active le protocole OSPFv3 sur les mêmes interfaces.

R1# conf t
R1(config)# int enp0s1.480
R1(config-if)# ipv6 ospf6 area 0
R1(config-if)# int enp0s1.481
R1(config-if)# ipv6 ospf6 area 0
R1(config-if)# ^Z

Q7.

Comment visualiser l'état des interfaces actives pour chaque processus de protocole de routage dynamique OSPFv2 ou OSPFv3 ?

Les interfaces sont dites actives pour les protocoles OSPFv2 ou OSPFv3 dès qu'elles ont été ajoutées aux processus de routage dynamique en précisant l'aire à laquelle elles appartiennent.

La liste des commandes utiles dans la console vtysh est la suivante.

show ip ospf interface
show ipv6 ospf6 interface

En reprenant l'exemple du routeur R1-rouge, on obtient les résultats suivants.

R1# sh ip ospf interface
enp0s1.480 is up
  ifindex 4, MTU 1500 bytes, BW 1000 Mbit <UP,BROADCAST,RUNNING,MULTICAST>
  Internet Address 10.48.0.1/29, Broadcast 10.48.0.7, Area 0.0.0.0
  MTU mismatch detection: enabled
  Router ID 0.0.4.1, Network Type BROADCAST, Cost: 100
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 0.0.4.1 Interface Address 10.48.0.1/29
  No backup designated router on this network
  Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
  Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
    Hello due in 9.342s
  Neighbor Count is 0, Adjacent neighbor count is 0
enp0s1.481 is up
  ifindex 5, MTU 1500 bytes, BW 1000 Mbit <UP,BROADCAST,RUNNING,MULTICAST>
  Internet Address 10.48.1.1/29, Broadcast 10.48.1.7, Area 0.0.0.0
  MTU mismatch detection: enabled
  Router ID 0.0.4.1, Network Type BROADCAST, Cost: 100
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 0.0.4.1 Interface Address 10.48.1.1/29
  No backup designated router on this network
  Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
  Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
    Hello due in 5.464s
  Neighbor Count is 0, Adjacent neighbor count is 0

La copie d'écran ci-dessus permet d'identifier les éléments suivants :

  • L'indicateur is up confirme que l'interface est bien active pour le protocole de routage.

  • L'identifiant de routeur correspond bien à celui défini dans le processus OSPFv2 et le type de réseau du protocole indique un réseau de diffusion Ethernet.

  • Les paquets Hello sont bien émis toutes les 10 secondes pour un réseau de diffusion.

On reprend la même démarche pour le protocole OSPFv3. On extrait de liste complète les interfaces des deux côtés du triangle.

R1# sh ipv6 ospf6 interface enp0s1.480
enp0s1.480 is up, type BROADCAST
  Interface ID: 4
  Internet Address:
    inet : 10.48.0.1/29
    inet6: fe80::baad:caff:fefe:c8/64
  Instance ID 0, Interface MTU 1500 (autodetect: 1500)
  MTU mismatch detection: enabled
  Area ID 0.0.0.0, Cost 100
  State DR, Transmit Delay 1 sec, Priority 1
  Timer intervals configured:
   Hello 10(1.398), Dead 40, Retransmit 5
  DR: 0.0.6.1 BDR: 0.0.0.0
  Number of I/F scoped LSAs is 1
    0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off]
    0 Pending LSAs for LSAck in Time 00:00:00 [thread off]
  Authentication Trailer is disabled

Q8.

Comment vérifier que l'identifiant de routeur a correctement été attribué ?

À partir des résultats des questions précédentes, rechercher l'information demandée.

Quelque soit la version du protocole OSPF, l'identifiant de routeur est toujours codé sous la forme d'une adresse IPv4.

R1# sh ip ospf database

       OSPF Router with ID (0.0.4.1)

                Router Link States (Area 0.0.0.0)

Link ID         ADV Router      Age  Seq#       CkSum  Link count
0.0.4.1        0.0.4.1          640 0x80000004 0xf411 2
R1# sh ipv6 ospf6 database

        Area Scoped Link State Database (Area 0)

Type LSId           AdvRouter       Age   SeqNum                        Payload

        I/F Scoped Link State Database (I/F enp0s1.480 in Area 0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Lnk  0.0.0.4        0.0.6.1         542 80000001        fe80::baad:caff:fefe:c8

        I/F Scoped Link State Database (I/F enp0s1.481 in Area 0)

Type LSId           AdvRouter       Age   SeqNum                        Payload
Lnk  0.0.0.5        0.0.6.1         538 80000001        fe80::baad:caff:fefe:c8

Q9.

Comment identifier le type de réseau d'une interface ?

À partir des résultats des questions précédentes, rechercher l'information demandée.

Comme on utilise des liens Ethernet dans ce contexte de travaux pratiques, le type le plus important est le réseau de diffusion ou BROADCAST.

R1# sh ip ospf interface enp0s1.480
enp0s1.480 is up
  ifindex 4, MTU 1500 bytes, BW 1000 Mbit <UP,BROADCAST,RUNNING,MULTICAST>
  Internet Address 10.48.0.1/29, Broadcast 10.48.0.7, Area 0.0.0.0
  MTU mismatch detection: enabled
  Router ID 0.0.4.1, Network Type BROADCAST, Cost: 100
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 0.0.4.1 Interface Address 10.48.0.1/29
  No backup designated router on this network
  Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
  Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
    Hello due in 2.643s
  Neighbor Count is 0, Adjacent neighbor count is 0
R1# sh ipv6 ospf6 interface enp0s1.480
enp0s1.480 is up, type BROADCAST
  Interface ID: 4
  Internet Address:
    inet : 10.48.0.1/29
    inet6: fe80::baad:caff:fefe:c8/64
  Instance ID 0, Interface MTU 1500 (autodetect: 1500)
  MTU mismatch detection: enabled
  Area ID 0.0.0.0, Cost 100
  State DR, Transmit Delay 1 sec, Priority 1
  Timer intervals configured:
   Hello 10(3.490), Dead 40, Retransmit 5
  DR: 0.0.6.1 BDR: 0.0.0.0
  Number of I/F scoped LSAs is 1
    0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off]
    0 Pending LSAs for LSAck in Time 00:00:00 [thread off]
  Authentication Trailer is disabled

Q10.

Comment obtenir la liste du ou des routeurs voisins pour chaque processus de protocole de routage dynamique OSPFv2 ou OSPFv3 ?

Dès qu'une interface est active, il y a émission de paquets HELLO et si un routeur avec un démon OSPF envoie aussi des paquets HELLO dans le même VLAN, les deux routeurs cherchent à former une adjacence.

La liste des commandes utiles dans la console vtysh est la suivante.

show ip ospf neighbor
show ipv6 ospf6 neighbor

Toujours à partir du routeur R1, voici un exemple de liste de routeurs OSPF voisins dans laquelle on reconnaît les identifiants des routeurs R2 et R3.

R1# sh ip ospf neighbor

Neighbor ID  Pri State         Up Time    Dead Time Address      Interface              RXmtL RqstL DBsmL
0.0.4.2        1 Full/Backup   1m06s        32.660s 10.48.0.2    enp0s1.480:10.48.0.1       0     0     0
0.0.4.3        1 Full/Backup   2m10s        38.523s 10.48.1.3    enp0s1.481:10.48.1.1       0     0     0
R1# sh ipv6 ospf6 neighbor
Neighbor ID     Pri    DeadTime    State/IfState         Duration I/F[State]
0.0.6.2           1    00:00:37     Full/BDR             00:02:44 enp0s1.480[DR]
0.0.6.3           1    00:00:33     Full/BDR             00:03:50 enp0s1.481[DR]

Q11.

Comment identifier le rôle des différentes interfaces des routeurs pour chacun des liens du triangle de la topologie logique ?

[Avertissement] Avertissement

La réponse à cette question suppose que les démons OSPF des trois routeurs de la topologie logique en triangle aient convergé. On doit repérer l'état Full pour les listes de routeurs voisins.

De plus, la réponse varie en fonction de l'ordre d'activation des démons OSPF des différents routeurs. En effet, un routeur peut être élu routeur désigné (DR) en l'absence de routeurs voisins. Cette élection n'est pas remise en cause tant qu'il n'y pas de changement d'état de lien.

À partir des résultats des questions précédentes sur les interfaces actives, il est possible de compléter le schéma de la topologie étudiée avec l'état des interfaces pour chacun des trois liens.

Topologie logique OSPF et rôle des interfaces de routeurs

Sur un même réseau de diffusion, il est possible de trouver plusieurs routeurs OSPF. Établir une relation de voisinage et procéder aux échanges de bases de données topologiques entre chaque routeur revient à constituer un réseau de relations complètement maillé. À chaque nouveau calcul de topologie, ce réseau complètement maillé est inefficace. C'est la raison pour laquelle la notion de routeur référent ou Designated Router a été introduite. Lors d'un recalcul de topologie, tous les routeurs s'adressent au routeur référent qui correspond au cœur d'un réseau en topologie étoile.

Dans le contexte de la topologie triangle étudiée, il y a bien élection d'un routeur référent et d'un routeur référent de secours. Cependant, comme il n'y a que deux routeurs par domaine de diffusion ou VLAN, on ne peut pas caractériser l'utilité de cette élection.

Q12.

Quels sont les réseaux IPv4 et IPv6 présents dans la base calcul du protocole OSPF ?

On cherche a visualiser la liste des préfixes des réseaux connus des deux démons OSPF.

La liste des commandes utiles dans la console vtysh est la suivante.

show ip ospf route
show ipv6 ospf6 route

Une fois que les trois routeurs de la topologie ont convergé, chaque démon connaît les trois préfixes qui correspondent aux trois côtés du triangle. Un routeur correspond à un sommet du triangle et il doit apprendre le préfixe réseau du côté opposé via ses deux routeurs voisins.

Voici la vue depuis le routeur R1.

R1# sh ip ospf route
============ OSPF network routing table ============
N    10.48.0.0/29          [1] area: 0.0.0.0
                           directly attached to enp0s1.480
N    10.48.1.0/29          [1] area: 0.0.0.0
                           directly attached to enp0s1.481
N    10.48.2.0/29          [2] area: 0.0.0.0
                           via 10.48.0.2, enp0s1.480
                           via 10.48.1.3, enp0s1.481

Les valeurs notées entre crochets correspondent à la métrique du lien pour joindre le réseau noté à gauche. Depuis la première spécification du protocole OSPF, le calcul de métrique se fait à partir de l'expression : 108 / Bande_Passante_du_lien.

La valeur du numérateur (108) correspond à un débit de 100Mbps. À l'époque de la rédaction du standard OSPFv2, ce débit a servi de référence. Aujourd'hui, cette valeur est complètement dépassée. C'est la raison pour laquelle on adapte le calcul de métrique en changeant le coefficient du numérateur. Voir la Section 8, « Adapter de la métrique de lien au débit ».

Les deux premiers réseaux de la table sont joignable via un lien Ethernet à 100Mbps ; soit une métrique de 1. Le troisième réseau est joignable via deux liens Ethernet à 100Mbps ; d'où la métrique de 2.

Pour les préfixes IPv6, aucun préfixe n'est présent sachant que les relations de voisinage entre routeurs utilisent obligatoirement les adresses de lien local appartenant au préfixe fe80::/10.

R1# sh ipv6 ospf6 route

Les préfixes des réseaux de conteneurs apparaitront dès que le protocole de routage aura été activé pour les interfaces SVI.

Q13.

Comment visualiser les tables de routage depuis la console vtysh ?

L'affichage demandé illustre les mécanismes de choix entre différentes solutions pour une même destination. Cet affichage est à comparer avec celui demandé à la question suivante.

La liste des commandes utiles dans la console vtysh est la suivante.

show ip route
show ipv6 route

On reprend à nouveau l'exemple du routeur R1.

R1# sh ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

K>* 0.0.0.0/0 [0/0] via 192.168.104.129, enp0s1.360 onlink, 04:41:28
C>* 10.10.0.0/24 is directly connected, sw-vlan10, 04:41:26
O   10.48.0.0/29 [110/1] is directly connected, enp0s1.480, weight 1, 00:05:51
C>* 10.48.0.0/29 is directly connected, enp0s1.480, 04:41:26
O   10.48.1.0/29 [110/1] is directly connected, enp0s1.481, weight 1, 00:02:01
C>* 10.48.1.0/29 is directly connected, enp0s1.481, 04:41:26
O>* 10.48.2.0/29 [110/2] via 10.48.0.2, enp0s1.480, weight 1, 00:00:42
  *                      via 10.48.1.3, enp0s1.481, weight 1, 00:00:42
C>* 192.168.104.128/27 is directly connected, enp0s1.360, 04:41:28
R1# sh ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng,
       O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
       v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

K>* ::/0 [0/1024] via fe80:168::1, enp0s1.360 onlink, 04:42:10
C>* 2001:678:3fc:168::/64 is directly connected, enp0s1.360, 04:42:08
C>* fd14:ca46:3864:a::/64 is directly connected, sw-vlan10, 04:42:06
C * fe80::/64 is directly connected, asw-host, 04:42:04
C * fe80::/64 is directly connected, enp0s1.481, 04:42:06
C * fe80::/64 is directly connected, sw-vlan10, 04:42:06
C * fe80::/64 is directly connected, enp0s1.480, 04:42:07
C * fe80::/64 is directly connected, enp0s1, 04:42:08
C>* fe80::/64 is directly connected, enp0s1.360, 04:42:08
  • Les entrées marquées avec le caractère * correspondent aux routes retenues et mémorisées par le sous-système réseau du noyau. Les autres entrées sont placées en réserve au cas où la solution initialement retenue serait en défaut.

  • L'entrée notée K correspond à une route apprise depuis le sous-système réseau du noyau.

  • Les entrées notées C correspondent à des routes pour lesquelles il existe une interface sur le routeur. Les métriques de ses routes ont la valeur 0. Ce sont les routes les plus prioritaires.

  • Les entrées notées O correspondent aux routes apprises via le protocole OSPF. La métrique de ces routes se décompose en deux parties. La valeur figée à 110 définit le niveau de priorité du protocole OSPF (Administrative Distance) relativement aux autres protocoles de routage. Les valeurs notées après le / sont les métriques de liens calculées comme indiqué ci-dessus.

Q14.

Comment visualiser les tables de routage au niveau système ?

Utiliser une commande usuelle de visualisation de la table de routage.

ip route ls
ip -6 route ls

Avec la commande ip, on voit apparaître les «sources» d'alimentation de la table de routage finale du système.

  • kernel pour les entrées connues du sous-système réseau du noyau. Ce sont les entrées avec le caractère C dans la console vtysh.

  • ospf pour les entrées apprises via le protocole de routage dynamique. Le réseau correspond au côté opposé au sommet du triangle est appris via OSPF puisque le sous-système réseau du noyau ne le connaît pas.

ip route ls
default via 192.168.104.129 dev enp0s1.360 onlink
10.10.0.0/24 dev sw-vlan10 proto kernel scope link src 10.10.0.1
10.48.0.0/29 dev enp0s1.480 proto kernel scope link src 10.48.0.1
10.48.1.0/29 dev enp0s1.481 proto kernel scope link src 10.48.1.1
10.48.2.0/29 nhid 85 proto ospf metric 20
        nexthop via 10.48.1.3 dev enp0s1.481 weight 1
        nexthop via 10.48.0.2 dev enp0s1.480 weight 1
192.168.104.128/27 dev enp0s1.360 proto kernel scope link src 192.168.104.130

La table de routage IPv6 ne fait apparaître aucune nouvelle entrée puisque les réseaux de conteneurs desservis par R2 et R3 n'ont pas encore été annoncés à ce stade de la configuration.

ip -6 route ls
::1 dev lo proto kernel metric 256 pref medium
2001:678:3fc:168::/64 dev enp0s1.360 proto kernel metric 256 pref medium
fd14:ca46:3864:a::/64 dev sw-vlan10 proto kernel metric 256 pref medium
fe80::/64 dev enp0s1 proto kernel metric 256 pref medium
fe80::/64 dev enp0s1.360 proto kernel metric 256 pref medium
fe80::/64 dev enp0s1.480 proto kernel metric 256 pref medium
fe80::/64 dev enp0s1.481 proto kernel metric 256 pref medium
fe80::/64 dev sw-vlan10 proto kernel metric 256 pref medium
fe80::/64 dev asw-host proto kernel metric 256 pref medium
default via fe80:168::1 dev enp0s1.360 metric 1024 onlink pref medium