Linux TSHOOT Network Commands

By | 26/07/2022

Last Updated on 05/01/2023 by administrator

Linux TSHOOT Network Commands

Linux TSHOOT Network Commands

Motivace:

Tento článek popisuje základní TSHOOT síťové příkazy, které je možné použít v Linuxu.

Implementace:

L1 TSHOOT

a) Je rozhraní UP?

ip link show eno1

Výstup příkazu ip link show eno1 níže ukazuje, že je rozhraní UP.

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 24:4b:fe:2d:76:0e brd ff:ff:ff:ff:ff:ff

Pokud by byla link ve stavu DOWN, tak zkusit aktivovat rozhraní eno1 příkazem níže:

ip link set eno1 up

Pokud je stále rozhraní ve stavu DOWN, zkontrolovat kabeláž, konektory či zda svítí LEDky na obou stranách sítového rozhraní.

b) Zobrazení statistik na rozhraní:

ip -s -s link show eno1

Výpis příkazu ip -s -s link show eno1 show ukazuje statistiku na rozhraní:

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 24:4b:fe:2d:76:0e brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    1084190590 3383538  0       181     0       61778
    RX errors: length   crc     frame   fifo    missed
               0        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    839828553  3389819  0       0       0       0
    TX errors: aborted  fifo   window heartbeat transns
               0        0       0       0       2

Alternativně se dají použít příkazy níže:

netstat --interfaces
cat /proc/net/dev

c) Ověření duplex, speed, auto-negotiation:

Pro pokročilejší odstraňování problémů na L1 vrstvě je vynikající volbou nástroj ethtool.

Instalace ethtool:

apt install ethtool

Příkaz ethtool eno1 zobrazí např. podporu auto vyjednávání, jaká rychlost a duplex portu byl vyjednán na rozhraní eno1:

ethtool eno1

Vypis příkazu ethtool eno1:

Settings for eno1:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: Symmetric
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: d
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes

L2 TSHOOT

Detekce duplicitní IP adresy v síti:

apt install arpping

Pro otestování, zda je IP adresa 192.168.0.247 duplikovaná, slouží následující příkaz:

sudo arping -I eno1 192.168.0.247

Výpis příkazu sudo arping -I eno1 192.168.0.247 ukazuje, že IP adresa 192.168.0.247 je sdílená dvěma zařízeními a to 60:6c:66:60:f1:53 a 7c:d6:61:b3:ea:89.

ARPING 192.168.0.247
60 bytes from 60:6c:66:60:f1:53 (192.168.0.247): index=0 time=98.001 msec
60 bytes from 7c:d6:61:b3:ea:89 (192.168.0.247): index=1 time=99.009 msec
60 bytes from 60:6c:66:60:f1:53 (192.168.0.247): index=2 time=18.751 msec
60 bytes from 7c:d6:61:b3:ea:89 (192.168.0.247): index=3 time=19.553 msec
60 bytes from 60:6c:66:60:f1:53 (192.168.0.247): index=4 time=41.576 msec
60 bytes from 7c:d6:61:b3:ea:89 (192.168.0.247): index=5 time=42.636 msec
60 bytes from 60:6c:66:60:f1:53 (192.168.0.247): index=6 time=64.954 msec
60 bytes from 60:6c:66:60:f1:53 (192.168.0.247): index=7 time=87.533 msec

--- 192.168.0.247 statistics ---
5 packets transmitted, 8 packets received,   0% unanswered (3 extra)
rtt min/avg/max/std-dev = 18.751/59.002/99.009/31.062 ms

Pokud se používá management switch, je možné se na něj připojit a zjistit na jakém portu tohoto switche jsou přiřazené MAC adresy.

L3 TSHOOT

a) Ověření nakonfigurované IP adresy na rozhraní:

ip a show eno1

