Интернет изглежда като силна, независима и непоклатима структура. В теорията, устойчивостта на мрежата е достатъчна, за да оцелее ядрена експлозия. В действителност, интернет може да рухне само от един малък рутер. Всичко това е заради факта, че интернет е смесица от противоречия, уязвимости, грешки и видеа с котки. Основата на интернет - протоколът BGP - съдържа множество проблеми. Удивително е, че все още функционира. Освен грешките в самия интернет, той е подложен на атаки от всеки, който му иска зло: големи интернет доставчици, корпорации, държави и DDoS атаки. Какво да правим с това и как да живеем с него?

Отговорът знае Алексей Учакин () - лидер на екипа мрежови инженери в компанията IQ Option. Основната му задача е наличността на платформата за потребителите. В разшифровката на доклада на Алексей на ще говорим за BGP, DDoS атаки, превключвател от интернет, грешки на доставчиците, децентрализация и случаи, когато малък рутер е изпратил интернет да поспи. В края - няколко съвета как да преживеем всичко това.

Денят, когато Интернет се срина
Ще спомена само няколко инцидента, когато интернетът загуби свързаност. Това ще е достатъчно за пълната картина.
Инцидентът с AS7007. Първият път, когато интернетът се срина, беше през април 1997. В софтуера на един рутер от автономна система 7007 имаше грешка. В някакъв момент рутерът обяви на съседите си своята вътрешна таблица за маршрутизация и изпрати половината от мрежата в черна дупка.
Пакистан срещу YouTube. През 2008 г. смелите момчета от Пакистан решиха да блокират YouTube. Направиха го толкова добре, че половината свят остана без котки.
Завземането на префиксите VISA, MasterCard и Symantec от Ростелеком. През 2017 г. Ростелеком по погрешка започна да обявява префиксите на VISA, MasterCard и Symantec. В резултат на това финансовият трафик се насочи през канали, контролирани от доставчика. У泄ка продължи не дълго, но финансовите компании се почувстваха неудобно.
Google срещу Япония. През август 2017 г. Google започна да обявява в част от своите uplinks префиксите на големите японски доставчици NTT и KDDI. Трафикът премина към Google като транзитен, вероятно по грешка. Тъй като Google не е доставчик и не допуска транзитен трафик, значителна част от Япония остана без интернет.
DV LINK завзе префиксите на Google, Apple, Facebook, Microsoft. През 2017 г. руският доставчик DV LINK започна да анонсира мрежите на Google, Apple, Facebook, Microsoft и някои други големи играчи.
„eNet от САЩ е заел префиксите на AWS Route53 и MyEtherwallet“. През 2018 г. доставчик от Охайо или някой от неговите клиенти е анонсирал мрежите на Amazon Route53 и криптокошницата MyEtherwallet. Атаката премина успешно: дори въпреки самоподписания сертификат, предупреждение за който се появяваше на потребителя при влизане в сайта MyEtherwallet, много кошници бяха откраднати и част от криптовалутата бе загубена.
През 2017 г. е имало повече от 14 000 подобни инцидента! Мрежата все още е децентрализирана, поради което не всичко и не при всички се счупва. Но инцидентите се случват хиляди, и всички те са свързани с протокола BGP, на който работи интернет.
Проблемите на BGP
Протокол BGP – Протокол за гранични маршрутизатори, за първи път е описан през 1989 г. от двама инженери от IBM и Cisco Systems на три „салфетки“ – листа формат А4. Тези до ден днешен лежат в главния офис на Cisco Systems в Сан Франциско като реликва на мрежовия свят.
В основата на протокола стои взаимодействието на автономни системи – Автономни системи или съкратено – AS. Автономната система е просто някакво ID, зад което в публичен регистър са присвоени IP мрежи. Рутер с такова ID може да анонсира тези мрежи на света. Съответно, всеки маршрут в интернет може да бъде представен под формата на вектор, който наричат AS Path. Векторът се състои от номера на автономни системи, които трябва да бъдат преминати, за да се достигне мрежата на дестинацията.
Например, има мрежа, съставена от няколко автономни системи. Необходимо е да се премине от система AS65001 в система AS65003. Пътят между двете системи е представен със AS Path на схемата. Той се състои от две автономни системи: 65002 и 65003. За всеки адрес на дестинация съществува вектор AS Path, който се състои от номера на автономни системи, които трябва да преминем.

