Puncte:1

Interfață urmând un link

drapel id

O mașină cu debian 10. Are 3 interfețe cu ip diferit. Unul dintre ele este necesar în cazuri rare, are o rută statică către rețeaua de management (restul de rutare funcționează prin ospf printr-o altă interfață).
Problema este că, dacă scoți cablul din placa de rețea, interfața este încă deschisă și ruta rămâne. Acest lucru nu poate fi automatizat? Și nu am găsit nimic la această întrebare, poate că fac ceva greșit?
În plus, dacă folosesc auto sau allow-hotplug, interfața este activată după repornire chiar și fără legătură, așa că trebuie să o ridic manual dacă este necesar.

Puncte:1
drapel cl
A.B

Instrumentele de nivel înalt, cum ar fi NetworkManager, elimină de obicei adresa și ruta pe link-urile „linkdown” (adică: cu indicatorul NO-CARRIER afișat pe interfață). Deci, dacă interfața este gestionată de un astfel de instrument, se poate aștepta ca ruta sa să apară și să dispară atunci când este conectată și deconectată.

Înțeleg că utilizarea NetworkManager ar putea fi prea intruzivă cu un protocol de rutare dinamic utilizat în același timp și, prin urmare, ar putea să nu fie cea mai bună idee.

Dar, de fapt, stiva de rutare a nucleului oferă deja o astfel de caracteristică, fără a fi nevoie să modifice nicio adresă sau rută: ignore_routes_with_linkdown.

Ca și alte câteva intrări, aceasta a apărut în kernel-ul 4.2 (deci disponibil în kernel-ul Debian 10 4.19) și a fost afișat apoi în kernelnewbies.org când a apărut, a fost documentat doar din kernel-ul 5.11:

ignore_routes_with_linkdown - BOOLEAN
Ignorați rutele a căror legătură este întreruptă atunci când efectuați o căutare FIB.

Deci, dacă interfața este apelată mgmt0 iar ruta pe care o oferă ar trebui utilizată numai atunci când este detectat un transportator pe ea, ar trebui pur și simplu să faceți:

sysctl -w net.ipv4.conf.mgmt0.ignore_routes_with_linkdown=1

sau pune asta /etc/sysctl.conf.

Acum, când această interfață încă menținută administrativ este deconectată, intrarea rutei este afișată înapoi de ruta ip ar arăta steagurile linkdown mort în locul steagului unic linkdown pentru a spune utilizatorului că într-adevăr această rută este în prezent ignorată în timpul unei căutări FIB.

Notă: pentru ca o interfață să detecteze o legătură, aceasta trebuie să fie pornită. Așa că trebuie să rămână la nivel administrativ. Dacă a fost dezactivat atunci când purtătorul este pierdut, nu ar putea fi reactivat automat mai târziu la detectarea operatorului, deoarece nu ar mai exista o astfel de detectare.


Exemplu complet:

link ip adăugați nume vethtest1 sus tip veth peer name vethtest1peer
link ip adăugați numele vethtest2 sus tip veth peer name vethtest2peer
set de legătură ip dev vethtest2peer up
adresa ip add 192.0.2.2/25 dev vethtest1
adresa ip add 192.0.2.3/24 dev vethtest2

Setarea adreselor instalează rutele LAN automate ale nucleului. vethtest1 a cărui interfață peer nu a fost afișată va avea statutul NO-CARRIER și rutele sale vor primi a linkdown steag.

# afișează ruta ip la rădăcină 192.0.2.0/24
192.0.2.0/25 dev vethtest1 proto kernel scope link src 192.0.2.2 linkdown 
192.0.2.0/24 dev vethtest2 proto kernel scope link src 192.0.2.3 

Se va folosi o rută către 192.0.2.100 vethtest1 deoarece a primit un traseu mai îngust (în ciuda faptului că avea linkdown steag).

# ip route obține 192.0.2.100
192.0.2.100 dev vethtest1 src 192.0.2.2 uid 0 
    cache 

Apoi, cu noua setare:

sysctl -w net.ipv4.conf.vethtest1.ignore_routes_with_linkdown=1

apare noul comportament:

# afișează ruta ip la rădăcină 192.0.2.0/24
192.0.2.0/25 dev vethtest1 proto kernel scope link src 192.0.2.2 dead linkdown 
192.0.2.0/24 dev vethtest2 proto kernel scope link src 192.0.2.3 
# ip -4 netconf show dev vethtest1
inet vethtest1 forwarding on rp_filter off mc_forwarding off proxy_neigh off ignore_routes_with_linkdown on 
# ip route obține 192.0.2.100
192.0.2.100 dev vethtest2 src 192.0.2.3 uid 0 
    cache 

Acum, dacă interfața devine purtător (simulat aici prin afișarea interfeței egale):

set de legături ip dev vethtest1peer up

traseul este restabilit prin ea:

# afișează ruta ip la rădăcină 192.0.2.0/24
192.0.2.0/25 dev vethtest1 proto kernel scope link src 192.0.2.2 
192.0.2.0/24 dev vethtest2 proto kernel scope link src 192.0.2.3 
# ip route obține 192.0.2.100
192.0.2.100 dev vethtest1 src 192.0.2.2 uid 0 
    cache 
Mystic avatar
drapel id
Esti incredibil! Multumesc mult pentru informatiile complete!! Și toate cele bune pentru tine. O să verific mâine.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.