$ cat ./osnovy-setej.md
Когда я только пришёл в девопс, сети казались магией: тык — и сайт открылся. Потом пришло осознание, что это просто цепочка адресов и договорённостей. Разберём её по кусочкам.
IP-адрес — адрес вашей квартиры в интернете
Каждое устройство в сети имеет IP-адрес. IPv4-адрес — это 4 числа от 0 до 255 через точку, например 192.168.1.10. Четыре числа = четыре байта = 32 бита. Поэтому IPv4-сетей станет меньше, чем устройств — поэтому придумали IPv6 (128 бит, вида 2001:db8::1), но пока живём на IPv4.
Посмотреть свои адреса на Linux:
ip addr # все интерфейсы
ip -4 addr show # только IPv4
MAC vs IP: паспорт и фан-зона
- MAC-адрес — шлётся оборудованию на заводе, живёт в сетевой карте. Неизменен и не пересекает маршрутизаторы. Это паспорт.
- IP-адрес — выдаётся при подключении к сети и может меняться. Его знают все, кто хочет до нас достучаться. Это имя в фан-зоне.
Пакет несёт оба: IP — куда доставить в принципе, MAC — кому передать в конкретном куске провода.
Маска подсети — кто сосед, а кто за шлагбаумом
Маска 255.255.255.0 (или /24) говорит: первые три октета — адрес сети, последний — адрес хоста внутри неё. Свои = та же подсеть. Чужие = надо идти через шлюз.
ip addr | grep / # увидите 192.168.1.10/24
/24— 254 хоста, повседневная локальная сеть/16— 65 534 хоста, большая внутренняя сеть/32— один адрес, точка-точка
Шлюз (gateway) — дверь в большой мир
Если адресат не в нашей подсети, пакет отдаётся шлюзу по умолчанию — обычно роутеру. Он смотрит на IP и передаёт пакет дальше по маршрутной таблице.
ip route show # default via 192.168.1.1 dev eth0
traceroute 8.8.8.8 # покажет весь путь через маршрутизаторы
DNS — телефонная книга интернета
Люди запоминают bazil.pw, маршрутизаторы — 29.0.252.78 (гипотетически). DNS превращает имя в IP. Каждая зона делегирована: корневые серверы → .pw → bazil.pw → конкретный сервер.
dig +short bazil.pw # быстрый ответ A-записи
nslookup bazil.pw # чуть подробнее
dig bazil.pw MX # почтовые записи
Если DNS падает — сайт «не работает», хотя сервер жив. Классика.
TCP vs UDP: курьер с подтверждением и почтовый голубь
| TCP | UDP | |
|---|---|---|
| Доставка | гарантирует, повторяет потерянные | не гарантирует |
| Порядок | сохраняет | не сохраняет |
| Скорость | медленнее | быстрее |
| Примеры | HTTP, SSH, почта | DNS, стриминг, игры, VoIP |
TCP — это диалог: SYN → SYN-ACK → ACK, потом поток данных и подтверждения. UDP — выстрелил и забыл.
Порты — двери в сервис
IP нашёл машину, порт — какую программу на ней. ssh живёт на 22, HTTP на 80, HTTPS на 443, DNS на 53.
ss -tlnp # какие TCP-порты слушает ваша машина
curl -s -o /dev/null -w '%{http_code}' https://bazil.pw # проверить, что сайт отдаёт 200
Шпаргалка по диагностике
ping -c3 8.8.8.8 # жива ли сеть в принципе
dig +short example.com # резолвится ли имя
traceroute example.com # где теряются пакеты
ss -tunap # что слушает / куда подключено
curl -v https://site # как идёт HTTPS-рукопожатие
Прочитайте вывод — там всё, что нужно для 80% дежурств: адрес, маршрут, порт и ответ сервера. Учёба на реальной сети — лучший способ, bazil.pw всегда готов пингнуться.