Найти в Дзене
Т.Е.Х.Н.О Windows & Linux

🌐 IP-адреса за 5 минут: полная шпаргалка для админов и разработчиков

Когда вы настраиваете локальную сеть, поднимаете сервер или пишете сетевое приложение на Python, вам будут встречаться IP-адреса. Домашняя Wi-Fi сеть, корпоративная инфраструктура, облачные сервисы — везде работают одни и те же принципы. Проблема в том, что в интернете много устаревшей или противоречивой информации. Эта статья собрана из официальных стандартов (RFC), документации IANA и лучших практик, которые действуют именно сейчас, в 2025 году. Главное, что нужно помнить: на исходе IPv4 (публичные адреса кончились в 2011 году), а IPv6 медленно набирает обороты (43% трафика по данным Google на начало 2025). Знание обеих систем — критично. Текущее состояние: IPv4 исчерпан, IPv6 входит в силу IPv4 полностью исчерпана с точки зрения новых выделений. Последний пул IANA был разделён между пятью региональными регистратурами (RIR) 3 февраля 2011 года. Теперь адреса доступны только через вторичный рынок (дорого) или через переработку старых блоков. На конец 2024 года в системе RIR осталось
Оглавление

Когда вы настраиваете локальную сеть, поднимаете сервер или пишете сетевое приложение на Python, вам будут встречаться IP-адреса. Домашняя Wi-Fi сеть, корпоративная инфраструктура, облачные сервисы — везде работают одни и те же принципы. Проблема в том, что в интернете много устаревшей или противоречивой информации. Эта статья собрана из официальных стандартов (RFC), документации IANA и лучших практик, которые действуют именно сейчас, в 2025 году.

Главное, что нужно помнить: на исходе IPv4 (публичные адреса кончились в 2011 году), а IPv6 медленно набирает обороты (43% трафика по данным Google на начало 2025). Знание обеих систем — критично.

Текущее состояние: IPv4 исчерпан, IPv6 входит в силу

IPv4 полностью исчерпана с точки зрения новых выделений. Последний пул IANA был разделён между пятью региональными регистратурами (RIR) 3 февраля 2011 года. Теперь адреса доступны только через вторичный рынок (дорого) или через переработку старых блоков.

На конец 2024 года в системе RIR осталось всего 4,6 млн свободных IPv4 адресов, в основном в APNIC (3,6 млн) и AFRINIC (990К). Для сравнения: всего в мире ~4,3 млрд IPv4 адресов. Это означает истощение на 99,9%.

Одновременно IPv6 растёт экспоненциально. По прогнозам, рынок IPv6 вырастет с $6,77 млрд в 2025 году до $27,38 млрд к 2030 году (CAGR 32,2%). Но принятие остаётся медленным: США — 53%, Франция — 78%, мобильный сегмент опережает Enterprise.

Детальный разбор IP-адресации

1. IPv4: основной протокол (32 бита)

Структура: четыре октета (по 8 бит), записываются десятичной точечной нотацией: 192.168.1.1

Три блока приватных адресов по RFC 1918:

-2

Важно: эти адреса не маршрутизируются в интернете. Они локальны по определению. Если вы отправите пакет с источником 10.0.0.1 в интернет, он будет заблокирован на границе сети.

2. CIDR нотация: как узнать размер подсети

CIDR (Classless Inter-Domain Routing) — это способ записать маску как количество бит сети. Формат: адрес/префикс

  • Пример: 192.168.1.0/24
  • /24 — первые 24 бита сеть, остальные 8 бит — хосты.
  • В двоичной форме маска: 11111111.11111111.11111111.00000000
  • В десятичной: 255.255.255.0
  • Количество хостов: 2(32−24)−2=2542(32−24)−2=254 (минус 2: сеть и трансляция)

Таблица CIDR для суммативных размеров подсетей:

-3

Формула: Хостов = 2(32−префикс)−22(32−префикс)−2

3. Специальные адреса и зарезервированные блоки

По RFC 5735, существует множество адресов, которые нельзя использовать как обычные хосты:

-4

Ключевой вывод: loopback (127.0.0.1) и link-local (169.254.x.x) не должны переходить через маршрутизатор.

4. IPv6: 128-битная архитектура (будущее)

IPv6 решает проблему исчерпания адресов радикально: 2128≈3.4×10382128≈3.4×1038 уникальных адресов (на каждого жителя Земли — больше адресов, чем звёзд на небе).

Формат IPv6: восемь групп по 4 hex-символа, разделённые двоеточием: 2001:0db8:0000:0000:0000:ff00:0042:8329

Сокращение:

  • Нулевые группы подряд можно заменить на :: (только один раз!)
  • Пример: 2001:db8::ff00:42:8329

Основные типы адресов IPv6:

-5

