LFCA: Opi perusverkkovianmääritysvinkkejä – Osa 12


Kun järjestelmät kohtaavat ongelmia, kuten joskus tapahtuu, sinun on tiedettävä, miten voit kiertää ongelman ja palauttaa ne takaisin normaaliin ja toimivaan tilaan. Tässä osiossa keskitymme perusverkkovianmääritystaitoihin, jotka jokaisen Linux-järjestelmänvalvojan tulee olla.

Verkon vianmäärityksen perusteet

Useimmissa tapauksissa verkon järjestelmänvalvojien ja järjestelmänvalvojien välillä on suuri kuilu. Järjestelmänvalvojat, joilla ei ole verkon näkyvyyttä, syyttävät yleensä verkon ylläpitäjiä katkoksista ja seisokeista, kun taas verkonvalvojat eivät tiedä riittävästi palvelintietoja, mikä usein kääntää järjestelmänvalvojien syytteen päätelaitteen virheistä. Syyttämispeli ei kuitenkaan auta ratkaisemaan ongelmia, ja työympäristössä se voi haitata kollegoiden välisiä suhteita.

Järjestelmänvalvojana perustavanlaatuinen ymmärrys verkon vianmäärityksestä auttaa ratkaisemaan ongelmia nopeammin ja edistämään yhtenäistä työympäristöä. Tästä syystä olemme koonneet tämän osion korostaaksemme joitain verkon vianmäärityksen perusvinkkejä, jotka ovat hyödyllisiä verkkoon liittyvien ongelmien diagnosoinnissa.

Kertomus TCP/IP-mallista

Edellisessä LFCA-sarjan aiheessamme tarkastelimme TCP/IP-käsitemallia, joka näyttää tiedonsiirron tietokoneessa ja protokollat, jotka löytyvät kustakin kerroksesta.

Toinen yhtä tärkeä käsitteellinen malli on OSI-malli (Open Systems Interconnection) -malli. Se on 7-kerroksinen TCP/IP-kehys, joka hajottaa verkkojärjestelmän ja laskenta toimii kuten jokainen kerros.

OSI-mallissa nämä toiminnot on segmentoitu seuraaviin tasoihin alhaalta alkaen. Fyysinen kerros, tietolinkkikerros, verkkokerros, siirtokerros, istuntokerros. Esityskerros ja lopuksi Sovelluskerros aivan ylhäällä.

On mahdotonta puhua verkon vianmäärityksestä ilman viittausta OSI-malliin. Tästä syystä opastamme sinut jokaisen kerroksen läpi ja selvitämme käytetyt erilaiset verkkoprotokollat ja kuinka voit etsiä jokaiseen kerrokseen liittyviä vikoja.

Kerros 1: Fyysinen kerros

Tämä on luultavasti yksi huomiotta jääneimmistä kerroksista, mutta se on kuitenkin yksi tärkeimmistä kerroksista, joita tarvitaan kommunikaatioon. Fyysinen kerros kattaa tietokoneen fyysiset PC-verkkokomponentit, kuten verkkokortit, Ethernet-kaapelit, optiset kuidut jne. Useimmat ongelmat alkavat tästä ja johtuvat useimmiten seuraavista syistä:

  • Irrotettu verkko/ethernet-kaapeli
  • Vioittunut verkko/ethernet-kaapeli
  • Verkkokortti puuttuu tai vioittunut

