Інструкція по налаштуванню RIPEdb для підключення до UA-IX

1. Для підключення до точки обміну трафіком UA-IX необхідно виконати умови договору:
-
Наявність власної автономної системи (далі - AS), зареєстрованої в RIPE і відповідним чином оформленої в базі даних RIPE (далі - RIPEdb).
- Наявність блоку адрес, пов'язаного з цією AS відповідними записами в базі даних RIPE.

2. Для перевірки записів в RIPEdb використовуйте ресурс https://apps.db.ripe.net/search/query.html або програму whois, яка доступна в дистрибутивах * nix сумісних ОС.

3. У RIPEdb зареєстрований провайдер має набір об'єктів (текстових записів), адміністратор мережі Учасника повинен мати доступ до своїх об'єктів для редагування, зазвичай після реєстрації автономної системи і блоку мереж, LIR видає пароль для об'єкта mnt-by :, за допомогою цього пароля можна редагувати свої записи, пароль від цього об'єкта передавати іншим особам не можна.

4. Типові налаштування об'єктів:
4.1. Об'єкт aut-num описує номер автономної системи Учасника та спосіб взаємодії з іншими автономними системами, об'єкт містить атрибути:
import - це поле описує що ПРИЙМАЄ ваша автономна система від іншої автономної системи наприклад:
«from (від кого) AS15645 (автономна система сусіда) action (дія) pref = 50 (пріоритет прийнятої маршрутної інформації 50); accept (дозволити) AS-UAIX (автономні системи в as-set: AS-UAIX), або з автономної системи точки обміну UA-IX приймаємо всі мережі учасників пріоритетом 50. Ще один типовий приклад клієнта Учасника: «from AS65400 action pref = 10; accept AS65400» означає - з автономної системи мого клієнта прийняти автономну систему мого клієнта з пріоритетом 10.

export: описує що ваша автономна система ВІДДАЄ в іншу автономну систему, цілком логічно що ми повинні віддавати свою AS65100 і своїх клієнтів (див. п4.2).
Описується аналогічно полю import.

Пріоритет pref може приймати значення від 0 до 65535, що менше значення пріоритету, тим більше бажаний маршрут! Зверніть, будь ласка, увагу: багато хто плутає атрибут pref і параметр BGP local-preference, атрибут pref є інверсним по відношенню до атрибуту local-pref (т.e. local-pref == 65535-pref).

Налаштуємо для прикладу взаємодію нашої AS65100, апстріма AS65000 і точки обміну UA-IX.
приклад 1:

aut-num: AS65100
as-name: NNN-AS
descr: TOV NNN
import: from AS65000 action pref = 100; accept ANY (від нашого вищого провайдера приймає всі маршрути c пріоритетом 100)
export: to AS65000 announce AS65100 (вищій провайдеру анонсуємо всі мережі в нашій автономній системі)

import: from AS15645 action pref = 50; accept AS-UAIX (приймаємо з точки обміну UA-IX мережі всіх учасників з пріоритетом 50)
export: to AS15645 announce AS65100

admin-c: NNN-RIPE
tech-c: NNN-RIPE
mnt-by: MNT-NNN
mnt-routes: MNT-NNN

