Как создавать объекты в базе данных RIPE: пошаговая инструкция

Share
Как создавать объекты в базе данных RIPE: пошаговая инструкция

Если вы арендуете подсеть, получаете блок IP-адресов или собственную автономную систему (AS), рано или поздно вы столкнётесь с базой данных RIPE. Хостинг-провайдер может попросить вас «создать объект в RIPE» — например, чтобы указать его в качестве контакта при выдаче подсети. В этой статье разберём, что такое база RIPE, какие объекты в ней бывают и как создать свой первый объект за несколько минут.

Что такое RIPE NCC и база данных RIPE

RIPE NCC (Réseaux IP Européens Network Coordination Centre) — один из пяти региональных интернет-регистраторов (RIR). Он отвечает за распределение интернет-ресурсов — IP-адресов и номеров автономных систем — в Европе, на Ближнем Востоке и в Центральной Азии.

База данных RIPE (RIPE Database) — публичный реестр, который выполняет четыре основные функции:

  1. Хранение контактной информации — кто администрирует конкретные блоки IP-адресов и автономные системы.
  2. Учёт интернет-ресурсов — какие AS и IP-блоки кому выделены.
  3. Публикация маршрутных политик — база выполняет роль Internet Routing Registry (IRR): операторы связи описывают в ней, какие префиксы анонсируют их автономные системы. На основе этих данных автоматически строятся BGP-фильтры.
  4. Обратный DNS (reverse DNS) — делегирование обратных зон для выделенных блоков адресов.

Важно понимать: база RIPE публична. Любой человек может посмотреть содержимое объектов через сервис whois. Поэтому корректные и актуальные данные в ней — это и требование регистратора, и вопрос репутации владельца ресурсов.

Что такое объект RIPE

Объект — это запись в базе данных, описывающая один ресурс или сущность: человека, организацию, блок IP-адресов, автономную систему, маршрут. Каждый объект состоит из набора атрибутов вида «ключ: значение»:

person:         Ivan Petrov
address:        Amsterdam, Netherlands
phone:          +31 20 000 0000
nic-hdl:        IP1234-RIPE
mnt-by:         EXAMPLE-MNT
source:         RIPE

Атрибуты бывают трёх видов:

  • обязательные — без них объект не будет создан;
  • опциональные — можно добавить при необходимости (например, remarks: или abuse-mailbox:);
  • множественные — могут повторяться несколько раз (например, address: или phone:).

Структура объектов описывается языком RPSL (Routing Policy Specification Language). Посмотреть шаблон любого типа объекта можно командой:

whois -t person

Основные типы объектов

Все объекты базы RIPE можно условно разделить на пять групп.

Контактная информация

  • person — данные конкретного человека, ответственного за ресурс. На объект person ссылаются атрибуты admin-c: (административный контакт) и tech-c: (технический контакт) других объектов. У каждого person есть уникальный идентификатор — NIC handle (например, IP1234-RIPE).
  • role — контакт группы людей, а не одного человека: например, дежурной смены NOC или отдела abuse. В объекте role удобно указывать abuse-mailbox: — адрес для жалоб на злоупотребления.
  • organisation — юридические данные организации, владеющей ресурсами. Объект связывает воедино все ресурсы компании: подсети, автономные системы, контакты.

Интернет-ресурсы

  • inetnum — описывает блок IPv4-адресов: диапазон, название сети, страну, контакты и статус. Когда RIPE NCC выделяет блок LIR-у (локальному интернет-регистратору, обычно это провайдер), объект получает статус ALLOCATED PA. Когда провайдер выдаёт часть блока клиенту, для неё создаётся объект со статусом ASSIGNED PA.
  • inet6num — то же самое для IPv6.
  • aut-num — описывает автономную систему: номер (например, AS64500), принадлежность, контакты. Здесь же через атрибуты import: и export: публикуется маршрутная политика — от кого AS принимает маршруты и кому что анонсирует.

