The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"На чем шейпить или rate-limit'ить?"
Отправлено Денис, 18-Май-09 17:53 
>Не работало вот так:
>

[оверквотинг удален]

У меня tcpdump показывал, что ответные UDP (и ICMP) пакеты не проходили снаружи внутрь, к абоненту. На ipfw у меня dummynet, на pf [BI-]NAT. "Вскрытие" показало, что пакеты блокируются после входа в pipe, несмотря на наличие дальнейшего разрешающего правила. В итоге сделал так.

Было:
# Rule 3000: generated by utm2shaper script from billing database
$ipfw add $shapers_rulenum queue tablearg all from any to 'table(4)'  // Incoming traffic shaping
$ipfw add $shapers_rulenum queue tablearg all from 'table(5)' to any  // Outgoing traffic shaping


Стало:
# Rule 3000: generated by utm2shaper script from billing database
$ipfw add $shapers_rulenum queue tablearg all from any to 'table(4)' xmit $int_if      // Incoming traffic shaping
$ipfw add $shapers_rulenum queue tablearg all from 'table(5)' to any xmit $ext_if       // Outgoing traffic shaping

В таблицах содержатся локальные адреса пользователей и номера pipe, в которые их нужно адресовать:
root@home-vr:/root/nasscripts (308) ipfw table 4 list |head -n 3
10.54.0.8/29 141
10.54.1.8/29 69
10.54.2.8/29 19
root@home-vr:/root/nasscripts (309) ipfw table 5 list |head -n 3
10.54.0.8/29 10141
10.54.1.8/29 10069
10.54.2.8/29 10019

PF, как теперь вспомнил, не трогал, выглядит примерно вот так:
ext_if="em0"
int_if="em1"
dst_nat1="93.92.199.0/26"
dst_nat2="93.92.199.252/29"
table <allow-nat> persist file "/etc/pf.allow-nat"
table <peering-nets> const { 84.52.101.0/24 84.52.102.0/24 84.52.106.0/24 84.52.117.0/24 84.52.118.0/24 84.52.119.0/24 84.52.121.0/24 84.52.125.0/24 172.20.0.0/14 195.177.121.0/24 }
set limit { states 200000, frags 50000, src-nodes 30000 }
set state-policy if-bound
set optimization normal
set ruleset-optimization profile
set block-policy drop
set fingerprints "/etc/pf.os"
set skip on lo0
scrub in all max-mss 1440
no nat on $ext_if from <peering-nets> to any
no nat on $ext_if from any to <peering-nets>
binat-anchor "binat"
load anchor "binat" from "/etc/pf.anchor.binat"
nat on $ext_if from <allow-nat> to any -> $dst_nat1 static-port source-hash
nat on $ext_if from 10.78.78.0/24 to any -> $dst_nat2 static-port source-hash
pass in all
pass out all

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру