Пример реализации “мягкой” привязки MAC-IP-PORT

В этой статье рассмотрены плюсы и минусы различных типов авторизации и идентификации абонентов в сетях провайдеров широкополосного доступа в Интернет, и подробно рассмотрена реализация одной из технологий доступа, используя оборудование Dlink DES-35xx™ в качестве клиентских коммутаторов, и системы Pyzzle.ISP™ в роли системы учета абонентов, мониторинга и управления сетевым оборудованием.

Различные методики авторизации абонентов в сетях ETTH провайдеров

Фиксированные IP адреса

Самым простым вариантом для провайдера является выделение каждому абоненту определенного фиксированного IP адреса. Адрес выделяется при подключении абонента и жестко закреплен за ним. Этот адрес используется на сетевой карте клиентского компьютера или маршрутизатора, и прописан статически или получается по DHCP с сервера провайдера на основании MAC адреса абонента.

Достоинства:

  • Простые настройки клиентского оборудования (особенно при DHCP)

Недостатки:

  • Для исключения воровства трафика, требуется осуществлять комплекс мер на маршрутизаторе или клиентских портах оборудования.
  • Необходимость прописывания MAC адреса при смене клиентского оборудования. (При наличии привязки к MAC адресу)
  • При прописывании статического IP адреса в настройках, необходима настройка компьютера при переустановке операционной системы.
Для решения проблемы безопасности, а именно подделки сетевых реквизитов с целью воровства трафика у других клиентов, провайдер может применять совокупность различных методик:
  • Статическая ARP таблица на маршрутизаторе (arp-inspection)
  • Статическая привязка MAC-PORT или MAC-IP-PORT на клиентских портах коммутаторов. (В зависимости от возможностей оборудования)
  • Включение режима port-security на клиентском порту коммутатора.
  • Включение dhcp-snopping на клиентом порту коммутатора.
Использование различных ограничений на клиентских портах может создавать дополнительные сложности при диагностики сети у службы тех. поддержки: залипание неправильного MAC адреса на клиентском порту, необходимость предварительной настройки порта, для того чтобы можно было подключать компьютер тех. поддержки. Включение dhcp-snooping делает не возможным прописывание статической конфигурации, а это может потребоваться ряду клиентов: при подключении IP-камер, POS-терминалов и другого оборудования, для которого использование статических адресов предпочтительней.
Все эти настройки на оборудовании в принципе поддаются автоматизации, но если этого не сделать, то технический персонал оператора должен будет выполнять много ручной работы по настройке клиентских портов, что может приводить к опечатками и ошибкам в настройке коммутаторов. С ростом сети оператора на поддержание корректности работы оборудования будет тратиться очень много времени сотрудников.

Туннелирование интернет трафика

Оператор может использовать один из вариантов туннелирования трафика: PPPoE, PPtP, L2TP. Все эти технологии объединяет необходимость пройти авторизацию на сервере доступа (ввести логин и пароль). Туннелирование позволяет однозначно идентифицировать трафик клиента.

Достоинства:

  • Нет привязки к клиентскому оборудованию. Абонент может сменить компьютер или роутер и при правильной настройке ему не придется обращаться в службу тех. поддержки.
  • Решается проблема “воровства трафика”. (За исключением воровства паролей с компьютера клиента используя шпионское ПО, фишинг или компрометация базы данных оператора, но такие случаи выходят за рамки этой статьи)
  • Можно ограничивать скорость непосредственно на ppp интерфейсе сервера доступа.
  • Эффективное расходование IP адресов, при выдаче динамического реального IP адреса из пула.

Недостатки:

  • Сложная настройка клиентского компьютера. (Большинство абонентов будут обращаться в тех поддержку после переустановки ОС, и за минуту, по телефону, настроить не получится)
  • Определенные проблемы совместимости серверов доступа провайдера и различных аппаратных SOHO маршрутизаторов. (Особенно при использовании PPtP терминатора вне подсети абонента)
  • Потенциальная невозможность подключить к сети определенное оборудование абонента, которое не поддерживает требуемую технологию туннелирования. Например, некоторые модели маршрутизаторов, POS-терминалы, игровые приставки и т. п.
  • Нетривиальная настройка клиентской ОС при необходимости, поверх туннеля для доступа в интернет, организовать туннель для доступа к корпоративной сети клиента.
  • Возможность использования интернета в складчину несколькими клиентами, путем передачи друг-другу логина/пароля.
Туннелирование используется в большинстве провайдеров, так как оно обеспечивает приемлемый уровень зашиты от воровства трафика. Так же использование туннелей характерно для операторов, у которых изначально использовались неуправляемые коммутаторы, т.к. только туннелирование позволяло надежно предотвратить воровство трафика в сетях с неуправляемым оборудованием. Еще одной из причин использования туннелирования является возможность использовать ПО разработанное для тарификации DIAL-UP, включая биллинговые системы, RADIUS сервера, подсчет трафика по сессиям и т. п.

Идентификация по порту коммутатора

Если сеть построена полностью на управляемом оборудовании, то возможна такая архитектура сети при которой каждому порту на клиентском коммутаторе соответствует один или несколько заранее известных IP адресов. Этого можно добиться путем использования VLAN на абонента + DHCP раздающий всем подряд адреса на основании VLAN, или используя Option 82 на коммутаторах + настройку DHCP сервера так, чтобы за каждым портом были закреплены определенные IP адреса + фильтрация по этим адресам на порту коммутатора.

Достоинства:

  • Нет привязки к клиентскому оборудованию (по MAC адресам, etc.).
  • Нет сложных настроек клиентского оборудования (нет туннелей типа PPPoE).
  • Приемлемый уровень защиты от воровства трафика.
На первый взгляд недостатков у этой схемы нет, кроме стоимости оборудования. Однако эта схема подходит для “статической” сети, то есть сети, в которой не появляются новые абоненты, не переоформляются договора, не происходит замена оборудования. Проблема в том, что при некорректной настройке оборудования в предыдущих вариантах, у абонента не будет работать услуга и это сразу станет видно. В описанной схеме, при перепутывании проводов, возникнет ситуация, когда абонент А подключен в порт абонента Б и наоборот они оба будут работать, только биллинг будет считать некорректно, и услуги будут им оказываться тоже перепутано. Такая ситуация выяснится не сразу, очень трудно диагностируема, и для корректировки нужно будет очень многое переделывать и пересчитывать, особенно если будут подвержены больше чем два абонента.
Для работы этой схемы все действия с сетевым оборудованием нужно делать очень аккуратно:
  • При подключении абонента, нужно четко подключать в нужный порт нужного коммутатора. (Момент подключения можно верифицировать со стороны информационных систем)
  • При замене оборудования нужно, чтобы абоненты подключались обязательно в определенные порты коммутатора.
  • Очень аккуратно нужно выполнять работы на кабельных кроссах.
Перепутывание проводов приведет к некорректной тарификации, выяснится это не сразу, и к моменту разбора полетов, найти виновных будет практически не возможно.
Так же это никак не защищает от возможности перепутывания проводов по вине третьих лиц. Например восстановить корректность описания топологии при обрыве пучка проводов в промежуточной точке очень сложно.

Пример реализации “мягкой” привязки MAC-IP-PORT

В информационной системе Pyzzle.ISP™ может быть реализована схема авторизации абонентов, объединяющая достоинства первого и последнего типа. Основная идея этой схемы - использование MAC-IP-PORT привязки включая полную автоматизацию управления коммутаторами, а так же использование “интеллектуального” DHCP сервера, который способен не только получать данные из биллинга, но и вносить изменения в сетевые реквизиты абонента, при появлении новых MAC адресов в портах коммутатора. В результате абонент получает адреса по DHCP, в системе хранится привязка MAC-IP-PORT и PORT-Абонент, а при появлении нового компьютера в сети, система, на основании порта коммутатора, из которого пришел запрос, автоматически добавляет этот MAC абоненту, выдает IP адрес, и абонент может выходить в интернет (так же возможна настройка системы так, чтобы для открытия доступа в интернет, подключение нового компьютера необходимо подтвердить из личного кабинета или обращением в тех. поддержку). Благодаря наличию информации о MAC адресах абонентов, система может корректно минимизировать проблемы, связанные с изменением сетевой топологии и намного больше возможностей для диагностики правильности подключения клиентов.
Дополнительно система умеет анализировать SNMP trap от коммутаторов, которые позволяют отслеживать все несовпадения между базой данных системы и реальной сетевой активностью, и при необходимости привязывать порты к абонентам.