Маршрутизация

  • route / route6 — связывает префикс с автономной системой, которая имеет право его анонсировать. Эти объекты критически важны: по ним операторы автоматически генерируют BGP-фильтры (например, утилитой bgpq3/bgpq4). Если для вашего префикса нет объекта route, многие сети просто не примут его анонс.
  • as-set — группирует несколько автономных систем в один объект через атрибут members:. Удобно для провайдеров с клиентскими AS: аплинку достаточно один раз прописать ваш as-set, и при подключении нового клиента вы просто добавляете его AS в members, не прося аплинка менять фильтры.

Обратный DNS

  • domain — указывает, какие DNS-серверы авторитетны для обратной зоны вашего блока (in-addr.arpa / ip6.arpa). Для IPv4 объекты domain создаются для зон, кратных /16 и /24.

Безопасность

  • mntner (maintainer) — «замок», защищающий объекты от несанкционированного изменения. Каждый объект базы содержит атрибут mnt-by: со ссылкой на maintainer, и изменить объект может только тот, кто владеет одним из ключей этого maintainer. Ключи бывают трёх типов: SSO (учётная запись RIPE NCC Access), MD5-хэш пароля и PGP-ключ. Рекомендуемый вариант — SSO: доступ привязывается к вашему аккаунту, и пароли нигде хранить не нужно.

Пошаговая инструкция: создаём первый объект

Разберём типовой сценарий: провайдер выдаёт вам подсеть и просит создать объект, который будет указан в качестве контакта. Для этого нужна связка из объектов role (или person) и mntner.

Шаг 1. Регистрация в RIPE NCC Access

RIPE NCC Access — единая система авторизации для всех сервисов RIPE NCC. Учётная запись бесплатна и не требует членства в RIPE NCC.

  1. Перейдите на страницу регистрации: https://access.ripe.net/registration
  2. Заполните форму: имя, фамилия, e-mail, пароль с подтверждением — и нажмите Sign up.
  3. На указанную почту придёт письмо со ссылкой подтверждения — перейдите по ней.
  4. Авторизуйтесь на сайте с созданными учётными данными.

Шаг 2. Создание пары role + maintainer

Здесь есть классическая проблема «курицы и яйца»: любой объект должен быть защищён maintainer-ом, но сам maintainer — тоже объект, которому нужен maintainer. Поэтому для новых пользователей RIPE сделал отдельную процедуру, создающую сразу пару объектов — role и mntner, ссылающихся друг на друга.

  1. Откройте раздел создания объектов: https://apps.db.ripe.net/db-web-ui/webupdates/select (в интерфейсе RIPE Database это пункт меню Create an Object).
  2. В поле Object type выберите role and maintainer pair и нажмите Create.
  3. Заполните форму — в ней всего четыре поля:NIC handle вводить не нужно — система присвоит его автоматически.
    • mntner — имя вашего maintainer. Общепринятый формат: COMPANY-MNT или NAME-MNT (например, KOARA-EXAMPLE-MNT);
    • role — название роли/контакта (например, Example LLC NOC). Если вместо группового контакта нужен персональный, нажмите ссылку Switch to person рядом с этим полем — тогда вместо role будет создан объект person;
    • address — почтовый адрес;
    • e-mail — контактный e-mail.
  4. Нажмите Submit (отправкой формы вы соглашаетесь с RIPE Database Terms and Conditions).

Оба объекта создаются одновременно (частичного успеха не бывает — либо создаются оба, либо ни одного). После создания вы увидите присвоенный NIC handle роли (вида EX1234-RIPE) и имя maintainer. Ссылку на созданный объект или его NIC handle отправьте вашему провайдеру — он укажет его в объекте inetnum вашей подсети.

Шаг 3 (опционально). Создание объекта person

Если нужен персональный контакт, а не групповой:

  1. На той же странице Webupdates выберите тип объекта person и нажмите Create.
  2. Заполните обязательные атрибуты:
person:         Ivan Petrov
address:        Example street 1, Amsterdam, Netherlands
phone:          +31 20 000 0000
nic-hdl:        AUTO-1
mnt-by:         KOARA-EXAMPLE-MNT
source:         RIPE
  1. Нажмите Submit. В nic-hdl: можно указать AUTO-1 (система назначит handle автоматически) или свой вариант. Учтите: NIC handle нельзя переиспользовать — даже после удаления объекта его идентификатор навсегда остаётся занятым.