Výpis prikazu ip a show eno1 show ukazuje, že rozhraní eno1 má nakonfigurovanou IPv4 adresu 192.168.0.7. Ta je nakonfigurovaná staticky (není získaná z DHCP serveru) což zobrazuje valid_lft forever.

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 24:4b:fe:2d:76:0e brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.7/24 brd 192.168.0.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::d8c8:8c06:ac88:e1d8/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Alternativně se dá použít příkaz níže:

ifconfig eno1

Postup pro konfiguraci statického nastavení IP adresy na rozhraní, lze provést pomocí tohoto článku: https://martinuvzivot.cz/nastaveni-staticke-ip-v-linuxu/

b) Ověření nastavení defaultní routy či statické routy na rozhraní

ip route show

Výstup příkazu ip route show ukazuje, že pro rozhraní eno1 je nastavená defaultní routa 192.168.0.1.

default via 192.168.0.1 dev eno1 proto static metric 100
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.7 metric 100

Nastavení defaultní routy, lze provést pomocí tohoto článku: https://martinuvzivot.cz/nastaveni-staticke-ip-v-linuxu/

Alternativně se dají použít příkazy níže:

route -n
netstat -r

c) Ověření nastavení DNS serveru na rozhraní:

Zda je nastaven DNS server na rozhraní eno1 se provede příkazem níže:

resolvectl status

Z výpisu resolvectl status lze vidět, že je použitý primární DNS server 9.9.9.9 a sekundární DNS server 8.8.8.8.

Global
         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: foreign
Current DNS Server: 9.9.9.9
       DNS Servers: 9.9.9.9 8.8.8.8
        DNS Domain: lan

Link 2 (eno1)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Nastavení DNS serverů na rozhraní, lze provést pomocí tohoto článku: https://martinuvzivot.cz/nastaveni-staticke-ip-v-linuxu/

d) Ověření DNS překladu:

Ověření překladu doménového jména martinuvzivot.cz na IP adresu přes primární DNS server 9.9.9.9.

dig martinuvzivot.cz @9.9.9.9

Výpis příkazu ukazuje, že doménové jméno martinuvzivot.cz bylo úspěšně přeloženo na IP adresu 62.109.140.51 pomocí DNS serveru 9.9.9.9. Lze vidět také i Query time, což je celková doba zpracování DNS překladu v milisekundách.

; <<>> DiG 9.16.1-Ubuntu <<>> martinuvzivot.cz @9.9.9.9
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26377
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;martinuvzivot.cz.              IN      A

;; ANSWER SECTION:
martinuvzivot.cz.       21600   IN      A       62.109.140.51

;; Query time: 24 msec
;; SERVER: 9.9.9.9#53(9.9.9.9)
;; WHEN: Ne čen 05 16:13:39 CEST 2022
;; MSG SIZE  rcvd: 61

Pro instalaci a konfiguraci svého rekurzivního DNS serveru pomocí aplikace BIND lze provést pomocí tohoto návodu: https://martinuvzivot.cz/konfigurace-bind-dns-serveru-na-ubuntu-20-04-configure-bind-ubuntu/

e) Ověření latence a chybovosti linek [2]:

MTR je diagnostický nástroj, který kombinuje ping a traceroute navíc se zobrazením ztracených paketů a variací paketů na každém “hopu” po cestě na cílový server.

mtr -4b martinuvzivot.cz

Legenda:

  • -t – k doménovým jménům zobrazí IPv4 adresy.
  • -4 – pro IPv4 síť

Výpis příkazu mtr -4b martinuvzivot.cz ukazuje latenci a 0% ztrátu paketů po cestě přes 7 routerů k cílovému serveru martinuvzivot.cz.

cvrcek (192.168.0.7)                                                                                                                                                                     2022-06-05T16:25:16+0200
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                                                                                                                                         Packets               Pings
                              My traceroute  [v0.93]
