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