Tässä kerroksessa mieleen tulevat kysymykset ovat:

    Voit tarkistaa verkkoliittymiesi tilan suorittamalla ip-komennon:

    ip link show
    

    Yllä olevasta lähdöstä meillä on 2 käyttöliittymää. Ensimmäinen liitäntä – lo – on takaisinkytkentäosoite, eikä sitä yleensä käytetä. Aktiivinen verkkoliitäntä, joka tarjoaa yhteyden verkkoon ja Internetiin, on enp0s3-liitäntä. Näemme lähdöstä, että käyttöliittymän tila on UP.

    Jos verkkoliitäntä ei toimi, näet tila DOWN -ulostulon.

    Jos näin on, voit tuoda käyttöliittymän komennolla:

    sudo ip link set enp0s3 up
    

    Vaihtoehtoisesti voit suorittaa alla olevan ifconfig-komennon.

    
    sudo ifconfig enp0s3 up
    ip link show
    

    Varmista vain, että tietokoneesi on valinnut IP-osoitteen reitittimeltä tai DHCP-palvelimelta, suorittamalla ifconfig-komento.

    ifconfig
    

    IPv4-osoitteen etuliitteenä on inet-parametri kuvan mukaisesti. Esimerkiksi tämän järjestelmän IP-osoite on 192.168.2.104 ja aliverkko tai verkkopeite on 255.255.255.0.

    
    ifconfig
    

    Vaihtoehtoisesti voit suorittaa ip-osoite-komennon seuraavasti tarkistaaksesi järjestelmäsi IP-osoitteen.

    
    ip address
    

    Voit tarkistaa oletusyhdyskäytävän IP-osoitteen suorittamalla komennon:

    
    ip route | grep default
    

    Oletusyhdyskäytävän IP-osoite, joka useimmissa tapauksissa on DHCP-palvelin tai -reititin, näytetään alla olevan kuvan mukaisesti. IP-verkossa sinun pitäisi pystyä ping-kutsumaan oletusyhdyskäytävää.

    Tarkista käyttämäsi DNS-palvelimet suorittamalla seuraava komento systemd-järjestelmissä.

    
    systemd-resolve --status
    

    Parempi tapa tarkistaa käytössä olevat DNS-palvelimet on suorittaa nmcli-komento

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

    Kuten olet huomannut, täällä tapahtuu melko suuri osa verkon vianmääritystä.

    Taso 2: Tietolinkkikerros

    Pohjimmiltaan datalinkkikerros määrittää tietomuodon verkossa. Tässä tapahtuu tietokehysten kommunikointi isäntien välillä. Tämän kerroksen hallitseva protokolla on ARP (Address Resolution Protocol).

    ARP vastaa linkkikerroksen osoitteiden löytämisestä ja suorittaa IPv4-osoitteiden yhdistämisen kerroksessa 3 MAC-osoitteisiin. Yleensä, kun isäntä ottaa yhteyttä oletusyhdyskäytävään, on mahdollista, että sillä on jo isännän IP, mutta ei MAC-osoitteita.

    ARP-protokolla kattaa kerroksen 3 ja kerroksen 2 välisen kuilun kääntämällä 32-bittiset IPv4-osoitteet kerroksessa 3 48-bittisiksi MAC-osoitteiksi kerroksessa 2 ja päinvastoin.

    Kun tietokone liittyy LAN-verkkoon, reititin ( oletusyhdyskäytävä) määrittää sille IP-osoitteen tunnistamista varten. Kun toinen isäntä lähettää tietokoneelle määrätyn datapaketin oletusyhdyskäytävälle, reititin pyytää ARP:ta etsimään IP-osoitteen mukana tulevaa MAC-osoitetta.

    Jokaisella järjestelmällä on oma ARP-taulukko. Tarkista ARP-taulukkosi suorittamalla komento:

    ip neighbor show
    

    Kuten huomaat, reitittimen MAC-osoite on täytetty. Jos ratkaisussa on ongelma, komento ei palauta tulosta.

    Taso 3: Verkko-/Internet-kerros

    Tämä on taso, jossa työskentelet yksinomaan IPv4-osoitteiden kanssa, jotka ovat järjestelmänvalvojien tuttuja. Se tarjoaa useita protokollia, kuten ICMP ja ARP, joita olemme käsitelleet, ja muita protokollia, kuten RIP (Routing Information Protocol). ).

    Joitakin yleisiä ongelmia ovat laitteen virheelliset määritykset tai ongelmat verkkolaitteiden, kuten reitittimien ja kytkimien, kanssa. Hyvä paikka aloittaa vianetsintä on tarkistaa, onko järjestelmäsi valinnut IP-osoitteen seuraavasti:

    ifconfig
    

    Voit myös käyttää ping-komentoa Internet-yhteyden tarkistamiseen lähettämällä ICMP-kaikupaketin Googlen DNS:ään. Lippu -c ilmaisee lähetettyjen pakettien määrän.

    ping 8.8.8.8 -c 4
    

    Tulos näyttää myönteisen vastauksen Googlen DNS:ltä ilman pakettihäviötä. Jos sinulla on ajoittainen yhteys, voit tarkistaa, missä kohdassa paketit pudotetaan traceroute-komennolla seuraavasti.

    traceroute google.com
    

    Tähdet osoittavat pisteen, jossa paketit pudotetaan tai katoavat.

    Nslookup-komento kysyy DNS:ltä verkkotunnukseen tai isäntänimeen liittyvän IP-osoitteen. Tätä kutsutaan eteenpäin DNS-hauksi.

    Esimerkiksi.

    
    nslookup google.com
    

    Komento paljastaa google.com-verkkotunnukseen liittyvät IP-osoitteet.

    
    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-komento on vielä toinen komento, jota käytetään verkkotunnuksen nimeen liittyvien DNS-palvelimien kyselyyn. Esimerkiksi DNS-nimipalvelimien kyselyn tekeminen:

    
    dig google.com
    

    Kerros 4: Kuljetuskerros

    Siirtokerros käsittelee tiedonsiirtoa TCP- ja UDP-protokollien avulla. Yhteenvetona totean, että TCP on yhteyssuuntautunut protokolla, kun taas UDP on yhteydetön. Käynnissä olevan sovelluksen kuuntelu pistokkeissa, jotka koostuvat porteista ja IP-osoitteista.

    Yleisiä ongelmia, joita saattaa ilmetä, mukaan lukien estettyjen TCP-porttien, joita sovellukset saattavat vaatia. Jos sinulla on verkkopalvelin ja haluat varmistaa sen toimintatilan, tarkista netstat- tai ss-komennolla, kuunteleeko verkkopalvelu porttia 80

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

    Joskus portti voi olla järjestelmän käynnissä olevan palvelun käytössä. Jos haluat toisen palvelun käyttävän kyseistä porttia, saatat joutua määrittämään sen käyttämään toista porttia.

    Jos sinulla on edelleen ongelmia, tarkista palomuuri ja tarkista, onko sinua kiinnostava portti estetty.

    Suurin osa vianetsinnästä tapahtuu näillä neljällä tasolla. Istunto-, esitys- ja sovellustasoilla vianmääritystä tehdään hyvin vähän. Tämä johtuu siitä, että niillä on vähemmän aktiivinen rooli verkoston toiminnassa. Saamme kuitenkin nopeasti yleiskuvan siitä, mitä näissä kerroksissa tapahtuu.

    Taso 5: Istuntokerros

    Istuntokerros avaa istunnoiksi kutsuttuja viestintäkanavia ja varmistaa, että ne pysyvät auki tiedonsiirron aikana. Se myös sulkeutuu, kun yhteys on katkaistu.

    Taso 6: Esityskerros

    Esityskerros, joka tunnetaan myös nimellä syntaksikerros, syntetisoi tiedot sovelluskerroksen käytettäväksi. Siinä kerrotaan, kuinka laitteiden tulee salata, koodata ja pakata tiedot varmistaakseen, että ne otetaan hyvin vastaan toisessa päässä.

    Taso 7: Sovelluskerros

    Lopuksi meillä on sovelluskerros, joka on lähinnä loppukäyttäjiä ja sallii heidän olla vuorovaikutuksessa sovellusohjelmiston kanssa. Sovelluskerros on täynnä protokollia, kuten HTTP, HTTPS, POP3, IMAP, DNS, RDP, SSH, SNMP ja NTP muutamia mainitakseni.

    Johtopäätös

    Linux-järjestelmän vianmäärityksessä kerrottu lähestymistapa OSI-mallilla on erittäin suositeltavaa, alkaen alimmasta kerroksesta. Tämä antaa sinulle käsityksen siitä, mikä menee pieleen, ja auttaa sinua rajaamaan ongelman.