cvrcek (192.168.0.7)                                   2022-06-05T16:26:03+0200
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                       Packets               Pings
 Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. gw.lan                            0.0%    65    0.4   0.4   0.2   0.5   0.1
 2. 192.168.79.1                      0.0%    65    3.2   6.0   1.6  22.1   3.5
 3. 192.168.28.1                      0.0%    65    8.3   6.7   3.3  24.5   3.0
 4. core.ispalliance.cz               0.0%    65   23.2  17.5  11.7  62.0   7.0
 5. core.ispalliance.cz               0.0%    65   15.0  16.3  12.0  47.4   5.9
 6. gloria.net.ignum.cz               0.0%    65   14.3  15.7  11.3  46.8   4.7
 7. srv71.endora.cz                   0.0%    65   16.8  15.7  11.9  33.7   3.6

L4 TSHOOT

a) Ověření, zda server naslouchá na TCP portu:

nc -v -z martinuvzivot.cz 443 -w 5

Legenda:

  • -v – ukecanost příkazu
  • -z – sken služby bez vyslání dat
  • -w – maximální timeout v sekundách pro odpověď

Výpis příkazu nc -v -z martinuvzivot.cz 443, ukazuje, že server martinuvzivot.cz naslouchá na TCP/443.

Connection to martinuvzivot.cz (62.109.140.51) 443 port [tcp/http] succeeded!

Alternativně se dá použít test na TCP port pomocí příkazu níže:

telnet martinuvzivot.cz 443

Výpis příkazu telnet martinuvzivot.cz 443 ukazuje, že server martinuvzivot.cz naslouchá na HTTPS (TCP/443).

Trying 62.109.140.51...
Connected to martinuvzivot.cz.
Escape character is '^]'.

b) Ověření latence aplikace na příslušném TCP portu [4]:

Pokud TCP port odpovídá pak je možné provést test latence:

time nc -vzw10 martinuvzivot.cz 443

Výpis time nc -vzw10 martinuvzivot.cz 443 ukazuje, že latence aplikace běžící na portu TCP/443 je 29ms.

Connection to martinuvzivot.cz 443 port [tcp/https] succeeded!
real    0m0,029s
user    0m0,001s
sys     0m0,006s

Ověření, zda služba naslouchá na příslušném portu:

ss -tunlp4

Legenda:

  • -t – zobrazení TCP portů.
  • -u – zobrazení UDP portů.
  • -n – nebudou se překládat doménové jména
  • -l – zobrazí se jen listening porty
  • -p – zobrazí ke kterému procesu/službě je přiřazen socket
  • -4 – zobrazí jen IPv4 sockety

Výpis příkazu ss -tunlp4 ukazuje, všechny běžící (listening) služby na příslušných TCP a UDP portech.

Netid        State         Recv-Q        Send-Q               Local Address:Port                 Peer Address:Port        Process
udp          UNCONN        0             0                          0.0.0.0:53                        0.0.0.0:*            users:(("pihole-FTL",pid=1540,fd=4))
udp          UNCONN        0             0                          0.0.0.0:123                       0.0.0.0:*            users:(("ntpd",pid=761,fd=17))
udp          UNCONN        0             0                          0.0.0.0:161                       0.0.0.0:*            users:(("snmpd",pid=801,fd=6))
udp          UNCONN        0             0                          0.0.0.0:514                       0.0.0.0:*            users:(("rsyslogd",pid=659,fd=6))
tcp          LISTEN        0             32                         0.0.0.0:53                        0.0.0.0:*            users:(("pihole-FTL",pid=1540,fd=5))
tcp          LISTEN        0             128                        0.0.0.0:22                        0.0.0.0:*            users:(("sshd",pid=804,fd=3))

Alternativně se dá použít příkaz níže:

netstat -natup

Zdroj:

[1] https://www.redhat.com/sysadmin/beginners-guide-network-troubleshooting-linux

[2] https://www.redhat.com/sysadmin/linux-mtr-command

[3] https://pastebin.com/JHS2ydT7

[4] https://newbedev.com/what-is-the-best-way-to-measure-latency-via-a-telnet-to-port-test-preferably-with-built-in-linux-tools

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Leave a Reply

Your email address will not be published. Required fields are marked *