Какви са проблемите с BGP?
BGP е протокол на доверие
Протоколът BGP е основан на доверие. Това означава, че по подразбиране ние се доверяваме на нашия съсед. Това е особеност на много протоколи, които са разработвани в самото начало на интернет. Нека разберем какво означава „доверие“.
Няма удостоверяване на съседа. Формално съществува MD5, но MD5 през 2019 година – нещо като…
Няма филтриране. BGP разполага с филтри и те са описани, но не се използват или се използват неправилно. По-късно ще обясня защо.
Много лесно да се настрои съседство. Настройката на съседство в протокола BGP почти на всеки рутер - само няколко реда конфигурация.
Не се изискват права за управление на BGP. Не е необходимо да полагате изпити, които да потвърдят вашата квалификация. Никой няма да ви отнеме правото да конфигурирате BGP, дори и да го направите в нетрезво състояние.
Две основни проблеми
Угони на префикси - prefix hijacks. Угонът на префикс означава анонсиране на мрежа, която не ви принадлежи, както в случая с MyEtherwallet. Взимаме определени префикси, договаряме се с доставчика или го хакваме и през него анонсираме тези мрежи.
У leakage на маршрути - route leaks. С утечките е малко по-сложно. Утечката е промяна в AS Path. В най-добрия случай промяната води до по-голяма забавяне, защото трябва да минете по-дълъг маршрут или по-малко натоварен линк. В най-лошия случай се повтаря случая с Google и Япония.
Самият Google не е оператор и не е транзитна автономна система. Но когато той анонсира своите мрежи на японските доставчици, трафикът през Google по AS Path изглеждаше като по-приоритетен. Трафикът тръгна натам и беше загубен просто защото настройките за маршрутизация в Google са по-сложни от просто филтри на границата.
Защо филтрите не работят?
Никой не се интересува. Това е основната причина - на всички им е все едно. Администраторът на малък доставчик или фирма, която се е свързала с доставчика по BGP, е взел MikroTik, настроил BGP на него и дори не знае, че може да настрои филтри.
Грешки в конфигурацията. Нещо е бъркано, сбъркано е в маската, зададено е неправилно подмрежа - и ето, отново грешка.
Няма технически възможности. Например, при доставчиците на услуги има много клиенти. Умно е автоматично да се актуализират филтрите за всеки клиент - да се следи, че той е получил нова мрежа, че е наел своята мрежа на някого. Да се следи за това е трудно, а ръчно - още по-трудно. Поради това просто се поставят разхлабени филтри или не се поставят филтри изобщо.
Изключения. Има изключения за любимите и големи клиенти. Особено в случаи на междуподизни свързвания. Например, при ТрансТелеКому и Ростелеком има много мрежи и между тях свързване. Ако свързването падне - никому няма да е добре, затова филтрите се разхлабват или напълно премахват.
С остаряла или неактуална информация в IRR. Филтрите се изграждат на базата на информацията, записана в IRR — Регистър за Интернет маршрутизация. Това са регистри на регионални интернет регистратори. Често в регистрите има остаряла или неактуална информация, понякога и двете.
Кои са тези регистратори?

