traf-policy(1) FreeBSD General Commands Manual traf-policy(1) NAME traf-policy -- готовит файл описания учетной политики для ra-sum(1) SYNOPSIS traf-policy [-i InFile] [-o OutFile] [-d] [-t] [-v] [-h] DESCRIPTION traf-policy транслирует описание учетной политики из текстового вида в двоичный и наоборот. Следующие опции применимы к traf-policy: -t Задает трансляцию из текста в двоичный файл. -d Задает трансляцию из двоичного файла в текст. -i Указывается имя входного файла. Если не указан, то входные данные берутся из стандартного ввода. -o Указывается имя выходного файла. Если не указан, то выходные данные поступают в стандартный вывод. -v verbose - отладочная печать. Можно ставить несколько -v для увеличения подробности этой печати. -h Выдает краткую справку по этой программе. EXAMPLES Для заданного клиента категория трафика определяется по IP адресу, с которым клиент обменивается трафиком. Для определения категории этот IP адрес обрабатывается политикой. Политика представляет двоичное дерево, где каждый узел может быть либо оператором сравнения и иметь 2-х потомков ("сравнился" и "не сравнился") либо быть листом, в этом случае лист несет два номера категории трафика для входящего и для исходящего. Оператор сравнения имеет IP адрес и маску, результат сравнения/несравне- ния входного файла оператором определяет следующий узел по ветке "срав- нился" или "не сравнился". Когда обработка достигнет листа, то из него берется один из двух номеров категории трафика в зависимости от того, входящий трафик или исходящий. Маска понимается не в смысле маски IP сети, а как обычное двоичное число, с формой записи, привычной по IP. Текстовый файл для трансляции в файл политики состоит из 5 колонок, стоки с оператором выглядят так: 1 номер строки, начиная с 0; 2 IP адрес, стандартная запись из 4 байтов через точку; 3 маска, произвольное 32 разрядное число, запись из 4 байтов через точку; 4 номер следующей обрабатываемой строки, если адрес соответствует паре адрес/маска в этой строке; 5 номер следующей обрабатываемой строки, если адрес не соответствует паре адрес/маска в этой строке; Строки с листами записываются так: 1 номер строки, начиная с 0; 2 0.0.0.0 3 0.0.0.0 4 номер категории входящего трафика; 5 номер категории исходящего трафика; Пример текстового файла описания политики, где приписываем трафику с/на приватные сети категорию 0/1, а остальному трафику категорию 2/3 (In/Out): 0 0.0.0.0 245.0.0.0 1 4 1 0.0.0.0 255.0.0.0 3 2 2 10.0.0.0 255.0.0.0 3 4 3 0.0.0.0 0.0.0.0 0 1 4 127.0.0.0 255.0.0.0 3 7 5 0.0.0.0 0.0.0.0 0 0 6 0.0.0.0 0.0.0.0 0 0 7 172.16.0.0 255.240.0.0 3 8 8 192.168.0.0 255.255.0.0 3 9 9 0.0.0.0 0.0.0.0 2 3 В 0-й строке мы пытаемся выделить для строки 1 10.0.0.0/8 и 0.0.0.0/8 сети, но заодно выделяем для обработки в 1-й строке 8.0.0.0/8 и 2.0.0.0/8 сети. далее в строках 1 и 2 мы отправляем 10.0.0.0/8 и 0.0.0.0/8 сети на 3 строку, в которой приписаны категории 0 и 1 для входящего и изходящего трафика. Остальные же сети попадают на обработку на 4 строку, где сеть 127.0.0.0/8 выделяется снова на 3 строку. Строки 5 и 6 - пустые. На строках 7 и 8 выделяются сети 172.16.0.0/20 и 192.168.0.0/16 соответ- ственно, и все остальное попадает на строку 9 где не приватным сетям при- писывается категория 2/3 (In/Out). Этот же пример можно описать чуть менее оптимально по скорости обработки, зато понятно - в духе привычных ACL: 0 0.0.0.0 255.0.0.0 5 1 1 10.0.0.0 255.0.0.0 5 2 2 127.0.0.0 255.0.0.0 5 3 3 172.16.0.0 255.240.0.0 5 4 4 192.168.0.0 255.255.0.0 5 6 5 0.0.0.0 0.0.0.0 0 1 6 0.0.0.0 0.0.0.0 2 3 Обработка всегда начинается с 0-й строки. SEE ALSO ra-sum(1), traf-db(1). HISTORY traf-policy написана в 2000 году для работы в системе учета трафика кли- ентов traf-tools. AUTHORS Александр Бабайлов (aka @BABOLO) .@babolo.ru http://www.links.ru/~babolo/ BUGS Программа очень примитивная, написана только для того, что бы не набивать в шестнадцатеричном редакторе файл политики и может не намного больше, и только чуть удобнее шестнадцатеричного редактора. Вместо нее (из нее?) должна быть сделана более умная программа с более свободным форматом, комментариями и оптимизацией. Результат перевода из двоичного вида в текст неприменим без некоторой правки для трансляции из текста в двоичный вид. 10 September 2000