Шаг 4 (опционально). Создание объекта organisation

Объект organisation понадобится, если вы получаете независимые ресурсы (PI-адреса, собственную AS) или хотите связать несколько ресурсов с юридическим лицом:

organisation:   AUTO-1
org-name:       Example LLC
org-type:       OTHER
address:        Example street 1, Amsterdam, Netherlands
e-mail:         info@example.com
abuse-c:        EX1234-RIPE
mnt-ref:        KOARA-EXAMPLE-MNT
mnt-by:         KOARA-EXAMPLE-MNT
source:         RIPE

Идентификатор organisation всегда генерируется автоматически (AUTO-1), выбрать свой нельзя. org-type: для обычных компаний — OTHER (тип LIR присваивается только членам RIPE NCC). Атрибут abuse-c: должен ссылаться на role-объект с заполненным abuse-mailbox:.

Способы работы с базой RIPE

Кроме веб-интерфейса, есть ещё несколько способов создавать и изменять объекты:

  • Webupdates — веб-форма (https://apps.db.ripe.net), самый наглядный способ. Есть два режима: field mode (форма показывает только обязательные поля, остальные добавляются по кнопке) и text area mode (объект редактируется как текст, обязательные атрибуты выделены).
  • Syncupdates — отправка объектов в текстовом виде через HTTPS-запрос. Подходит для массовых операций и скриптов.
  • RESTful API — полноценный программный доступ для автоматизации: например, скрипт может забрать свободную подсеть из вашей IPAM-системы и сразу создать для неё объект inetnum в RIPE.
  • E-mail — отправка объектов на auto-dbm@ripe.net с подписью PGP. Исторический способ, сейчас используется редко.

Для экспериментов существует TEST Database — песочница с тем же интерфейсом, где можно тренироваться без риска сломать боевые данные.

Полезные whois-команды

Проверить результат и исследовать базу удобно консольной утилитой whois:

# Шаблон объекта с описанием атрибутов
whois -h whois.ripe.net -t person

# Ваш объект по NIC handle
whois -h whois.ripe.net EX1234-RIPE

# Все объекты, защищённые вашим maintainer-ом
whois -h whois.ripe.net -i mnt-by KOARA-EXAMPLE-MNT

# Все route-объекты автономной системы
whois -h whois.ripe.net -T route -i origin AS64500

# На какие подсети разбит блок
whois -h whois.ripe.net -M 192.0.2.0/24

# Частью какого более крупного блока является подсеть
whois -h whois.ripe.net -L 192.0.2.0/24

Частые ошибки

  • Утерян доступ к maintainer. Если maintainer защищён только MD5-паролем и пароль потерян, восстановление доступа — долгая процедура через поддержку RIPE NCC. Привязывайте maintainer к SSO-аккаунту.
  • Реальные персональные данные в публичной базе. Всё содержимое объектов видно любому через whois. Указывайте рабочие контакты организации, а не личный мобильный телефон.
  • Забытый объект route. После получения блока и AS многие забывают создать route-объект — и анонс префикса отфильтровывается у большинства крупных операторов.
  • Неактуальные контакты. По адресам из abuse-mailbox: и e-mail: приходят жалобы и уведомления. Если почта не читается, проблемы с вашими IP вы узнаете последним.

Что дальше

Если хотите разобраться глубже, RIPE NCC предлагает бесплатные интерактивные курсы на https://academy.ripe.net, а полная документация по базе доступна на https://docs.db.ripe.net.

Если вы арендуете подсеть у нас и вам нужно создать объект для её оформления — создайте пару role + maintainer по инструкции выше и пришлите ссылку на объект в тикете. Остальное мы сделаем сами.

Read more

Как работают сервисы IP-геолокации и почему ваш сервер «переезжает» в другую страну

Как работают сервисы IP-геолокации и почему ваш сервер «переезжает» в другую страну

IP-адрес сам по себе не содержит информации о географии — её добавляют внешние базы, которые часто расходятся между собой. В статье разбираем, откуда берётся IP-геолокация, почему сервер может «оказаться» в другой стране и какие шаги действительно помогают это исправить.

By Koara Team