Используемое оборудование и ПО

Для реализации этого метода используются следующие компоненты:

  • Управляемые коммутаторы, с поддержкой DHCP-RELAY и Option 82, а так же привязкой mac-ip-port или dhcp-snooping. Например Dlink DES-3526/3550

  • Маршрутизатор на базе OS Linux. Используется для фильтрации доступа в интернет по IP адресам и для опционального перенаправления HTTP запросов от новых или заблокированных компьютеров на специальные страницы. (Может использоваться аппаратный маршрутизатор или L3 коммутатор, в этом случае перенаправление реализуется сложнее, например выдачей клиентам специально настроенного DNS сервера.)

  • Информационная система Pyzzle.ISP с установленными модулями:

    • Учет абонентов
    • Учет сетевого оборудования
    • Управление коммутаторами
    • Radius сервер
  • DHCP сервер на базе ISC-DHCP™ с патчем для работы с Radius от http://www.netpatch.ru/

Алгоритм работы DHCP сервера

DHCP сервер перенаправляет все запросы на radius сервер, получает с Radius сервера ответы и отправляет их обратно клиентам. Такая схема работы позволяет реализовать любую необходимую логику поведения на стороне Radius сервера. Radius сервер работает в контексте информационной системы Pyzzle.ISP и может при формировании ответа использовать все возможности системы: делать запросы к базе данных, работать с объектами информационной системы, вносить изменения в свойства объектов.
Для работы схемы “мягкой” привязки, в информационной системе должны быть описаны коммутаторы, с которых будут приходить DHCP запросы с Option 82, а так же IP сети. Каждая сеть характеризуется:
  • IP адресом и маской сети.
  • Шлюзом по умолчанию.
  • Номером VLAN.
  • Пулом адресов доступных для выдачи по DHCP.
В одном VLAN может находится несколько IP сетей (соответствует использованию secondary IP адресов на интерфейсах). Система поддерживает выдачу специальных IP адресов для компьютеров технической поддержки, для этого в настройках системы должны быть перечислены MAC адреса этих компьютеров (параметр dhcp_tech_mac_list в конфигурационном файле billing.cfg), а в свойствах сети указан технический IP адрес). Так же специальные адреса могут выделяться для компьютеров, которые система считает “нарушителями”, для этого используется признак “гостевая сеть” при описании сети и пул адресов. Нарушители могут получать адреса из определенного диапазона внутри обычной клиентской сети, а могут из другой IP сети, все зависит от настроек списка сетей. При выдаче адресов из гостевого диапазона система выдает адреса циклически, без учета времени жизни выданных IP адресов, поэтому ситуации “no free leases” для гостевой сети не может быть.
В схеме “мягкой” привязки MAC-IP-PORT поведение DHCP сервера на различные запросы соответствуют таблице.
  MAC принадлежит абоненту МАС не найден в базе данных MAC принадлежит компьютерам технической поддержки
Порт коммутатора принадлежит абоненту Если владелец MAC адреса соответствует владельцу порта, то выдается нормальный IP адрес. Если у MAC адреса и у порта разные владельцы, то выдается IP адрес из гостевого диапазона. Абоненту выделяется новый IP адрес (берется свободный из пула клиентской сети). Этот адрес выдается по DHCP. Так же делается запрос на обновление конфигурации коммутатора, для добавления новой MAC-IP-PORT записи.

Выдается специальный технический IP адрес, который описан в свойствах сети.