Згідно прикладу вище ми від AS65000 приймаємо всі мережі інтернет, а з AS15645 ми приймаємо учасників точки обміну UAIX, параметр (об'єкт) AS-UAIX називається as-set (cм п.4.2).

4.2. Об'єкт as-set: описує групу автономних систем, назва може бути довільним, бажано починається з символів AS- [будь-яке слово на англ.], Наприклад AS-GOOGLE
Для прикладу мережу учасника називається NNN, учасник має aut-num: AS65100, учасник має канал в інтернет через провайдера AS65000, учасник має два клієнта з AS65400 і AS65500. Так як нам треба ще й маршрутизировать двох клієнтів, ми створюємо as-set: AS-NNN, в якому перераховуємо своїх клієнтів і свою автономну систему:

Приклад 2:
as-set: AS-NNN
descr: NNN client
members: AS65100 (вказуємо свій aut-num)
members: AS65400 (клієнт)
members: AS65500 (клієнт)
tech-c: NNN-RIPE
admin-c: NNN-RIPE
mnt-by: MNT-NNN

Часто в as-set додають вищестоящих провайдерів до якому підключений учасник, це є грубим порушенням і може привести до сумних наслідків при маршрутизації трафіку учасника. У as-set описуємо тільки тих, кого ми будемо «віддавати» в мережу інтернет.

Переробимо приклад 1, але будемо анонсувати не тільки себе а й своїх клієнтів за допомогою as-set: AS-NNN

приклад 3
aut-num: AS65100
as-name: NNN-AS
descr: TOV NNN

import: from AS65000 action pref = 100; accept ANY (від нашого вищого провайдера приймає всі маршрути c пріоритетом 100)
export: to AS65000 announce AS-NNN (вищій провайдеру анонсуємо всі мережі в нашій автономній системі і своїх клієнтів)
import: from AS15645 action pref = 50; accept AS-UAIX (приймаємо з точки обміну UA-IX мережі всіх учасників з пріоритетом 50)
export: to AS15645 announce AS-NNN (анонсуємо в точку обміну UA-IX мережі зі своєї автономної ситеми та мережі своїх клієнтів)

import: from AS65400 action pref = 10; accept AS65400 (маршрути від наших клієнтів завжди повинні бути самими бажаними)
export: to AS65400 announce ANY (свого клієнта анонсуємо всю свою маршрутну инофрмацию)
import: from AS65400 action pref = 10; accept AS65400
export: to AS65400 announce {0.0.0.0/0} (а цього клієнту анонсуємо маршрут за замовчуванням)

admin-c: NNN-RIPE
tech-c: NNN-RIPE
mnt-by: MNT-NNN
mnt-routes: MNT-NNN
 
Згідно цього прикладу ми в точку обміну UA-IX (AS15645) і вищестоящому провайдеру проанонсіруем мережі з автономних систем: AS65100, AS65400, AS65500.
Маршрути прийняті з AS15645 має більшу перевагу ніж маршрути прийняті від вищестоящого провайдера, маршрути прийняті від наших клієнтів найпереважніші тому вони підключені безпосередньо до нашої AS65100.
4.3 Автономна система учасника повинна мати об'єкти route, за допомогою цих об'єктів до вашої автономній системі прив'язуються мережі IPv4 і IPV6, якщо такої прив'язки немає, то у вас немає можливості включиться в точки обміну трафіком або вищим провайдерам.

приклад 4

route: 192.168.0.0/23
descr: Network 1
origin: AS65100
mnt-by: MNT-NNN
source: RIPE #Filtered

У цьому прикладі сказано що мережа 192.168.0.0/24 прив'язана до вашої автономній системі AS65100, часто його називають route object або об'єкт маршрутизації.

4.4 При реєстрації у вашого LIR об'єктів AS + PI, LIR зобов'язаний вам створити об'єкт inetnum

inetnum: 192.168.0.0 - 192.168.1.255
netname: NNN-NET
descr: TOV NNN
country: UA
org: ORG-NNN-RIPE
admin-c: NNN-RIPE
tech-c: NNN-RIPE
status: ASSIGNED PI
mnt-by: RIPE-NCC-END-MNT
mnt-by: NNN-IMC
mnt-lower: RIPE-NCC-END-MNT
mnt-routes: MNT-NNN
mnt-domains: MNT-NNN

5. Часто виникає питання - а як налаштовувати AS якщо учасник підключений до декількох точках обміну трафіком, або має паритетні канали з іншими провайдерами.
Наприклад ви підключені до точки обміну AS65888, у вас є пірінг з AS65450, модифікуємо приклад 3:

приклад 4

aut-num: AS65100
as-name: NNN-AS
descr: TOV NNN
remarks: -------- External ---------- (для зручності читання в RIPEdb можна додавати поля з довільним текстом)
import: from AS65000 action pref = 100; accept ANY
export: to AS65000 announce AS-NNN

remarks: -------- Internet Exchange ---
import: from AS15645 action pref = 50; accept AS-UAIX
export: to AS15645 announce AS-NNN
import: from AS65888 action pref = 70; accept AS-XXX-IX (точка обміну XXX-IX менш бажана ніж UAIX)
export: to AS65888 announce AS-NNN

remarks: -------- Paritet -----------
import: from AS65450 action pref = 30; accept AS65450 (пірінг, або обмін своїми мережами і своїх клієнтів з родинним провайдером)
export: to AS65450 announce AS-NNN

remarks: -------- Clients -----------
import: from AS65400 action pref = 10; accept AS65400 (маршрути від наших клієнтів завжди повинні бути самими бажаними)
export: to AS65400 announce ANY (свого клієнта анонсуємо всю свою маршрутну инофрмацию)
import: from AS65400 action pref = 10; accept AS65400
export: to AS65400 announce {0.0.0.0/0} (а цього клієнту анонсуємо маршрут за замовчуванням)

admin-c: NNN-RIPE
tech-c: NNN-RIPE
mnt-by: MNT-NNN
mnt-routes: MNT-NNN

У цьому прикладі для AS65100 учасника, бажані маршрути в порядку убування будуть: клієнти, паритети, українські точки обміну трафіком, всі інші мережі інтернет.