![](https://habrastorage.org/webt/lo/av/oy/loavoyr3tqtkmjfaus61pv4hppu.png)
Как часто бывает: заходите на сайт, а он вас прогоняет, якобы вы из другой страны?
Ситуация неприятная как для пользователя, так и для интернет-провайдера — нужно поднимать базу IP-адресов и смотреть, где указана неактуальная геолокация.
На вебинаре Selectel Network Meetup 4 сетевой инженер Никита Степанов рассказал, как починить географию пользователей и автоматически обновлять геолокацию IP-адресов. Подробности под катом.
Дисклеймер: название Eevee вымышленное, любые совпадения с реальными компаниями случайны.
Адрес Шредингера
Ситуация. Есть видеоплатформа Eevee — ее регулярно атакуют хактивисты. Причины DDoS-атак неизвестны, но геолокация явная — иностранные регионы.
Владельцу сайта наскучил DDoS. И вместо того, чтобы блокировать IP-адреса точечно, он закрывает Eevee для всех пользователей с иностранными префиксами. DDoS-атаки отступили, но что-то, кажется, сломалось.
Что происходит у клиента. Клиенты не могут посмотреть сериал на Eevee: сайт пишет, что закрыт для иностранных лиц. Но клиенты-то ими не являются.
![](https://habrastorage.org/webt/9a/ds/vd/9adsvdmg9m1arjwz9jnugyv_7zi.png)
Жалобы от пользователей поступают как в сторону Eevee, так и в сторону интернет-провайдера. Последний решает разобраться, почему IP-адреса клиентов видеоплатформа определяет, как иностранные.
Диалог провайдера и Eevee. Интернет-провайдер связался с представителем Eevee и выяснил, откуда они берут информацию о локации пользователей.
![](https://habrastorage.org/webt/1x/a5/3q/1xa53qgjq-mkg_vih3yns8z_5fc.png)
Для определения геолокаций видеоплатформа обращается к GeoIP-провайдеру MaxMind — агрегатору, который хранит информацию об IP-адресах.
При чем здесь GeoIP-провайдер?
Для работы интернет-провайдера нужно много IP-адресов. С учетом их дефицита задача поиска усложняется. Иногда приходится выкупать адреса у иностранных интернет-провайдеров.
Бывают ситуации, когда при переезде IP, например, из Турции в Россию, агрегаторы не обновляют информацию в своих реестрах. Вот и разгадка проблемы клиентов Eevee: провайдер GeoIP MaxMind забыл обновить геолокации IP-адресов.
![](https://habrastorage.org/webt/ul/p2/ck/ulp2ckgf_songraipvzrsvpwhfa.png)
Список агрегаторов — провайдеров GeoIP
Ответственность за ошибки агрегатора лежит на интернет-провайдере. Есть несколько способов обновить геолокации IP-адресов.
Возможно, эти тексты тоже вас заинтересуют:
→ Подводных интернет-кабелей все больше: новые магистрали, суда и возможности
→ CDN против DDoS-атак: в каких случаях это действительно работает
→ Объединяй коммутаторы и властвуй — сравниваем Stack и MLAG
Бородатый способ обновления геолокаций
Обычно интернет-провайдеры собирают неактуальные адреса, обращаются к агрегатору и заполняют специальные анкеты.
Минусы подхода:
— отнимает много времени: нужно заполнить большое количество разных форм,
— если неактуальные IP числятся у нескольких агрегаторов, нужно написать каждому.
Но есть вариант проще.
Geofeed: упрощаем обновление геолокаций
В 2013 году компания Google выпустила стандарт для обмена географией IP-адресов — Geofeed. С 2020 года он официально входит в документы RFC.
Представление данных
Geofeed определяет единый формат данных для обмена геолокацией адресов. Провайдер должен сформировать таблицу из следующих полей:
- IP-префикс/подсеть (в формате IPv4 или IPv6)
- код страны
- регион
- город
![](https://habrastorage.org/webt/_p/oa/mp/_poampkjav4wm9--nxgbps3_w8g.png)
Пример заполнения таблицы Geofeed
Готовый csv-документ можно автоматически выгрузить из базы данных, а после — сохранить на сервере, чтобы работал доступ по протоколу HTTPS.
![](https://habrastorage.org/webt/py/u5/-z/pyu5-zsd3qpevggs1v2oo_wkg5q.png)
Публикация префиксов
После сохранения таблицы провайдеру нужно добавить ссылку на нее в своем региональном регистраторе IP-адресов (RIR) — AFRINIC, APNIC, ARIN, RIPE NCC или LACNIC.
Встроенный атрибут Geofeed
В RIPE нативно можно добавить поле (атрибут) типа Geofeed для inetnum- и NetRange-объектов. После — вписать в поле ссылку на таблицу с данными.
![](https://habrastorage.org/webt/qm/4a/oa/qm4aoammhdreat7sqbc7tz9hkb8.png)
RIPE, пример конфигурации. Источник
Добавление Geofeed через атрибут Comment
В других регистраторах нет встроенных Geofeed-атрибутов. Ссылку можно добавить через поле Comment / Remark.
![](https://habrastorage.org/webt/eu/x7/6g/eux76gptwcjnee_nkto4cevu8be.png)
ARIN, конфигурация Google. Источник
Как выглядит Geofeed-таблица Google, можно посмотреть по ссылке.
Связь с провайдерами GeoIP
После добавления Geofeed в базу регионального регистратора можно написать агрегатору и предоставить ссылку для обновления сведений о геолокациях.
![](https://habrastorage.org/webt/vg/m3/lu/vgm3lukvqminhtchm9iofcoeisw.png)
Версия от 2ip
По этой ссылке агрегатор будет периодически забирать новые данные об адресах провайдера и актуализировать свой реестр.
Популярна ли технология сегодня
На митапе было больше 100 человек. Среди них — бородатые сетевики из операторов связи и разных провайдеров.
Мы спросили, кто использует Geofeed — в зале тишина.
Возможно, стандарт еще слишком молод. Но нам интересно, как много организаций практикуют Geofeed уже сегодня. Если ваша компания одна из них — отпишитесь в комментариях.
Only registered users can participate in poll. Log in, please.
Вы знали о Geofeed до прочтения статьи?
6.54% Да10
93.46% Нет143
153 users voted. 13 users abstained.