Всички адреси в интернет принадлежат на организации IANA — Агенция за присвоени номери в интернет. Когато купувате мрежа IP от някого, вие купувате не адресите, а правото да ги използвате. Адресите са нематериален ресурс, и по общо споразумение всички те принадлежат на агенцията IANA.
Системата работи така. IANA делегира управлението на IP адреси и номера на автономни системи на пет регионални регистратора. Те издават автономни системи LIR — локални интернет регистратори. След това LIR разпределят IP адреси на крайните потребители.
Недостатък на системата е, че всеки от регионалните регистратори води собствените си регистри по свой начин. Всеки има свое виждане за това каква информация трябва да съдържа регистърът, кой трябва или не трябва да я проверява. В резултат на това се получава бъркотия, която съществува в момента.
Какво още може да се направи за справяне с тези проблеми?
IRR — средно качество. С IRR е ясно — там всичко е зле.
BGP-общности. Това е определен атрибут, описан в протокола. Можем да добавим, например, специална общност към нашето обявление, за да предотвратим съседа да изпраща нашите мрежи на своите съседи. Когато имаме P2P линк, разменяме само нашите мрежи. За да предотвратим случайното отклоняване на маршрута в други мрежи, добавяме общност.
Общностите не са транзитивни. Това е винаги договор между двама, и това е техният недостатък. Не можем да добавим каквато и да е общност, освен една, която се приема по подразбиране от всички. Не можем да бъдем сигурни, че тази общност всички ще я приемат и правилно интерпретират. Следователно, в най-добрия случай, ако се споразумеете с вашия uplink, той ще разбере какво искате от него по общността. Но съседът му може да не го разбере, или операторът просто да отхвърли вашата етикета и вие няма да постигнете това, което искате.
RPKI + ROA решава само малка част от проблемите. RPKI е Инфраструктура за публични ключове на ресурси — специален фреймворк за подписване на маршрутна информация. Добра идея е да накараме LIR-ите и техните клиенти да водят актуална база данни за адресното пространство. Но има един проблем с него.
RPKI е и йерархична система за открити ключове. IANA има ключ, от който се създават ключове RIR, а от тях ключове LIR? с които подписват своето адресно пространство чрез ROAs — Авторизации за произход на маршрути:
— Уверявам, че този префикс ще бъде анонсиран от името на тази автономна система.
Освен ROA има и други обекти, но за тях по-късно. Изглежда, че е добра и полезна неща. Но не ни предпазва от изтичане на информация изобщо и не решава всички проблеми с кражба на префикси. Затова участниците не бързат да я внедряват. Въпреки че вече от големи играчи като AT&T и големи IX-и има уверения, че префиксите с неверен запис ROA ще бъдат отхвърлени.
Възможно е да го правят, но засега имаме огромно количество префикси, които изобщо не са подписани. От една страна, не е ясно дали те са валидно анонсирани. От друга страна — не можем да ги отхвърлим по подразбиране, защото не сме сигурни дали е правилно или не.
Какво още има?
BGPSec. Това е страхотна идея, измислена от академици за мрежата на розовите понита. Те казаха:
— Имаме RPKI + ROA — механизъм за удостоверяване на подписа на адресното пространство. Нека да създадем отделен BGP атрибут и да го наречем BGPSec Path. Всеки рутер ще подписва обявите, които анонсира на съседите си. Така ще получим доверен маршрут от веригата на подписани анонси и ще можем да го проверим.
В теорията всичко е добре, но на практика има много проблеми. BGPSec счупва много съществуващи механизми на BGP по избора на next-hop и управлението на входящия/изходящия трафик директно на маршрутизатора. BGPSec не работи, докато 95% от участниците на целия пазар не го внедрят, което само по себе си е утопия.
BGPSec има огромни проблеми с производителността. На текущото оборудване скоростта на проверка на анонсите е около 50 префикса в секунда. За сравнение: текущата таблица на интернет с 700 000 префикса ще се зарежда в продължение на 5 часа, през които още 10 пъти ще се смени.
BGP Open Policy (BGP на основата на роля). Ново предложение на базата на модела Гао-Рексфорда. Това са двама учени, които се занимават с проучване на BGP.
Моделът на Гао-Рексфорда се състои в следното. Ако опростим, в случая с BGP има малък брой видове взаимодействия:
- Доставчик Клиент;
- P2P;
- вътрешно взаимодействие, да речем, iBGP.
На базата на роля на маршрутизатора, вече можем по подразбиране да прилагаме някои политики за внос/износ. Администраторът не трябва да конфигурира списъци с префикси. На базата на ролята, за която ще се споразумеят маршрутизаторите и която може да се зададе, вече получаваме някои подразбиращи се филтри. В момента това е чернови, която се обсъжда в IETF. Надявам се скоро да видим това под формата на RFC и имплементация на хардуер.
Големи интернет доставчици
Да разгледаме примера на доставчика CenturyLink. Това е третият по големина доставчик в САЩ, който обслужва 37 щата и има 15 дата центрове.
През декември 2018 година CenturyLink имаше 50 часа неработоспособност на пазара в САЩ. По време на инцидента имаше проблеми с работата на банкомати в два щата, както и неработещ номер 911 в пет щата. Освен това беше отменена лотария в Айдахо. В момента комисията по електросвързаност в САЩ провежда разследване по този инцидент.
Причината за трагедията е в една мрежова карта в един дата център. Картата се е повредила, изпращала е некоректни пакети и всички 15 дата центрове на доставчика са спрели.

