LFCA: išmokite pagrindinių tinklo trikčių šalinimo patarimų – 12 dalis


Kai sistemos susiduria su problemomis, kaip kartais kyla, turite žinoti, kaip ją išspręsti, ir grąžinti jas į normalią ir veikiančią būseną. Šiame skyriuje mes sutelkiame dėmesį į pagrindinius tinklo trikčių šalinimo įgūdžius, kuriuos turėtų turėti bet kuris Linux sistemos administratorius.

Pagrindinis tinklo trikčių šalinimo supratimas

Daugeliu atvejų yra didelis atotrūkis tarp tinklo administratorių ir sistemos administratorių. Sistemos administratoriai, kuriems trūksta tinklo matomumo, paprastai kaltins tinklo administratorius dėl gedimų ir prastovų, o tinklo administratoriai dėl nepakankamų serverio žinių dažnai kaltins sistemos administratorius dėl galinio įrenginio gedimo. Tačiau kaltės žaidimas nepadeda išspręsti problemų, o darbo aplinkoje tai gali supriešinti kolegų santykius.

Kaip sistemos administratorius, išmanantis tinklo trikčių šalinimą padės greičiau išspręsti problemas ir sukurti darnią darbo aplinką. Dėl šios priežasties mes sukūrėme šį skyrių, norėdami pabrėžti kai kuriuos pagrindinius tinklo trikčių šalinimo patarimus, kurie bus naudingi diagnozuojant su tinklu susijusias problemas.

TCP/IP modelio santrauka

Ankstesnėje LFCA serijos temoje apžvelgėme TCP/IP koncepcinį modelį, rodantį duomenų perdavimą kompiuteryje ir kiekviename sluoksnyje esančius protokolus.

Kitas ne mažiau svarbus konceptualus modelis yra OSI modelis (Open Systems Interconnection) modelis. Tai 7 sluoksnių TCP/IP sistema, kuri suardo tinklo sistemą, o skaičiavimas veikia kaip kiekvienas sluoksnis.

OSI modelyje šios funkcijos suskirstytos į šiuos sluoksnius pradedant nuo apačios. Fizinis sluoksnis, duomenų ryšio sluoksnis, tinklo sluoksnis, transporto sluoksnis, seanso sluoksnis. Pristatymo sluoksnis ir galiausiai programos sluoksnis pačiame viršuje.

Neįmanoma kalbėti apie tinklo trikčių šalinimą nenurodant OSI modelio. Dėl šios priežasties mes apžvelgsime kiekvieną sluoksnį ir išsiaiškinsime įvairius naudojamus tinklo protokolus ir kaip pašalinti triktis, susijusias su kiekvienu sluoksniu.

1 sluoksnis: fizinis sluoksnis

Tai tikriausiai yra vienas iš labiausiai nepastebimų sluoksnių, tačiau tai yra vienas iš svarbiausių sluoksnių, reikalingų bet kokiam bendravimui. Fizinis sluoksnis apima fizinius kompiuterio tinklo komponentus, tokius kaip tinklo plokštės, eterneto kabeliai, optinės skaidulos ir kt. Dauguma problemų prasideda čia ir dažniausiai jas sukelia:

  • Atjungtas tinklo/eterneto kabelis
  • Pažeistas tinklo/eterneto kabelis
  • Trūksta arba sugadinta tinklo plokštė

