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:
- Czy interfejs ma IP?
ip addr
- Czy jest trasa?
ip route
- Czy działa gateway?
ping GATEWAY
- Czy działa internet po IP?
ping 1.1.1.1
- Czy działa DNS?
dig example.com
- Czy port jest osiągalny?
nc -vz example.com 443
- Czy protokół aplikacyjny działa?
curl -v https://example.com
- 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