Важный нюанс по RFC 4193: ULA имеет стандартный префикс fc00::/7, но 8-й бит (L-бит) обязан быть 1, что даёт fd00::/8 как единственный используемый диапазон в настоящее время.

IPv6 subnetting: типичный размер подсети — /64. Это не совпадение: первые 64 бита — сетевой адрес, вторые 64 — interface ID (часто MAC-адрес хоста).

Пошаговые инструкции

Задача 1: Разбить 192.168.0.0/24 на три подсети для разных отделов

Требования:

  • Отдел А: 100 хостов
  • Отдел Б: 50 хостов
  • Отдел В: 20 хостов

Решение (VLSM — Variable Length Subnet Mask):

  1. Сортируем по размеру: 100 → 50 → 20
  2. Для 100 хостов: нужно 2n≥1022n≥102, т.е. n=7, подсеть /25 (128 адресов, 126 юз.)
  3. 192.168.0.0/25 (192.168.0.0 — 192.168.0.127)
  4. Для 50 хостов: нужно 2n≥522n≥52, т.е. n=6, подсеть /26 (64 адреса, 62 юз.)
  5. 192.168.0.128/26 (192.168.0.128 — 192.168.0.191)
  6. Для 20 хостов: нужно 2n≥222n≥22, т.е. n=5, подсеть /27 (32 адреса, 30 юз.)
  7. 192.168.0.192/27 (192.168.0.192 — 192.168.0.223)
  8. Остаток: 192.168.0.224/27 (свободное место на будущее)

Linux/macOS команда (ipcalc):

ipcalc 192.168.0.0 -s 100 50 20

Вывод:

Address: 192.168.0.0 11000000.10101000.00000000. 00000000

Netmask: 255.255.255.0 11111111.11111111.11111111. 00000000

Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111

Network: 192.168.0.0/24

HostMin: 192.168.0.1

HostMax: 192.168.0.254

Broadcast: 192.168.0.255

Hosts/Net: 254 Class C, Private Internet

Subnets after cutting /25 into /27, /27, /28...

[детальный вывод подсетей]

🔖Дорогие гости и подписчики канала. Если наши материалы приносят вам пользу, вы всегда можете поддержать команду символическим переводом. Любая помощь мотивирует писать для Вас больше полезного и качественного контента безо всяких подписок.🙏🤝🙏🤝🙏
-6
💰ПОДДЕРЖАТЬ КАНАЛ МОЖНО ТУТ ( ОТ 50 РУБЛЕЙ )💰
Или сделать любой перевод по QR-коду через СБП. Быстро, безопасно и без комиссии.(Александр Г.)
С уважением, Команда "Т.Е.Х.Н.О Windows & Linux".

Задача 2: Настроить firewall ACL для блокировки bogon-адресов

Bogon-адреса — это адреса, которые не должны появляться в исходящем трафике из Интернета:

ip access-list extended BOGON_FILTER

deny ip 10.0.0.0 0.255.255.255 any ! RFC1918

deny ip 172.16.0.0 0.15.255.255 any ! RFC1918

deny ip 192.168.0.0 0.0.255.255 any ! RFC1918

deny ip 0.0.0.0 255.255.255.255 any ! This network

deny ip 127.0.0.0 0.255.255.255 any ! Loopback

deny ip 169.254.0.0 0.0.255.255 any ! Link-local

deny ip 224.0.0.0 15.255.255.255 any ! Multicast

deny ip 240.0.0.0 15.255.255.255 any ! Reserved

permit ip any any ! Остальное разрешаем

interface GigabitEthernet0/0/0

ip access-group BOGON_FILTER in

Безопасность, риски и миграция

Риск 1: NAT exhaustion (исчерпание транляции портов)

Проблема: при NAT один публичный IP может обслуживать множество приватных адресов через различные порты. Когда все порты заняты (~65K на IP), новые соединения падают.

Решение по RFC 6598: использовать Carrier-Grade NAT (CGN) блок 100.64.0.0/10 для ISP. Это позволяет масштабировать:

import ipaddress

cgn_range = ipaddress.ip_network('100.64.0.0/10')

test_ip = ipaddress.ip_address('100.80.0.1')

if test_ip in cgn_range:

print("⚠️ Это CGN адрес, может быть shared между пользователями ISP")

Риск 2: Утечка приватных адресов через DNS

Проблема: если приватный адрес попадёт в публичный DNS, он заполнит кеши и создаст путаницу.

Защита:

  • Настроить nxdomain для приватных диапазонов в публичном DNS
  • Использовать split-horizon DNS: приватные адреса только для внутреннего DNS

dig @8.8.8.8 internal-server.example.com # Должен вернуть NXDOMAIN

Миграция к IPv6

Сценарий: постепенное внедрение IPv6 на существующей IPv4 инфраструктуре.

Этапы:

  1. Dual-stack (IPv4 + IPv6 одновременно)

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0

ip addr show

  1. Выделить IPv6 подсети (RFC 3177: рекомендуется /48 на организацию, /64 на сегмент)

- Сеть A: 2001:db8:1234:1::/64

- Сеть B: 2001:db8:1234:2::/64

- VPN link: 2001:db8:1234:ffff::/127

  1. 6to4-туннель (если ISP пока не поддерживает native IPv6)

Адрес: 2002:c0a8:0101::/48

Производительность: метрики, профилирование, узкие места

Метрика 1: утилизация адресного пространства

import ipaddress

network = ipaddress.ip_network('10.0.0.0/8')

total_hosts = 2 ** (32 - network.prefixlen) - 2

active_hosts = 1500000 # пример

utilization = (active_hosts / total_hosts) * 100

print(f"Утилизация: {utilization:.2f}%")

if utilization > 80:

print("⚠️ Требуется расширение адресного пространства!")

Инструменты диагностики

Windows:

ipconfig /all

nslookup example.com 8.8.8.8

pathping 8.8.8.8

route print

Linux/macOS:

ip addr show

ip route show

ping -c 4 8.8.8.8

traceroute 8.8.8.8

nmap -sn 192.168.1.0/24

whois 8.8.8.8

Типичная ошибка: неправильная маска подсети

from ipaddress import ip_address, ip_network

addr = ip_address('192.168.1.128')

subnet = ip_network('192.168.1.128/26', strict=False)

if addr in subnet:

print("✓ Адрес 192.168.1.128 в подсети", subnet)

Примеры кода и конфигов

Python: проверка IP в приватном диапазоне

import ipaddress

def is_private_ip(ip_string):

try:

ip = ipaddress.ip_address(ip_string)

return ip.is_private

except ValueError:

return None

print(is_private_ip('10.0.0.1')) # True

print(is_private_ip('192.168.1.1')) # True

print(is_private_ip('8.8.8.8')) # False

print(is_private_ip('127.0.0.1')) # True

print(is_private_ip('fe80::1')) # True

Python: расчёт CIDR из маски

def cidr_from_mask(subnet_mask):

mask = int(ipaddress.IPv4Address(subnet_mask))

return bin(mask).count('1')

print(cidr_from_mask('255.255.255.0')) # 24

print(cidr_from_mask('255.255.0.0')) # 16

print(cidr_from_mask('255.255.255.128'))# 25

cidr = 24

mask_int = (0xffffffff << (32 - cidr)) & 0xffffffff

mask_str = '.'.join(str((mask_int >> (8*i)) & 0xff) for i in [3,2,1,0])

print(mask_str) # 255.255.255.0

Bash: сканирование активных хостов в подсети

bash#!/bin/bash

SUBNET="192.168.1"

for i in {1..254}; do

ip="${SUBNET}.${i}"

(ping -W 1 -c 1 "$ip" > /dev/null 2>&1 && echo "$ip is UP") &

done

wait

Типичные ошибки и диагностика

-7

Чек-лист применения

  • Определить количество хостов на каждый сегмент (на сейчас и 5 лет вперёд)
  • Выбрать приватный диапазон
  • Спроектировать иерархию подсетей
  • Документировать каждый сегмент
  • Настроить ACL для bogon-фильтрации
  • Зарезервировать адреса для спецустройств
  • Готовить dual-stack IPv6
  • Тестировать в изоляции до продакшена
  • Мониторить утилизацию (оповещение при >85%)

Q&A: 7 главных вопросов

-8

Вывод

IP-адресация — основа любой сети: от домашнего Wi-Fi до облачной инфраструктуры.

Главное:

  • IPv4 исчерпана, но работает благодаря NAT и приватным диапазонам
  • Три приватных блока RFC 1918 — must-know
  • CIDR — современный стандарт
  • IPv6 идёт в рост, без dual-stack уже не обойтись
  • Основная защита сетей — фильтрация, firewall, ACL

Пользуйтесь шпаргалкой при проектировании сетей, настройке firewall и разработке приложений!

📺 Подпишись на T.E.X.H.O Windows & Linux

Если эта шпаргалка помогла — поделись ей с коллегой! Подписывайся на канал, где разбираем сложные темы в сетях, системной оптимизации и open-source инструментах. Каждую неделю — новое руководство, которое экономит время и деньги.

-9

#IPадреса #IPv4 #IPv6 #CIDR #подсеть #маскасети #RFC1918 #приватныеадреса #маршрутизация #NAT #firewall #ACL #dualstack #ULA #linklocal #DNS #VLSM #сабнеттинг #сетевойадминистратор #Linux #Windows #сетевыетехнологии #кибербезопасность #DevOps #облачныесети #ISP #сетевоеобучение #routing #vpn #opensource #облачныесервисы