Šiame sluoksnyje į galvą ateina šie klausimai:

    Norėdami patikrinti tinklo sąsajų būseną, paleiskite ip komandą:

    ip link show
    

    Iš aukščiau pateiktos išvesties turime 2 sąsajas. Pirmoji sąsaja – lo – yra grįžtamojo ryšio adresas ir paprastai nenaudojama. Aktyvi tinklo sąsaja, užtikrinanti ryšį su tinklu ir internetu, yra enp0s3 sąsaja. Iš išvesties matome, kad sąsajos būsena yra UP.

    Jei tinklo sąsaja neveikia, matysite būsenos DOWN išvestį.

    Jei taip yra, sąsają galite iškviesti naudodami komandą:

    sudo ip link set enp0s3 up
    

    Arba galite paleisti komandą ifconfig, parodytą žemiau.

    
    sudo ifconfig enp0s3 up
    ip link show
    

    Norėdami patvirtinti, kad jūsų kompiuteris pasirinko IP adresą iš maršrutizatoriaus arba DHCP serverio, paleiskite komandą ifconfig.

    ifconfig
    

    Prieš IPv4 adresą yra inet parametras, kaip parodyta. Pavyzdžiui, šios sistemos IP adresas yra 192.168.2.104, kurio potinklis arba tinklo kaukė yra 255.255.255.0.

    
    ifconfig
    

    Arba galite paleisti komandą ip adresas, kaip nurodyta toliau, kad patikrintumėte sistemos IP adresą.

    
    ip address
    

    Norėdami patikrinti numatytojo šliuzo IP adresą, paleiskite komandą:

    
    ip route | grep default
    

    Numatytųjų šliuzo, kuris daugeliu atvejų yra DHCP serveris arba maršrutizatorius, IP adresas nurodomas taip, kaip parodyta toliau. IP tinkle turėtumėte turėti galimybę siųsti ping numatytąjį šliuzą.

    Norėdami patikrinti naudojamus DNS serverius, paleiskite šią komandą systemd sistemose.

    
    systemd-resolve --status
    

    Geresnis būdas patikrinti naudojamus DNS serverius yra paleisti rodomą komandą nmcli

    
    ( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
    

    Kaip pastebėjote, čia įvyksta gana daug tinklo trikčių šalinimo.

    2 sluoksnis: duomenų nuorodos sluoksnis

    Iš esmės duomenų ryšio sluoksnis nustato duomenų formatą tinkle. Čia vyksta duomenų kadrų ryšys tarp kompiuterių. Šiame sluoksnyje dominuojantis protokolas yra ARP (Adreso skyros protokolas).

    ARP yra atsakinga už nuorodų sluoksnio adresų aptikimą ir atlieka 3 sluoksnio IPv4 adresų susiejimą su MAC adresais. Paprastai, kai pagrindinis kompiuteris susisiekia su numatytuoju šliuzu, tikėtina, kad jis jau turi pagrindinio kompiuterio IP, bet ne MAC adresų.

    Protokolas ARP užpildo atotrūkį tarp 3 ir 2 sluoksnių, išversdamas 32 bitų IPv4 adresus 3 sluoksnyje į 48 bitų MAC adresus 2 sluoksnyje ir atvirkščiai.

    Kai kompiuteris prisijungia prie LAN tinklo, maršruto parinktuvas (numatytasis šliuzas) priskiria jam IP adresą identifikavimui. Kai kitas pagrindinis kompiuteris siunčia duomenų paketą, skirtą kompiuteriui, į numatytąjį šliuzą, maršruto parinktuvas prašo ARP ieškoti MAC adreso, kuris yra su IP adresu.

    Kiekviena sistema turi savo ARP lentelę. Norėdami patikrinti ARP lentelę, paleiskite komandą:

    ip neighbor show
    

    Kaip matote, maršrutizatoriaus MAC adresas yra užpildytas. Jei yra sprendimo problema, komanda nepateikia jokios išvesties.

    3 sluoksnis: tinklo/interneto sluoksnis

    Tai sluoksnis, kuriame dirbate tik su sistemos administratoriams pažįstamais IPv4 adresais. Jame pateikiami keli protokolai, pvz., ICMP ir ARP, kuriuos aptarėme, ir kiti, pvz., RIP (Routing Information Protocol). ).

    Kai kurios dažniausiai pasitaikančios problemos apima netinkamą įrenginio konfigūraciją arba tinklo įrenginių, pvz., maršrutizatorių ir jungiklių, problemas. Gera vieta pradėti trikčių šalinimą yra patikrinti, ar jūsų sistema pasirinko IP adresą taip:

    ifconfig
    

    Be to, galite naudoti ping komandą, kad patikrintumėte interneto ryšį, išsiųsdami ICMP aido paketą į „Google“ DNS. Vėliava -c nurodo siunčiamų paketų skaičių.

    ping 8.8.8.8 -c 4
    

    Išvestis rodo teigiamą „Google“ DNS atsakymą be nulinio paketų praradimo. Jei turite nutrūkstamą ryšį, galite patikrinti, kuriame taške paketai išmesti, naudodami traceroute komandą, kaip nurodyta toliau.

    traceroute google.com
    

    Žvaigždutės nurodo tašką, kuriame paketai numetami arba prarandami.

    Komanda nslookup užklausia DNS, kad gautų IP adresą, susietą su domenu arba pagrindinio kompiuterio pavadinimu. Tai vadinama peradresavimo DNS paieška.

    Pavyzdžiui.

    
    nslookup google.com
    

    Komanda atskleidžia su google.com domenu susietus IP adresus.

    
    Server:		127.0.0.53
    Address:	127.0.0.53#53
    
    Non-authoritative answer:
    Name:	google.com
    Address: 142.250.192.14
    Name:	google.com
    Address: 2404:6800:4009:828::200e
    

    „Dig“ komanda yra dar viena komanda, naudojama DNS serverių, susietų su domeno pavadinimu, užklausoms. Pavyzdžiui, norėdami pateikti užklausą DNS vardų serveriams:

    
    dig google.com
    

    4 sluoksnis: transportavimo sluoksnis

    Transporto sluoksnis tvarko duomenų perdavimą naudodamas TCP ir UDP protokolus. Apibendrinant galima pasakyti, kad TCP yra į ryšį orientuotas protokolas, o UDP yra be ryšio. Vykdoma programa klausosi lizduose, kuriuos sudaro prievadai ir IP adresai.

    Dažnos problemos, kurios gali kilti, įskaitant užblokuotus TCP prievadus, kurių gali prireikti programoms. Jei turite žiniatinklio serverį ir norite patikrinti jo veikimo būseną, naudokite komandą netstat arba ss, kad patikrintumėte, ar žiniatinklio paslauga klauso 80 prievado

    sudo netstat -pnltu | grep 80
    OR
    ss -pnltu | grep 80
    

    Kartais prievadą gali naudoti sistemoje veikianti paslauga. Jei norite, kad kita paslauga naudotų tą prievadą, galite būti priversti jį sukonfigūruoti taip, kad naudotų kitą prievadą.

    Jei vis dar kyla problemų, patikrinkite užkardą ir patikrinkite, ar jus dominantis prievadas nėra užblokuotas.

    Dauguma trikčių šalinimo veiksmų bus atliekami šiuose 4 sluoksniuose. Labai mažai trikčių šalinimo atliekama seanso, pristatymo ir programos sluoksniuose. Taip yra todėl, kad jie atlieka mažiau aktyvų vaidmenį tinklo veikime. Tačiau greitai apžvelkime, kas vyksta tuose sluoksniuose.

    5 sluoksnis: seanso sluoksnis

    Seanso sluoksnis atveria ryšio kanalus, vadinamus seansais, ir užtikrina, kad jie liktų atviri perduodant duomenis. Jis taip pat uždaromas, kai ryšys nutraukiamas.

    6 sluoksnis: pristatymo sluoksnis

    Taip pat žinomas kaip sintaksės sluoksnis, pateikimo sluoksnis sintezuoja duomenis, kuriuos naudos programos sluoksnis. Jame paaiškinama, kaip įrenginiai turėtų šifruoti, koduoti ir suspausti duomenis, siekiant užtikrinti, kad jie būtų gerai priimami kitame gale.

    7 sluoksnis: taikymo sluoksnis

    Galiausiai turime taikomųjų programų sluoksnį, kuris yra arčiausiai galutinių vartotojų ir leidžia jiems sąveikauti su taikomąja programine įranga. Programos sluoksnyje gausu protokolų, tokių kaip HTTP, HTTPS, POP3, IMAP, DNS, RDP, SSH, SNMP ir NTP.

    Išvada

    Šalinant „Linux“ sistemos triktis, labai rekomenduojamas daugiasluoksnis metodas naudojant OSI modelį, pradedant nuo apatinio sluoksnio. Tai suteikia jums įžvalgų apie tai, kas vyksta ne taip, ir padeda susiaurinti problemą.