Принципен проблем на префиксната филтрация в маршрутизиращия софтуер без поддръжка на 32-битови ASN

Версия 1.0.1, 02 август 2009

Веселин Колев, Софийски Университет "Св. Климент Охридски"

Адрес за кореспонденция: vesso AT vesselin.org

Първоизточник: http://www.vesselin.org

Лиценз на документа: CC Attribution-ShareAlike

 

Съдържание:

  1. Увод

  2. Принципен проблем на префиксната филтрация в маршрутизиращия софтуер без поддръжка на 32-битови ASN

  3. BGP софтуер с отворен код, поддържащ 32-битови ASN

 

1. Увод

В рамките на мероприятията по подобряване на свързаността на Софийския Университет "Св. Климент Охридски" и внедряването на ключови нови технологии, граничните маршрутизатори на AS5421 вече обработват BGP префикси с origin 32-битов номер на автономна система.

Защо това не е излишна екстра, може да се види в раздел 2 на тази статия, но към казаното там може да се добави и следното. Регионалните интернет регистри (в частност RIPE за Европа), вече по подразбиране алокират 32-битови номера на автономни системи. Получаването на 16-битов номер на автономна система става само по изключение, след необходима обосновка пред регистъра. Следователно 32-битовите номера на автономни системи са дефакто вече стандарт и неподдържането им носи единствено и само минуси за съответния участник в глобалната маршрутизация, основана на протокола BGP4/4+.

От гледна точка на 32-битовите номера на автономни системи, използвани в протокола BGP4/4+, в Интернет има два типа машрутизатори: (i) такива, които могат да четат стойност на origin с такъв разред в информацията за префиксите и (ii) такива, които не могат да я четат (поддържат само 16-битови номера на автономни системи). На пръв поглед изглежда, че маршрутизаторите от втория тип не биха обработвали префикси, които имат за origin 32-битов ASN. На практика обаче, тази обработка протича, без отчитане на 32-битовия номер. Основателният въпрос в случая е как става това и каква стойност на origin се използва при обработката (ясно е, че в рамките на BGP няма как да се обработи префикс без атрибут origin).

За да се отговори на последния въпрос, не е нужно да се прибягва до подробно описание на разширението в протокола BGP за 32-битови идентификатори на автономни системи (въпреки, че е полезно да се знаят такива детайли от тези, които управляват маршрутизацията). Нужно е да се опише само най-общо принципа. А той е следният. Когато един маршрутизатор следва да бъде първоизточник на префикс с 32-битов номер на автономна система, той трябва да поддържа в своя софтуер за маршрутизация такъв разред за номерация на автономната система. Когато той формира информацията за префикса, в полето за origin винаги поставя 16-битовия идентификатор със стойност 23456, а в специално разширение към информацията за префикса, указва стойността на 32-битовия origin. Следователно информацията за префикса носи едновремено 16-битов и 32-битов номер на автономна система. По този начин префиксът може да се излъчи чрез BGP към всякакъв маршрутизатор, без оглед дали последния поддържа или не 32-битови номера на автономни системи. И причината за тази възможност е, че маршрутизаторите, които не поддържат 4-байтови ASN, четат само 16-битовото поле за origin. При преносът в рамките на глобалната система за маршрутизация, информацията за 32-битовия ASN не се премахва, а се запазва, но се чете и обработва само от тези маршрутизатори, които имат поддръжка на такъв разред номера. Следователно не е нужно всички маршрутизатори по пътя на префикса да поддържат 32-битови автономни системи. Реално това е задължително само за този маршрутизатор, който е формирал префикса с 32-битова стойност на origin атрибута.

На база на обяснението по-горе става ясно, че разликата между маршрутизаторите (i) и (ii) е в това, че в информацията за BGP префикса, първите виждат 32-битовия ASN, а вторите виждат само 16-битовия ASN 23456. Казано по друг начин, (ii) сякаш виждат "маскирана" стойността на атрибута origin. Както ще стане ясно по-долу, това може да доведе до проблеми при филтрацията от страна на маршрутизатори без поддръжка на 32-битови номера на автономни системи, рефлектиращи в проблеми със сигурността на мрежата (локална и глобална).

 

2. Принципен проблем на префиксната филтрация в маршрутизиращия софтуер без поддръжка на 32-битови ASN

Ако бъде използван BGP софтуер, който няма в себе си функционалност за прочита на 32-битови стойности на origin атрибута, се отваря значителна дупка в сигурността, свързана с проблеми в префиксната филтрация. Причината за отварянето на дупката се състои в липсата на селективност по отношение на стойността на полето origin. Ето един кратък пример. При липса на прочит на 32-битовия атрибут за origin, двата префикса:

192.168.0.0/24 (origin AS65550)
192.168.1.0/24 (origin AS65542)

изглеждат като:

192.168.0.0/24 (origin AS23456)
192.168.1.0/24 (origin AS23456)

т.е. и двата са с origin един и същи номер на автономна система (AS23456), макар реално това да не е така.

В добавка, нека опишем и практическата ситуация, която може да доведе до проблем при филтрацията на префикси. Съгласно RFC5398, блокът 32-битови ASN 65536-65551 се алокира за целите на примери в документация. Следователно в рамките на глобалната маршрутизация не е добра практика излъчването и приемането на префикси с origin номер на автономна система в посочения диапазон. От друга страна, добрата практика е нещо много хубаво, но прилагането й опира до ценности и разбиране. Следователно няма как да се очаква тя да бъде повсеместно приложима, а конкретно за нашия случай това означава, че все някой някъде ще излъчи в глобалната система за маршрутизация префикс с origin номер на автономна система, описан в RFC5398. Докато неспазването на принципите на добрата практика може да не е злонамерено и да не е критично, то съществува и възможност злонамерено лице или организация, да използват подобни префикси (или други, пак с origin 32-битов ASN) с цел саботаж. Ако BGP маршрутизиращият софтуер на транзитите и жертвата на саботажа, не може да чете 32-битовите номера на автономни системи, няма как да се извърши филтрация на вредните префикси. Ако пък се направи префиксен филтър за origin с номер 23456, това би "ослепило" маршрутизатора, защото той няма да вижда всички префикси, чиито origin е 32-битова автономна система (множеството от тях нямащи нищо общо със злонамерена дейност). Подобна ситуация се нарича "патова". Тя не може да се избегне в рамките на използването на маршрутизатори без поддръжка 32-битови номера на автономни системи.

 

3. BGP софтуер с отворен код, поддържащ 32-битови ASN

Към момента на написване на статията, двата основни софтуерни пакета с отворен код, използвани за маршрутизация на основата на протокола BGP4/4+, Quagga и Xorp, поддържат 32-битови ASN. Версията на Quagga, в която това става по подразбиране (без кръпка), е 0.99.14. Версията на Xorp, която следва да се използва и има споменатата поддръжка, е 1.6.

Само за пълнота следва да се спомене, че и производителите на специализиран хардуер за маршрутизация (Juniper, Cisco и др.), също влагат поддръжка на 32-битови ASN в различни версии на маршрутизиращия си софтуер и операционна система. Техният софтуер обаче не може да се класифицира като "отворен код" и затова не е обсъждан тук.

 

Този документ е с OpenPGP подписано съдържание
[информация] [електронен подпис] [TimeStamp: заявка|удостоверение]

Creative Commons - Признание 2.5 Valid CSS! Valid XHTML 1.1