Мар 23, 2015 - 0 Comments - Интересно -

Facebook открыл код инструментария для симуляции работы в проблемных сетях

Facebook представил новый открытый проект ATC (Augmented Traffic Control), предназначенный для организации тестирования приложений в условиях их применения в сетях различного качества. ATC позволяет симулировать такие ситуации, как падение пропускной способности, возникновение задержек в передаче пакетов, различные уровни потери и повреждения пакетов, нарушение порядка следования пакетов.

Код ATC написан на языке Python и распространяется под лицензией BSD. Инструментарий состоит из двух компонентов: web-интерфейс на базе фреймворка Django для управления процессом симуляции и демон atcd, который запускается на сетевом шлюзе и вносит те или иные изменения в характер прохождения трафика. Для влияния на трафик применяются штатные механизмы ядра Linux, доступ к которым производится через API netlink, для работы с которым применяется pyroute2. Взаимодействие web-интерфейса и демона управления трафиком построено с использованием REST API и интерфейса Apache Thrift.

Для оценки влияния сетевых аномалий, достаточно обеспечить выход исследуемой системы через сетевой шлюз, на котором установлен atcd. Симуляция применяется выборочно только к участвующим в эксперименте IP-адресам, что позволяет применять ATC на обычных шлюзах, обрабатывающих реальный трафик. Для маркировки участвующих в эксперименте пакетов применяется iptables (цель MARK в таблице mangle). Урезание трафика и внесения изменений в его характер производится с использованием методов классификации трафика (filter, class, qdisc), задаваемых утилитой tc из состава пакета iproute2.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *