IP-адрес
Числовой адрес устройства в сети вида 192.168.1.1, по которому пакеты находят нужный узел.
Что такое IP-адрес
IP-адрес («айпи») — числовой идентификатор устройства в сети, по которому маршрутизаторы понимают, куда доставить пакет. IP расшифровывается как Internet Protocol — протокол, определяющий формат адреса и правила доставки. Адрес есть у каждого узла: у ноутбука, у роутера, у сервера, у контейнера.
Аналогия — почтовый адрес: чтобы письмо дошло, отправитель указывает получателя, а промежуточные узлы решают, в какую сторону его передать дальше. Домен вроде example.com — лишь удобное имя, которое DNS переводит в такой адрес; сеть работает только с числами.
Адрес принадлежит не устройству, а сетевому интерфейсу. На одной машине их может быть несколько: физический адаптер, lo с адресом 127.0.0.1, мосты Docker.
Как устроен адрес
IPv4-адрес — 32 бита, записанные как четыре числа от 0 до 255 через точку. Внутри он делится на две части, и границу задаёт маска подсети:
192.168. 1. 10 / 24
└── сеть ────┘└хост┘
Всего IPv4 даёт около 4,3 млрд адресов — их давно не хватает, поэтому существует IPv6 со 128-битными адресами.
Белый и серый IP
Это главное практическое деление, и путаница здесь стоит дороже всего.
| Белый (публичный) | Серый (приватный) | |
|---|---|---|
| Виден из интернета | да | нет |
| Маршрутизируется глобально | да | нет |
| Диапазоны | всё, кроме приватных | 10/8, 172.16/12, 192.168/16 |
| Уникальность | глобальная | только внутри вашей сети |
| Входящие соединения | работают | только через NAT |
| Стоимость у хостера | платная опция | бесплатно |
Белый IP — обязательное условие, если на адрес должны приходить извне: сайт, почтовый сервер, VPN-эндпоинт, игровой сервер. Серый адрес живёт за NAT: наружу через него ходить можно, принимать входящие — нет.
Проверить, какой у вас адрес, проще всего сравнив локальный и внешний:
$ ip -4 addr show eth0 | grep inet
inet 10.0.0.5/24 brd 10.0.0.255 scope global eth0
$ curl -s ifconfig.me
203.0.113.7
Адреса разные — значит, вы за NAT. Это норма для облачного инстанса: платформа навешивает публичный адрес снаружи, а гостевая ОС о нём не знает.
Шлюз
Шлюз (gateway, «шлюз IP») — адрес узла, которому машина отдаёт пакеты для всех сетей, кроме своей. Хост сравнивает адрес назначения со своей подсетью: попал внутрь — шлёт напрямую, не попал — отдаёт шлюзу и дальше не думает.
$ ip route
default via 10.0.0.1 dev eth0 ← шлюз по умолчанию
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.5
Строка default via — тот самый шлюз. Симптом неверно указанного шлюза узнаваем: соседи в локальной сети пингуются, а интернета нет.
Статический и динамический
Динамический адрес выдаёт DHCP, и он может смениться. Статический прописан вручную или закреплён резервацией.
Для сервера адрес должен быть постоянным: на него завязаны A-записи DNS, правила файрвола и белые списки у партнёров. В облаке для этого существует отдельная сущность — плавающий, или эластичный, адрес: белый IP выделяется вашему аккаунту и переносится между инстансами. Сервер можно пересоздать, а адрес и DNS-записи останутся прежними.
Полезно помнить и про репутацию адреса: у б/у IP может быть история в спам-листах — если планируете отправлять почту, проверяйте адрес по чёрным спискам до запуска.
Связанные термины
- IPv4 и IPv6 — две версии адресации
- Маска подсети и CIDR — делит адрес на сеть и хост
- NAT — почему серый адрес выходит в интернет
- DNS — превращает домен в IP-адрес
- DHCP — раздаёт адреса автоматически
- Адрес сервера — IP вместе с портом и именем
Готовы запустить GPU-задачу?
Запустить GPU-сервер