Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Шейпер через ipfw pipe  (Прочитано 2223 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mifey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Шейпер через ipfw pipe
« : 11 Февраля 2012, 14:14:01 »
Сильно не ругайте если чего)))

Стоит на работе шлюз на фре, отлично работает, но захотелось его перевести на линукс.
Итак, имеется тестовая машина.
root@ubuntu-router:/etc# uname -a
Linux ubuntu-router 2.6.32-38-generic #83-Ubuntu SMP Wed Jan 4 11:12:07 UTC 2012 x86_64 GNU/Linux
Собрал ipfw(брал отсюда: http://info.iet.unipi.it/~marta/dummynet/ последнюю версию ipfw3-20120119.tar.gz).
в rc.local добавил
insmod /etc/ipfw/dummynet2/ipfw_mod.ko
/etc/myfirewall.sh
Файл /etc/myfirewall.sh
root@ubuntu-router:/etc# cat
/etc/myfirewall.sh
#!/bin/sh
#сброс всех настроек
iptables -F
#сброс настроек NAT
iptables -t nat -F
#переброска пакетов между сетевыми интерфейсами разрешена
sysctl -w net.ipv4.ip_forward="1"
#NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#Конфиг IPFW
/etc/ipfw.sh
Файл /etc/ipfw.sh
root@ubuntu-router:/etc# cat /etc/ipfw.sh
#!/bin/sh
#Внешний интерфейс
oif="eth0"
oip=192.168.1.50
#Внутренний интерфейс
iif="eth1"
iip=192.168.5.1
MyLan=192.168.5.0/24
#Очищаем правила
ipfw -f flush
ipfw -f pipe flush
#pipe speed
ipfw pipe 1 config bw 1Mbit/s
#lo
ipfw add 00100 allow ip from any to any via lo0
ipfw add 00101 deny ip from any to 127.0.0.0/8
ipfw add 00102 deny ip from 127.0.0.0/8 to any
#Разрешим все в локальной сети
ipfw add 00201 allow ip from ${MyLan} to ${MyLan} via ${iif}
#Разрешим идти куда угодно из сети и получать ответы на свои запросы
ipfw add 00301 allow ip from ${MyLan} to any keep-state
#Разрешим серверу интернет
ipfw add 00401 allow ip from me to any out keep-state
#Откроем порт для ssh
ipfw add 00501 allow ip from any to me 22 in via ${oif}
#Запретим все, что не разрешено
ipfw add 00501 deny ip from any to any

Сразу скажу, что конфиги потом буду безопаснее, это пока все для тестов.
Все работает, инет раздается, но вот скорость не режется.

Если заменить
ipfw add 00201 allow ip from ${MyLan} to ${MyLan} via ${iif}на
ipfw add 00201 pipe 1 ip from ${MyLan} to ${MyLan} via ${iif}то скорость режется нормально от клиентов к серверу и обратно, но если сделать тоже самое для интернета, заменив
#Разрешим идти куда угодно из сети и получать ответы на свои запросы
ipfw add 00301 allow ip from ${MyLan} to any keep-state
на
#Разрешим идти куда угодно из сети и получать ответы на свои запросы
ipfw add 00301 pipe 1 ip from ${MyLan} to any keep-state
, то интернет на клиентах вообще пропадает.
Почему через пайп не раздается инет?


Гарри Кашпировский

  • Гость
Re: Шейпер через ipfw pipe
« Ответ #1 : 11 Февраля 2012, 14:25:01 »
Сдаётся мне вы FBSD с Linux все-таки перепутали. Почему бы не использовать штатные средства - tc и iptables?

Оффлайн mifey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Шейпер через ipfw pipe
« Ответ #2 : 11 Февраля 2012, 14:32:24 »
Сдаётся мне вы FBSD с Linux все-таки перепутали. Почему бы не использовать штатные средства - tc и iptables?
Вот хочется через ipfw резать скорость, просто и наглядно, и нравится он мне.

Оффлайн mifey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Шейпер через ipfw pipe
« Ответ #3 : 13 Февраля 2012, 12:36:54 »
Что, никто не сталкивался с этим?

 

Страница сгенерирована за 0.078 секунд. Запросов: 25.