Всем доброго времени.Обращаюсь к Вам знатоки.
Имею шлюз, на нем ipfw+pf.
pf фильтрует все что должно заходить снаружи, по IP и по портам
ipfw разруливает все остальное.
Есть подсеть 192.168.0.0/24 и из нее юзеры бегают в инет часть через проксю(с фильтрацией и запретами), а часть напрямую. Тут как бы все нормально и ничего нигде не подрезаю.
Появилась необходимость выделить небольшую подсеть 172.16.201.0/29 и загнать ее в трубу, при чем целиком, а не отдельно каждый IP.
Что было сделано.
В начале конфига ipfw приписан запуск скрипта, который перебивает pipe, вот его содержимое:
# cat pipe.sh
#!/bin/sh
f=/sbin/ipfw
${f} -f pipe flush
${f} pipe 1 config bw 1024Kbit/s
### Otdel_1
${f} pipe 2011 config bw 5Mbit/s
${f} pipe 2012 config bw 1Mbit/s
И трубы успешно созданы.
Далее я добиваю 2 таблицы, table 10 и table 11, вот содержимое скрипта:
#!/bin/sh
##### Click #####
### NetMask 255.255.255.248 or /29
### Table 10 and 11
f=/sbin/ipfw
${f} table 10 add 172.16.201.2/32 2011
${f} table 11 add 172.16.201.2/32 2012
${f} table 10 add 172.16.201.3/32 2011
${f} table 11 add 172.16.201.3/32 2012
${f} table 10 add 172.16.201.4/32 2011
${f} table 11 add 172.16.201.4/32 2012
${f} table 10 add 172.16.201.5/32 2011
${f} table 11 add 172.16.201.5/32 2012
и получаю на выходе:
# ipfw table all list
---table(10)---
172.16.201.2/32 2011
172.16.201.3/32 2011
172.16.201.4/32 2011
172.16.201.5/32 2011
---table(11)---
172.16.201.2/32 2012
172.16.201.3/32 2012
172.16.201.4/32 2012
172.16.201.5/32 2012
Как бы без проблем.
Далее я в фаерволе прописываю правила:
${f} add 30010 pipe tablearg ip from table\(11\) to any
${f} add 30020 pipe tablearg ip from any to table\(10\)
И у меня входящая и исходящая режутся пополам от заявленного в трубе.
Порыскав на просторах интернета начитал, что нужно указать в правилах где исход, где вход.
Я не долго думая дописал:
${f} add 30010 pipe tablearg ip from table\(11\) to any out
${f} add 30020 pipe tablearg ip from any to table\(10\) in
и в итоге инета вообще нет.
в ipfw show мне показывет такую картину:
30010 7687 5883082 pipe tablearg ip from table(11) to any out
30020 0 0 pipe tablearg ip from any to table(10) in
Подскажите, что я делаю не так?
Нужно, чтобы юзеры из подсети 172.16.201.0/29 получали на всех отведенную ширину канала, а не каждый по 5 Мбит/сек.