Порт коммутатора не привязан к абоненту, или отсутствует Option 82 в запросе. Выдается IP адрес в соответствующий MAC адресу. Выдается IP адрес из гостевого диапазона.
В результате DHCP работает аналогично обычной конфигурации с жесткой привязкой MAC-IP, но при подключении абонентом нового компьютера, система выдает новый IP адрес и привяжет эту пару IP-MAC к абоненту. В зависимости от настроек конкретной инсталляции, с нового адреса доступ в интернет может быть открыт сразу, а может быть по умолчанию заблокирован, и для открытия доступа необходимы дополнительные действия: активация нового компьютера в личном кабинете или сотрудником провайдера.
Каждый запросивший IP адрес по DHCP его получит и сможет попытаться выйти в интернет. На маршрутизаторе можно применить принудительное перенаправление на определенные web-страницы, где абонент получит дополнительные инструкции и пояснения. На маршрутизаторе, в соответствии с IP адресом клиента, запрос может быть перенаправлен на различные страницы:
  • Доступ закрыт за неуплату (Если IP принадлежит абоненту, активирован, но у абонента заблокирован доступ в интернет)
  • Подключен новый компьютер. (IP принадлежит абоненту. но не был активирован)
  • Страница гостевого доступа. (Попытка доступа из чужого порта, или неизвестный MAC адрес на порту не привязанному к абоненту - например новое подключение)
Для управления привязкой MAC-IP-PORT можно использовать или статические записи на портах коммутаторов, или использовать dhcp-snooping. Использование dhcp-snooping упрощает настройку коммутаторов, однако в этом случае невозможно прописать статические адреса на клиентском оборудовании. Так как в системе Pyzzle.ISP полностью автоматизировано управление статическими записями MAC-IP-PORT на коммутаторах, то рекомендуемым решением является использование статической привязки, плюс неограниченный доступ с клиентских портов при использовании определенных IP адресов (permit_ip_pool на коммутаторах Dlink). В списке разрешенных указывается IP тех. поддержки, гостевая сеть, а так же те абоненты, которые заведены в систему без указания MAC адреса.

Примеры работы системы в типовых ситуациях при эксплуатации

Все действия и инциденты связанные с привязкой MAC-IP-PORT протоколируются отдельно в базе данных информационной системы. На странице “MAC-IP события” отображаются записи из базы данных, каждая запись содержит IP,MAC,информацию о порте коммутатора и текстовое сообщение с описанием события. Также для каждого события указывается время последнего срабатывания и общее кол-во срабатываний этого события. Каждую запись сотрудники оператора могут сопроводить комментарием и проставить статус (например: “обработан”), таким образом каждое событие требует определенной реакции со стороны сотрудников оператора. Система протоколирует следующее:
  • Появление незарегистрированного или чужого MAC адреса в порту абонента. (Анализ mac_notification trap)
  • Появление недопустимой пары MAC-IP-PORT. (Анализ address_binding fail event).
  • Выдача нового, гостевого или технического IP по DHCP.
В поле сообщение система указывает тип сообщения, а так же различную информацию помогающую анализу: ссылки на абонента привязанного к порту, и на абонентов являющихся владельцами MAC и IP адресов, фигурирующих в событии.
Рассмотрим различные ситуации, возникающие при эксплуатации сети оператора связи, и реакцию системы на эти ситуации.

Подключение нового абонента

При монтаже кабеля для подключения нового абонента возможны два варианта. Либо порт куда подключен кабель известен и тогда в информационной системе его можно будет привязать к абоненту, либо при монтаже кабель включается в любой свободный порт. В первом случае при запросе компьютером IP по DHCP, ему будет выдан нормальный IP адрес, и в зависимости от настроек системы либо сразу будет открыт доступ в интернет, либо нужно подтвердить подключение, например в личном кабинете абонента. В случае если порт не известен, то компьютер получит адрес из гостевой сети, и тогда сотрудник выполняющий подключение сможет зайти в web-интерфейс системы, завести компьютер, при этом MAC адрес может быть определен на основании IP, с которого зашли в web-интерфейс, а абонент может быть выбран из списка активных подключений для данной IP сети.

Диагностика неисправностей в сети используя ноутбук тех. поддержки