За този доставчик не проработи идеята «твърде голям, за да пропадне». Тази идея всъщност не работи. Може да вземете всеки голям играч и да го срутите с нещо малко. В САЩ все още всичко е наред със свързаността. Клиентите на CenturyLink, които имаха резерв, масово преминаха на него. По-късно алтернативни оператори се оплакаха от натоварването на своите връзки.
Ако условният «Казахтелеком» падне - цялата страна ще остане без интернет.
Корпорации
Вероятно интернетът се държи на Google, Amazon, FaceBook и други корпорации? Не, те също го разпадат.
През 2017 година на конференцията ENOG13 в Санкт Петербург Джеф Хюстон от APNIC представи . В него се говори, че сме свикнали, че взаимодействието, потокът на пари и трафикът в интернет са вертикални. Имаме малки доставчици, които плащат за свързаност на по-големи, а те вече плащат за свързаност на глобалния транзит.

В момента имаме такава вертикално ориентирана структура. Всичко беше наред, но светът се променя - големите играчи строят свои трансокеански кабели за изграждане на собствени backbone мрежи.

Новина за CDN кабела.
През 2018 г. TeleGeography публикува проучване, което показва, че повече от половината от интернет трафика вече не е интернет, а backbones CDN на големите играчи. Това е трафик, който има отношение към интернет, но вече не е същата мрежа, за която говорихме.

Интернет се разпада на голям набор от слабо свързани помежду си мрежи.
Microsoft има своя мрежа, Google - своя, и помежду им те слабо се пресичат. Трафик, който започва някъде в САЩ, преминава през каналите на Microsoft през океана към Европа, където някъде на CDN, след това през CDN или IX се свързва с вашия доставчик и попада при вас в рутера.
Децентрализацията изчезва.
Тази силна страна на интернет, която ще му помогне да оцелее след ядрени взривове, се губи. Появяват се места на концентрация на потребители и трафик. Ако падне условен Google Cloud, ще има много пострадали наведнъж. Частично почувствахме това, когато Роскомнадзор блокира AWS. А на примера на CenturyLink е видно, че за това е достатъчно и малко.
Преди не всичко се проваляше и не при всички. В бъдеще можем да стигнем до ситуация, в която, повлиявайки на един голям играч, можем да повредим много неща, много места и много хора.
Държави
Следващите на ред са държавите и с тях обикновено се случва така.

