Большой гид по сетям для DevOps  

От IP-адресов и DNS до маршрутизации, безопасности и отладки. Фундамент, на котором держатся Linux, облако и Kubernetes, и без которого в три часа ночи приходится гадать вместо того, чтобы чинить. Есть старая шутка инженеров: что бы ни сломалось, в итоге виноват DNS. Шутка живуча, потому что в ней много правды: огромная доля проблем в проде — это на самом деле проблемы сети, просто переодетые в «приложение тормозит» или «сервис не отвечает». А чинить сеть, не понимая, как она устроена, всё равно что искать утечку в темноте на ощупь. Хорошая новость в том, что сетевые основы меняются медленно. Выучите их один раз — и это знание будет работать на вас и в Linux, и в AWS, и в Kubernetes, какой бы инструмент ни вошёл в моду. Давайте пройдём путь от азов до продвинутого, по дороге отвечая на главный вопрос: зачем это лично вам как инженеру. Что такое сеть и как на неё смотреть Сеть — это набор устройств, которые умеют обмениваться данными. Данные ходят не сплошным потоком, а кусочками — пакетами. Каждый пакет несёт адрес отправителя, адрес получателя и часть полезной нагрузки. Чтобы не держать в голове всё сразу, сеть удобно представлять слоями. Практичнее всего модель TCP/IP из четырёх слоёв: Канальный — как соседние устройства общаются в пределах одной физической сети (MAC-адреса, Ethernet, Wi-Fi). Сетевой (IP) — как пакет находит дорогу между сетями по IP-адресам. Транспортный (TCP/UDP) — как организован поток между приложениями: с гарантией доставки или без. Прикладной — то, чем вы пользуетесь напрямую: HTTP, DNS, SSH. Зачем это DevOps-инженеру: когда что-то не работает, эта лестница превращается в чек-лист. Вы идёте снизу вверх и отсекаете слои по очереди, вместо того чтобы паниковать сразу обо всём. IP-адреса: кто есть кто в сети IPv4-адрес выглядит как четыре числа от 0 до 255: например, 10.0.4.17. Адресов IPv4 на всех не хватило, поэтому существуют приватные диапазоны для внутренних сетей, которые не маршрутизируются в интернет напрямую: 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 Именно из этих диапазонов нарезаются адреса в облачных сетях и домашних роутерах. Параллельно существует IPv6 с гигантским запасом адресов (вида 2001:db8::1); в облаке вы будете встречать его всё чаще. Зачем это знать: когда вы видите у сервиса адрес 10.x.x.x, вы сразу понимаете, что это внутренний адрес, и его нельзя достучаться снаружи без отдельной настройки. Половина вопросов «почему не подключается» — про это. Подсети и CIDR: как делят адресное пространство Дальше начинается то, что отпугивает новичков, а зря — это просто. Запись вроде 10.0.4.0/24 означает: первые 24 бита — это «адрес сети», а остальные 8 бит — адреса машин внутри неё. Восемь бит дают 256 адресов (из них пара служебных), то есть в подсети /24 помещается около 254 хостов. Простое правило на пальцах: чем больше число после слеша, тем меньше подсеть. /24 — это 256 адресов, /16 — уже больше 65 тысяч, /32 — ровно один адрес. Зачем это DevOps-инженеру: вы постоянно будете нарезать подсети в облачных сетях, задавать диапазоны для подов в Kubernetes и описывать правила доступа в терминах CIDR (например, «разрешить трафик только из 10.0.0.0/16»). Не уметь читать CIDR — значит не понимать собственную инфраструктуру. Порты и протоколы: TCP против UDP IP-адрес приводит пакет к нужной машине, а порт — к нужному приложению на ней. На одном сервере веб-сервис слушает порт 443, база — 5432, и они не мешают друг другу. Два главных транспортных протокола: TCP — с установлением соединения и гарантией доставки. Перед обменом стороны проводят «рукопожатие», пакеты приходят по порядку и подтверждаются. Это HTTP, SSH, базы данных — всё, где важна целостность. UDP — без соединения и без гарантий, зато быстрый и лёгкий. Это DNS, видеозвонки, стриминг — там, где лучше потерять кусочек, чем ждать. Полезно помнить частые порты: 22 (SSH), 80 (HTTP), 443 (HTTPS), 53 (DNS), 5432 (PostgreSQL), 3306 (MySQL), 6379 (Redis), 6443 (Kubernetes API). Когда сервис «не отвечает», первый трезвый вопрос — а слушает ли вообще нужный порт и открыт ли он на файрволе.

Большой гид по сетям для DevOps | Сетка — социальная сеть от hh.ru