При диагностики работы сети, бывает удобно подключить в абонентскую линию компьютер тех. поддержки. В этом случае ноутбук получит технический IP и сможет получить доступ к необходимым ресурсам сети.
При использовании permit_ip_pool на коммутаторах, сотрудники тех. поддержки могут временно статически прописать технический IP адрес на компьютере клиента, и так же получить ограниченный доступ к ресурсам сети.

Замена порта абонента

В рамках эксплуатации возможно подозрение на неработающий порт в коммутаторе, в этом случае абонентскую линию подключают в свободный порт на этом или на соседнем коммутаторе. В этом случае при появлении активности коммутатор отправит mac_notification trap, система обработает этот трап, и так как в базе порт коммутатора числится свободным и MAC адрес известен, то система автоматически привяжет абонента к новому порту. На DHCP запрос система отдаст клиентский IP адрес независимо от того успеет ли порт прописаться к абоненту или нет.

Добавление или замена компьютера у абонента

При подключении нового компьютера, в DHCP запросе будет неизвестный MAC адрес, но известный порт, в результате система выдаст свободный IP адрес и привяжет пару MAC-IP к абоненту. И дальше в зависимости от настроек системы абонент, либо сразу сможет выйти в интернет, либо будет перенаправлен на специальную страницу, где ему будет предложено либо активировать новый компьютер в личном кабинете, либо позвонить в офис провайдеру.
Единственное исключение, это если новый MAC адрес уже заведен в базе оператора, это может произойти, либо так как этот компьютер уже работал у другого абонента, либо некорректное поведение драйвера сетевой платы (некоторые модели сетевых карт имеют одинаковый MAC адрес, при использовании стандартных драйверов Windows). Такая ситуация неотличима от попытки получить доступ в интернет за чужой счет, и в результате система выдаст гостевой IP, после этого абонент будет перенаправлен на специальную страницу, где ему будет предложено связаться с тех. поддержкой, тех. поддержка по телефону сможет выяснить все обстоятельства, и при необходимости вручную добавить новый MAC абоненту, после чего у него будет полноценный доступ в сеть.
Система корректно может работать в случае если один и тот же MAC адрес прописан за разными абонентами, даже в пределах одной IP сети, в этом случае адрес выдается в первую очередь на основании данных полученных из опции 82. Единственная проблема это возможное некорректное срабатывание автоматической привязки абонента к порту, т.к. система не сможет однозначно идентифицировать абонента, но если порты этих абонентов уже привязаны, то система будет работать полностью корректно.

Замена или добавление коммутатора

При замене одного оборудование на другое, можно переключить абонентские линии аккуратно порт в порт, в этом случае никаких изменений, с точки зрения MAC-IP-PORT привязки, в сети не будет происходить. Если же такое переключение невозможно, например из-за неудобной длинны проводов, или из-за неравнозначной замены оборудования, разделения узла связи и т.п. В этом случае можно воткнуть абонентов в произвольные порты. В информационной системе, в настройках портов коммутатора, нужно нажать на кнопку “Отвязать клиентские порты”, в результате все немагистральные порты будут считаться свободными и привяжутся к абонентам автоматически по мере появления активности в портах.
Исключением является ситуация, когда после отвязывания клиентских портов у абонента не было активности на его текущих портах, и первая активность будет от неизвестного в системе оборудования. В этом случае абонент будет перенаправлен на гостевую страницу, и далее тех. поддержка может завести его новый компьютер по телефону.

Перепутывание проводов в коммутаторе

Перепутывание проводов аналогично замене оборудования и может быть как плановым, так и “неожиданным”. В этом случае абоненты, чьи порты перепутаны, будут перенаправляться на гостевую страницу, и будут обращаться в тех. поддержку. Тех. поддержка проанализировав MAC-IP события коммутатора сможет понять, что привязка портов не соответствует реальности, и либо руками укажет в настройках коммутатора правильную привязку, либо сбросит привязку клиентов на всем коммутаторе, и тогда привязка будет восстановлена автоматически по мере появления абонентов в сети.