Нашият Роскомнадзор тук не е и пионер. Подобна практика на Internet shutdown съществува в Иран, Индия, Пакистан. В Англия има предложение за закон за възможността за изключване на интернет.
Всяка голяма държава иска да има превключвател за изключване на интернет, било то напълно или на части: Twitter, Telegram, Facebook. Те не че не разбират, че никога не ще могат да го постигнат, но много го искат. Превключвателят обикновено се прилага по политически цели - за отстраняване на политическите конкуренти, или избори на носа, или руски хакери отново са направили нещо.
DDoS атаки
Няма да отнемам хляба на колегите от Qrator Labs, те го правят много по-добре от мен. Те имат за стабилността на интернет. И ето какво написаха в отчета за 2018 година.
Средната продължителност на DDoS атаки пада до 2.5 часа. Атакуващите също започват да броят парите и, ако ресурсът не падне веднага, бързо го оставят на мира.
Увеличава се интензивността на атаките. През 2018 г. видяхме 1.7 Tb/s в мрежата на Akamai и това не е предел.
Появяват се нови вектори на атака и старите се засилват. Появяват се нови протоколи, подложени на амплификация, нови атаки срещу съществуващи протоколи, особено срещу TLS и подобни.
По-голямата част от трафика е от мобилни устройства. В същото време интернет трафикът преминава към мобилни клиенти. Това е нещо, с което трябва да умеят да работят както атакуващите, така и защитниците.
Няма неуязвими. Това е основната идея — не съществува и не може да се появи универсална защита, която да защити от всяка DDoS атака.
Не можете да спрете системата, освен ако не е свързана с интернет.
Надявам се, че ви изплаших достатъчно. Нека сега помислим какво да правим с това.
Какво да правим?!
Ако имате свободно време, желание и познания по английски — участвайте в работни групи: IETF, RIPE WG. Това са открити пощенски списъци, абонирайте се за бюлетини, участвайте в обсъждания, идвайте на конференции. Ако имате статус LIR, можете да гласувате, например, в RIPE за различни инициативи.
За обикновените смъртни — това мониторинг. За да знаете какво се е счупило.
Мониторинг: какво да проверявате?
Обикновен Ping, и то не само бинарна проверка — дали работи или не. Записвайте RTT в историята, за да можете после да гледате аномалии.
Traceroute. Това е служебна програма за определяне на маршрути на данни в мрежи TCP/IP. Помага за откриване на аномалии и блокировки.
HTTP проверки — проверки на персонализирани URL адреси и TLS сертификати ще помогнат да се открият блокировки или подмяна на DNS за атака, което практически е едно и също. Блокировките често се извършват чрез подмяна на DNS и с пренасочване на трафика към страница с блокиране.
Ако имате възможност, проверявайте резолв на вашия произход от различни места, ако имате приложение. Така ще откриете аномалии при прихващане на DNS, каквото понякога практикуват доставчиците.
Мониторинг: откъде да проверявате?
Няма универсален отговор. Проверявайте от местата, откъдето идват потребителите. Ако потребителите са в Русия — проверявайте от Русия, но не се ограничавате само до нея. Ако вашите потребители живеят в различни региони — проверявайте от тези региони. Но е по-добре от целия свят.
Мониторинг: с какво да проверявате?
Измислих три начина. Ако знаете повече — пишете в коментарите.
- RIPE Atlas.
- Комерсиален мониторинг.
- Собствена мрежа от виртуални машини.
Нека поговорим за всеки от тях.
RIPE Atlas — това е малко кутийка. За тези, които знаят за нашия „Ревизор“ — това е подобна кутийка, но с друга етикетка.

