Tech Handbook Null Yard

Sieci komputerowe dla developera

Sieci są warstwą, przez którą przechodzi praktycznie każda współczesna aplikacja. Ten materiał skupia się na tym, co trzeba rozumieć przy pracy z serwerem, API, bazą danych, kontenerami i diagnostyką połączeń.

Powiązane tematy: DNS, domeny i routing internetowy, SSH i zdalna administracja oraz HTTP, HTTPS i TLS.

1. Cel

Nie chodzi o przygotowanie do CCNA. Chodzi o sprawne rozumienie: - IP, - portów, - TCP/UDP, - DHCP, - DNS, - routingu, - NAT, - VLAN, - firewalli, - podstaw diagnostyki.

2. Warstwy - praktycznie

Uproszczony model:

Aplikacja       HTTP, DNS, SSH
Transport       TCP, UDP
Sieć            IP
Łącze danych    Ethernet, Wi‑Fi
Fizyczna        kabel, radio

3. MAC a IP

MAC identyfikuje interfejs w lokalnej sieci warstwy 2.

IP służy do komunikacji routowanej.

ip link
ip addr

4. TCP

TCP: - połączeniowy, - potwierdza dane, - zachowuje kolejność, - retransmituje zgubione segmenty.

Używa go m.in.: - HTTP/1.1, - HTTP/2, - SSH, - PostgreSQL.

5. UDP

UDP: - bez ustanawiania połączenia, - bez gwarancji dostarczenia, - mniejszy narzut.

Używany m.in.: - DNS, - DHCP, - QUIC/HTTP/3, - VoIP.

6. Porty

Zakres:

0-65535

Popularne:

22   SSH
53   DNS
80   HTTP
443  HTTPS
5432 PostgreSQL
6379 Redis

7. Nasłuchujące porty

ss -lntup

Tylko TCP:

ss -lnt

Proces na porcie 8080:

sudo lsof -i :8080

8. DHCP

DHCP automatycznie przydziela: - IP, - maskę/prefix, - gateway, - DNS.

9. ARP i Neighbor Discovery

IPv4 używa ARP:

ip neigh

Pokazuje mapowanie IP ↔ MAC w LAN.

IPv6 używa Neighbor Discovery.

10. Routing

ip route

Przykład:

default via 192.168.1.1 dev eth0
10.0.0.0/8 via 192.168.1.254 dev eth0

Najbardziej szczegółowa trasa wygrywa.

11. NAT

Typowy router domowy zmienia prywatne adresy źródłowe na publiczny adres WAN.

12. VLAN

VLAN logicznie rozdziela jedną infrastrukturę warstwy 2.

Przykład: - VLAN 10 - dom, - VLAN 20 - IoT, - VLAN 30 - goście, - VLAN 40 - serwery.

Komunikacja między VLAN-ami wymaga routingu.

13. Firewall

Firewall podejmuje decyzje na podstawie m.in.: - adresu źródłowego, - adresu docelowego, - portu, - protokołu, - stanu połączenia.

Zasada serwera:

otwieraj tylko to, co naprawdę potrzebne

14. ping

ping 1.1.1.1
ping example.com

Jeżeli IP działa, a domena nie, podejrzewaj DNS.

Brak odpowiedzi na ping nie zawsze oznacza awarię - ICMP może być blokowany.

15. traceroute

traceroute example.com

lub:

tracepath example.com

Pokazuje kolejne routery po drodze.

16. curl

Test warstwy aplikacyjnej:

curl -v https://example.com

17. nc / netcat

Sprawdzenie portu:

nc -vz example.com 443

Nasłuch testowy:

nc -l 9000

18. tcpdump

Podgląd ruchu:

sudo tcpdump -i any

Port 443:

sudo tcpdump -i any port 443

Host:

sudo tcpdump -i any host 192.168.1.20

19. DNS w systemie

resolvectl status

lub:

cat /etc/resolv.conf

20. Publiczne i prywatne IP

Sprawdzenie lokalnego:

ip addr

Publiczny można sprawdzić przez zewnętrzną usługę HTTP.

21. MTU

MTU określa maksymalny rozmiar pakietu/ramki dla interfejsu.

Typowo Ethernet:

1500

Problemy z MTU często ujawniają się przy VPN.

22. Diagnostyka krok po kroku

Jeśli aplikacja nie działa:

  1. Czy interfejs ma IP?
ip addr
  1. Czy jest trasa?
ip route
  1. Czy działa gateway?
ping GATEWAY
  1. Czy działa internet po IP?
ping 1.1.1.1
  1. Czy działa DNS?
dig example.com
  1. Czy port jest osiągalny?
nc -vz example.com 443
  1. Czy protokół aplikacyjny działa?
curl -v https://example.com
  1. Czy lokalnie usługa słucha?
ss -lntup

23. Co trzeba umieć

  • odróżnić problem DNS od problemu sieci,
  • znaleźć proces na porcie,
  • sprawdzić trasę,
  • rozumieć TCP/UDP,
  • rozumieć NAT i VLAN,
  • testować połączenie przez ping, nc, curl, tcpdump.

Oficjalne źródła

  • RFC 9293 - Transmission Control Protocol: https://www.rfc-editor.org/rfc/rfc9293
  • RFC 768 - User Datagram Protocol: https://www.rfc-editor.org/rfc/rfc768
  • RFC 8200 - Internet Protocol Version 6 (IPv6): https://www.rfc-editor.org/rfc/rfc8200