Раз вы добрались до конфигурации протокола BGP значит “общения” с базой данных (далее просто “БД“) RIPE вам не избежать.
Многие спрашивают: “А что такое as-set ?” или “Как узнать какой AS принадлежит маршрут ?”
В этой статье я попытаюсь рассказать о том, какие объекты в этой БД вам необходимы для запуска и как они используются.
Итак, вы прошли процесс получения статуса LIR, собственного блока IP-адресов и номера автономной системы (ASNum).
Справка:
Локальный Интернет-реестр (LIR – Local Internet Registry) – термин, используемый для описания членов RIPE NCC.
Их называют локальными Интернет-реестрами (LIR) потому что они несут ответственность за распределение адресного пространства и регистрацию адресного пространства на локальном уровне.Локальные Интернет-реестры также утверждают общеобязательные политики и процедуры на локальном уровне. Организации, которые становятся локальными Интернет-реестрами – это в основном Интернет-провайдеры (ISP), которые выделяют и назначают адресное пространство своим клиентам, телекоммуникационные организации и коммерческие предприятия наряду с академическими учреждениями. Академические учреждения – это организации, которым требуются большие блоки адресного пространства, которые не могут быть получены у вышестоящего провайдера.
Что же делать дальше ? Бесконечное кол-во документации на сайте RIPE и молчащий google… а разбираться нужно. Попробую своими словами описать, то как разбирался/делал я сам.
ALLOCATION vs ASSIGNMENT
Для начала разберем два понятия:
- ALLOCATION - выделенное провайдеру адресное пространство. Оно закреплено за ним в БД
- ASSIGNMENT - текущее, одобренное RIPE, используемое провайдером адресное пространство так же описанное в БД
С первым вроде все понятно, RIPE выделил вам какой-то блок для дальнейшего использования, а вот со вторым не все так просто.
После того как RIPE сделал ALLOCATION какого либо блока вам необходимо согласовать с ними сколько и под какие нужды вы будете использовать адресное пространство. Вам придется заполнять форму в которой расписывать ADDRESS PLAN, что бы перевести часть адресного пространства из статуса ALLOCATED в статус ASSIGNED. Статус ASSIGNED будет означать, что RIPE одобрил вам использование адресного пространства под описанные вами нужды.
Советы по заполнению ADDRESS PLAN:
- не указывайте сети под конечного пользователя более чем /30, т.к. иначе RIPE напишет вам, сеть более чем /30 считается как End User`s infrastructure и заставит ваших пользователей так же заполнять форму на выделение адресного пространства.
- можно просить как минимум /24 под P2P (сети /30), в которые будут входить ваши каналы
- так же две сети /24 можно попросить под активное оборудование: маршрутизаторы, сервера, voip железки и прочее, главное не переборщите.
- RIPE очень любит когда пишут про NAT (адресное пространство ipv4 стремительно заканчивается), не разочаровывайте их, просите, опять таки не менее /24, под NAT сервера.
- В кач-ве оборудования пишите все: сервера, циски (даже Catalyst), VoIP шлюзы, железные firewall`ы вообще все что можно :), все для чего можно доказать необходимость внешнего адреса (если спросят ;))
Вы заполнили ADDRESS PLAN и отправили его в RIPE… ждем ответа… варианта два:
- их удовлетворит ваш запрос и они выставят статус ASSIGNED PA на сети которые они одобрили
- скажут что именно их не устраивает и вам придется бодаться с ними далее.
Зачем все это ? Можете ли вы использовать адресное пространство в статусе ALLOCATED ?
Использовать то вы его сможете, но если у вас кончится адресное пространство и вы заходите получить ещё блок адресов, то RIPE откажет вам, сославшись на то, что вы в текущий момент не используете свой первый ALLOCATED блок адресов. Посмотреть как RIPE видит текущее ваше использование выделенного вам адресного пространства можно с помощью утилиты Web Asused, указав свой Regid (например: ru.myisp) вам на email (указанный в lirportal) придет письмо содержащие отчет об использовании вами вашего адресного пространства.
Объекты в БД
БД состоит из многих объектов, мы рассмотрим некоторые из них. Для примера возьмем хорошего магистрального провайдера: Транстелеком.
Объект person
Это описание человека. Пример:
person: Yaroslav V Kapsalov
address: JSC TransTeleCom
address: 7, Dolgorukovskaya st.
address: 127006 Moscow Russia
e-mail: y.kapsalov@transtk.ru
phone: +7 495 7846670
nic-hdl: YARK-RIPE
source: RIPE # Filtered
Объект person используется для указание административных (admin-c) и технических (tech-c) контактов где необходимо указать NIC-HDL, это уникальный инеднтификатор присваемый объекту person в БД. В данном примере nic-hdl это YARK-RIPE.
Объект role Похож на объект “person“, но предназначен для описания не только контактного лица, но и роли, которое оно выполняет. Кроме того, объект “role” позволяет объединить несколько персон, выполняющих общую функцию (например отдел тех. поддержки, системных администраторов и т.д.). Для задания административных и технических контактов рекомендуется по возможности применять именно объект “role“. Пример:
role: TTC NOC address: Company TransTeleCom Network Operation Center address: 7, Dolgorukovskaya st. address: 127006 Moscow Russia remarks: phone: +7 095 7846677 phone: +7 495 7846677 remarks: phone: +7 095 7846670 phone: +7 495 7846670 remarks: fax-no: +7 095 7846671 fax-no: +7 495 7846671 ............[skiped].................... mnt-by: TRANSTELECOM-MNT source: RIPE # Filtered ............[skiped]....................
Одноименные поля, заполняются так же, как и в объекте “person“. Обратите внимание, что в отличие от объекта “person” поле “e-mail” здесь является обязательным.
В поле “role” указывается название службы, к которой относится объект.
В полях “admin-c” и “tech-c” указываются nic-handle персон, отвечающих за административные и за технические вопросы. Таких полей может быть несколько.
Объект inetnum
Этот объект описывает ASSIGNMENT блок (блоки, подсети) адресов. Пример:
inetnum: 217.150.32.0 - 217.150.32.255
netname: TTK-OFFICE-NET
descr: Transtelecom Office Network
descr: Moscow, Russia
country: RU
admin-c: KTTK-RIPE
tech-c: KTTK-RIPE
status: ASSIGNED PA
remarks: INFRA-AW
mnt-by: TRANSTELECOM-MNT
source: RIPE # Filtered
Статус (status)- атрибут объектов inetnum , которые содержат информацию о выделении и назначении пространства IP-адресов (более подробная информация находится в документе ripe-387). В следующей таблицы приведена расшифровка значений статусов блоков IP-адресов.
Этот объект указывает на то, какой автономной системе принадлежит сеть. Пример:
route: 217.150.32.0/19
descr: RU-TRANS-TELECOM-20010213
origin: AS20485
mnt-by: TRANSTELECOM-MNT
source: RIPE # Filtered
Из этого следует, что сеть 217.150.32.0/19 оглашается автономной системой с номером 20485. Ключом route объекта являются одновременно два поля: route и origin . В поле route указывается диапазон адресов, за маршрутизацию которых в Интернет будет отвечать автономная система, номер которой указан в поле origin .
Объект aut-num
Этот объект описывает автономную систему. Пример:
aut-num: AS20485
as-name: TRANSTELECOM
descr: JSC Company TransTeleCom
descr: Moscow, Russia
............[skiped]....................
В нем описывают не только кому принадлежит данный номер, административные и технические контакты,
но и описание пиров (peer) данной автономной системы и комьюнити (communities) которые можно
использовать.
Пиры:
…………[skiped]………………..
import: from AS174 action pref=120; accept AS174:AS-COGENT;
import: from AS786 action pref=120; accept AS-JANETPLUS;
import: from AS1290 action pref=120; accept AS-PSINETUK;
import: from AS2110 action pref=120; accept AS-IEUNET;
import: from AS2119 action pref=120; accept AS-TELENOR;
import: from AS2529 action pref=120; accept AS-DEMON;
…………[skiped]………………..
Показывает импорт маршрутов для автономной системы Транстелекома (AS20485), префиксы каких
автономных систем принимаются от указанных пиров. Может быть указано как и одиночная AS так и as-set.
…………[skiped]………………..
export: to AS174 announce AS-TTK;
export: to AS786 announce AS-TTK;
export: to AS1290 announce AS-TTK;
export: to AS2110 announce AS-TTK;
export: to AS2119 announce AS-TTK;
export: to AS2529 announce AS-TTK;
…………[skiped]………………..
Показывает какие маршруты оглашаются автономной системой Транстелекома (AS20485) своим пирам.
Так же может быть указана одна AS или as-set (в данном примере используется именно as-set)
Комъюнити:
…………[skiped]………………..
remarks: +==============================================================+
remarks: | BGP COMMUNITIES |
remarks: +—————————————————————
remarks: | Communities for prefix classification |
remarks: +—————————————————————
remarks: | All inbound prefixes are marked with BGP communities |
remarks: | which describe their source and geographical region. |
remarks: | The format for the second component of community |
remarks: | (number after 20485:) is set at five digits. |
remarks: | This format is 20485:SNNRR where the fields are: |
remarks: | |
remarks: | S – source of the prefix: |
remarks: | |
remarks: | 1 – Customer |
remarks: | 2 – Upstream |
remarks: | 3 – International peer |
remarks: | 4 – Russian peer |
remarks: | |
remarks: | NN – Upstream, peer or customer number: |
remarks: | |
remarks: | Customers: |
remarks: | 11 – BGP with Internal Internet Access |
remarks: | 13 – BGP with Partial Internet Access |
remarks: | 17 – BGP with Global Internet Access |
remarks: | Static routes from CTTC allocations: 20485:61RR|
remarks: | Upstreams: |
remarks: | 01 – Cable&Wireless (AS1273) |
remarks: | 02 – Telia (AS1299) |
remarks: | 03 – NTT (AS2914) |
remarks: | 05 – PCCW (AS3491) |
remarks: | 07 – UUNET (AS702) |
remarks: | International peers: |
remarks: | 01 – SONG (AS3246) |
remarks: | 03 – GOOGLE (AS15169) |
remarks: | 04 – LINX |
remarks: | 05 – RETN (AS9002, International peers) |
…………[skiped]………………..
Описывает как используются/использовать комъюнити с данной автономной системой.
Комъюнити может выставляться на все маршруты или только на некоторые. Комъюнити состоит из
ASNUM:COMMNUM – номер автономной системы родителя данного комъюнити : 20485:20100
По комъюнити можно понять откуда пришел маршрут и использовать их в своих фильтрах (route-map). Так же с их помощью можно “просить” автономную систему соседа сделать что либо с оглашаемыми вашей AS маршрутами (префиксами).
…………[skiped]………………..
remarks: +————————————————————–+
remarks: | Communities for prefix control |
remarks: +————————————————————–+
remarks: | !!!ATENTION!!! |
remarks: | The using of this communities may cause connectivity |
remarks: | problems and you must clearly understand what you |
remarks: | are doing. TransTeleCom does not bear any responsibility |
remarks: | if there will be such troubles. |
remarks: +————————————————————–+
remarks: | There are two predetermined eBGP session types which |
remarks: | customers may use: |
remarks: | 1 – Global Internet Access. CTTC announce |
remarks: | customer’s prefixes to all customers, |
remarks: | upstreams and peers. |
remarks: | BGP communities are available. |
remarks: | |
remarks: | 2 – Access to customers and Russian peers. |
…………[skiped]………………..
remarks: | – To prepand or deny prefix use 20485:5DNNA, where: |
remarks: | |
remarks: | D – destination of the prepend or deny action: |
remarks: | 2 – Upstreams |
remarks: | 3 – International peers |
remarks: | 4 – Russian peers |
remarks: | 9 – Upstreams and Peers |
…………[skiped]………………..
remarks: | A – action: |
remarks: | |
remarks: | 0 – don’t announce prefix |
remarks: | 1 – announce with one prepend |
remarks: | 2 – announce with two times prepend |
remarks: | 3 – announce with three times prepend |
…………[skiped]………………..
Составив комьюнити, исходя из описания, и, огласив его вместе с исходящим от вас маршрутом(ами), автономная система пира (в данном примере AS20485) выполнит те или иные действия: выполнит prepend (препенд – когда в as-path подставляется N раз ваш номер AS, что увеличивает as-path и соответственно ухудшает маршрут) или вовсе “запретит” (не будет анонсировать своим соседям) этот маршрут (префикс).
Это может позволит вам балансировать входящий трафик на ваших внешних каналах.
Объект as-set
Этот объект описывает (включает в себя) несколько автономных систем или других as-set.
Данный объект используется для настройки входящих BGP фильтров, используются или префиксы или as-path. Пример:
as-set: AS-TTK
descr: Customers with TransTeleCom Global Access
members: AS20485
members: AS-CTTC
members: AS-KTTK
members: AS-SETTC
members: AS-SIBTTK
members: AS-STTK
members: AS-SUTTK
members: AS-TTKNN
members: AS-TTKNN-IZHEVSK
members: AS-UMN
members: AS-UMN-TMN
members: AS-VTT
members: AS-ZSTTK-SET
members: AS33989
............[skiped].................... mnt-by: TRANSTELECOM-MNT source: RIPE # Filtered
Внутри объекта as-set member`ом может быть как и одна AS (например AS33989) так и другие as-set`ы (например AS-CTTC). Воспользовавшись утилитой на нашем сайте вы сможете построить фильтры по as-set (внимание ! Объект as-set должен существовать в БД RIPE).
В данном примере имя as-set`а – AS-TTK.
Объект domain
Этот объект отвечает за DNS сервера. Благодаря ему можно указать DNS сервера отвечающие за обратный резолв (PTR записи) для вашего блока адресов. Пример:
domain: 32.150.217.in-addr.arpa
descr: Reverse delegation for TRANS-TELECOM-NET
remarks: INFRA AW
admin-c: KTTK-RIPE
tech-c: KTTK-RIPE
zone-c: KTTK-RIPE
nserver: dns-prim.transtk.ru
nserver: dns-sec.transtk.ru
nserver: ns.transtelecom.net
nserver: ns1.transtelecom.net
mnt-by: TRANSTELECOM-MNT
source: RIPE # Filtered
Это необходимо если вы хотите, чтобы на команду nslookup ВАШ-IP-АДРЕС, вы и остальной мир, получали имя.
Пример: nslookup 217.150.32.1
1.32.150.217.in-addr.arpa name = ttk-eth1.transtk.ru.
Объект mntner
Произносится как maintainer.
Этот объект необходим для защиты объектов в БД, основным признаком которого является схема аутентификации. При использовании ссылки на mntner в каком-либо объекте БД (включая сам mntner) объект считается защищенным от несанкционированного изменения/удаления, при этом степень защищенности определяется схемой аутентификации. Им как бы подписывают другие объекты, как сертификатом, подтверждая подлинность данных. В отличие от других объектов, объект mntner имеет пароль и для того, чтобы изменить другие объекты, в которых есть ссылка на mntner (при их создании/редктировании было добавлено поле “mnt-by“), вам необходимо знать его. Кем “подписан” можно видеть по полю mnt-by.
mntner: TRANSTELECOM-MNT
descr: JSC TransTeleCom Maintainer
admin-c: KTTK-RIPE
tech-c: KTTK-RIPE
auth: MD5-PW $1$dkAwA6S5$tP8KkASb5xG7atyTYxpDo/
mnt-by: TRANSTELECOM-MNT
referral-by: RIPE-DBM-MNT
source: RIPE # Filtered
Строка auth и содержит зашифрованный пароль. Пароль криптуется как и в ОС FreeBSD (/etc/master.passwd), поэтому при создании объекта mntner свой пароль можно скопировать из файла /etc/master.passwd лиюо воспользоваться утилитой Crypted password generation на сайте RIPE.
Обязательно защищайте свои объекты с помощью mntner (поле “mnt-by“).
Надеюсь, что хоть немного стало понятней, т.к. по себе знаю, что с нуля врубаться в это дело сложновато.
Так что дальше ?
Если у вас уже есть номер атономной системы и свой блок адресов, то пора внести в БД недостающие части. Вносить изменения в можно двумя способами:
- отправить письмо с полным описанием объекта на email auto-dbm@ripe.net. В ответ вам придет письмо или “SUCCESS: changes” или “FAILED: changes” с описанием ошибок которые вы допустили.
- воспользоваться online утилитой
На вашем месте я бы сначала пользовался 2-ым способом, т.к. там есть подсказки при создании объектов.
Сначала создадим объект person. Заходим на , в разделе “Create a new object” выбираем объект person и жмем “Add object”. Заполняем все необходимые поля и жмем “Submit update” и читаем создался ли объект или проишошла какая либо ошибка. Если какие либо поля вызывают сомнения то жмем “?” и читаем описание-подсказку. Поле “nic-hdl” можно выставить в AUTO-1, тогда БД сама сгенерит имя для этого объекта.
Теперь создадим mntner. Опять идем в “ADD” на и выбираем объект mntner.
В поле “mntner:” пишем MNT-YOUR-PROVIDER-NAME или YOUR-PROVIDER-NAME-MNT.
В поле “admin-c:” пишем nic-hdl (которые мы получили после создания объекта person.) – это будет использоваться для административных контактов.
В поле “auth:” пишем MD5-PW ВАШ-ПАРОЛЬ-В-MD5
В поле “referral-by:” пишем RIPE-DBM-MNT
После создания объекта mntner можно вернуться к объекту person, но уже редактируя, т.е. раздел “Modify or delete an existing object” – вводим свой nic-hdl. В радактировании добавляем поле “mnt-by” (воспользовавшись формой “Add New Field” внизу страницы), в нем указываем имя которое мы писали создавая объект mntner, например MNT-YOUR-PROVIDER-NAME, но теперь необходимо добавить поле “password” в котором ввести некриптованый пароль, дабы подтвердить владение объектом mntner. “Подписав” объект person своим объектом mntner вы избегаете того, что кто либо изменит ваш объект person без вашего ведома, т.к. теперь для любого изменения этого обекта будет требоваться пароль mntner`а.
Далее необходимо создать объект inetnum.
В поле “inetnum:” вписываем сеть которую мы согласовали с RIPE когда писали Address Plan. Например: 217.150.32.0 – 217.150.32.255
В поле “netname:” вписываем название для своей сети так же указанную в Address Plan.
В поле “status:” пишем ASSIGNED PA
Что писать в поле “mnt-by:” вы уже знаете..
Все остальные объекты создаются/редактируются по тому же принципу.
Создайте объекты route, domain, as-set.
В объекте domain добавте столько полей “nserver:” сколько вам необходимо. В них нужно указать DNS имена ваших DNS серверов которые будут отвечать за reverse delegation (обратный просмотр(резолв)) ваших адресов. В “zone-c:” указываем nic-hdl человека который в вашей организации будет отвечать за зоны обраного просмотра.
В объекте as-set добавте поле “members:”. Если ваша AS пока не транзитная, то напишите в нем ASНОМЕР_ВАШЕЙ_AS, поле “as-set:” является именем вашего будущего as-set`а. Обычно имя выглядит как AS-PROVIDER_NAME, например AS-TTK.
Создать его нужно для того, что если вас спросят “По какому объекту строить фильтры ?”, то вам необходимо говорить что это as-set и его имя. Это для Вашего же удобства.
Важно: если вы отредактировали свой as-set (добавили/удалили что-то), то вам необходимо сообщить об этом вашим peer`ам (соседям), т.к. не у всех есть автоматический апдейт фильтров.
Отредактируйте (если это необходимо) свой объект aut-num например добавив поле(я) “remarks:” или “descr:” с более подробным описанием своей сети или юр.лица которому она принадлежит, а так же, возможно, обновив свой “import:” или “export:” лист.
Таким образом мы сделали все, что необходимо для запуска своей AS с собственным блоком адресов.
Помним, что полное описание полей объекта можно получить выполнив в БД с ключем -v и именем объекта который нас интересует: пример.
Поля, отмеченные как [mandatory] являются обязательными для заполнения, должны обязательно присутствовать в заявке.
Поля, отмеченные как [single] могут присутствовать в заявке только в единственном экземпляре.
Поля, отмеченные как [multiple] могут присутствовать в нескольких экземплярах (например для указания нескольких телефонных номеров).
Поле “changed” должно содержать адрес электронной почты человека, который отправляет данную заявку (или вносит изменения) и дату внесения изменений в формате ГГГГММДД.
Поле “source” должно содержать значение “RIPE”.
Поле “mnt-by” применяется для выбора способа авторизации дальнейших изменений в создаваемом объекте (см. объект “mntner“).
Удаление из БД делается точно так же как и создание. Единственное отличие, то что в конце добавляется поле “delete:” в котором вы и указываете причину удаления этого объекта.
Автор: Николаев Дмитрий. Оригинал тут
Постовой
Компания Интекра предоставляет своим клиентам уникальный ассортимент крупнотоннажных грузовых автомобилей китайского производства. Грузовики!
Группа компаний, объединенных под торговой маркой “Промышленные силовые машины” является одним из лидеров российского рынка в области инжиниринга и производства дизельных электростанций мощностью от 10 до 500 кВт и силовых приводов на базе первичных дизельных двигателей. Бензиновые генераторы