RIPE Atlas — безплатна програма. Регистрирате се, получавате по пощата рутер и го включвате в мрежата. За това, че някой друг ползва вашата проба, получавате кредити. С тези кредити можете да провеждате изследвания. Може да тествате по различни начини: ping, traceroute, проверка на сертификати. Покритие е доста голямо, много нодове. Но има нюанси.
Системата от кредити не позволява изграждане на продукционни решения. Кредитите не са достатъчни за постоянни изследвания или търговски мониторинг. Кредитите са достатъчни за кратко изследване или еднократна проверка. Дневната норма с една проба се изчерпва с 1-2 проверки.
Покритие не еравномерно. Тъй като програмата е безплатна в двете посоки, покритието е добро в Европа, в европейската част на Русия и в някои региони. Но ако ви е нужна Индонезия или Нова Зеландия, всичко е значително по-лошо — 50 проби на страна може да не се съберат.
Не може да се проверява http с проба. Това е предизвикано от технически нюанси. Обещават да го поправят в новата версия, но за момента проверка на http не е възможна. Може да се провери само сертификатът. Някаква http проверка може да се направи само с помощта на специално устройство RIPE Atlas, наречено Anchor.
Вторият начин — търговски мониторинг. С него всичко е наред, нали плащате пари? Обещават ви няколко десетки или стотици точки за мониторинг по целия свят, рисуват красиви табла „из кутийката“. Но, отново, има проблеми.
Това е платно, на места много. Мониторинг с ping, проверки от цял свят и множество http проверки могат да струват хиляди долари годишно. Ако финансите позволяват и ви харесва това решение — моля.
Покритието може да не е достатъчно в интересуващия регион. Същият ping уточнява максимум абстрактната част на света — Азия, Европа, Северна Америка. Редки системи за мониторинг могат да детайлизират пробата до конкретна страна или регион.
Слаба поддръжка на персонализирани тестове. Ако имате нужда от нещо персонализирано, а не просто „курлык“ на url, тогава с това също сте в затруднение.
Третият начин — собствен мониторинг. Това е класиката: „Хайде да напишем собствен!“
Ваш мониторинг превращается в разработка на разпределена продукт. Търсите инфраструктурен доставчик, разглеждате как да го деплоите и мониторите - мониторингът трябва да се мониторира, нали? И още е нужна поддръжка. Помислете добре, преди да се заемете с това. Може би е по-лесно да платите на някой, който да го направи вместо вас.
Мониторинг на BGP-аномалии и DDoS-атаки
Тук относно наличните ресурси всичко е още по-просто. BGP-аномалиите се откриват с помощта на специализирани услуги като QRadar, BGPmon. Те приемат full view-таблица от множество оператори. На основание на това, което виждат от различни оператори, могат да открият аномалии, да търсят амплификатори и други. Обикновено регистрацията е безплатна - записваш номера на своята автономка, подписваш се за известия на поща, и услугата те информира за твоите проблеми.
В мониторинга на DDoS-атаките също всичко е просто. Обикновено е базирано на NetFlow и логове. Има специализирани системи като FastNetMon, модули за Splunk. В крайни случаи имате вашия доставчик на DDoS-защита. И на него може да се дават NetFlow данни и на неговата основа той ще ви предупреждава за атаки в посока към вас.
Изводи
Не се заблуждавайте - интернет непременно ще се разпадне. Няма да се разпадне всичко и не при всички, но 14 хиляди инцидента за 2017 насочват вниманието, че инциденти ще има.
Вашата задача е да забележите проблемите възможно най-рано. Минимум, не по-късно от вашия потребител. Освен че е необходимо да забележите, винаги дръжте в запас „план Б“. План - това е стратегия какво ще правите, когато всичко се разпадне: резервни оператори, ДЦ, CDN. Планът - това е отделен чеклист, по който проверявате работата на всичко. Планът трябва да работи без привличане на мрежови инженери, защото обикновено ги има малко и те искат да спят.
С това приключвам. Желая ви висока наличност и зелен мониторинг.
Следващата седмица в Новосибирск се очаква слънце, хайлоад и висока концентрация на разработчици на . В Сибир се прогнозира фронт на лекции за мониторинг, наличност и тестване, безопасност и управление. Очакват се валежи под формата на написани конспекти, нетворкинг, снимки и постове в социалните мрежи. Препоръчваме да отложите всичките си ангажименти на 24 и 25 юни и . Очакваме ви в Сибир!
Източник: habr.com
