Перейти к содержимому
Калькуляторы

Приотеризация на 80, 8080 порты на базе IPFW на Freebbsd 9 что делаю не так.

По порядку.

Задача приотеризировать трафик на границе сети по 80, 8080 портам. Для этого собрать мост на Freebsd 9 и решить вытекающие из этого задачи. Но что у меня не очень получается.

По порядку что я сделал

1. Собрал ядро включив опции

 

options IPFIREWALL

options IPFIREWALL_FORWARD

options IPFIREWALL_VERBOSE

options IPFIREWALL_DEFAULT_TO_ACCEPT

options DUMMYNET

options IPDIVERT

options ALTQ

options ALTQ_CBQ

options ALTQ_RED

options ALTQ_RIO

options ALTQ_HFSC

options ALTQ_CDNR

options ALTQ_PRIQ

options ALTQ_NOPCC

options ALTQ_DEBUG

device pf

device pflog

device pfsync

#ALTQ на всякий случай

2. Внес изменения в /etc/rc.conf sshd_enable="YES"

moused_enable="YES"

powerd_enable="YES"

# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable

dumpdev="NO"

cloned_interfaces="bridge0"

ifconfig_bridge0="addm re0 addm re1 up"

ifconfig_re0="up"

ifconfig_re1="up"

firewall_enable="YES"

firewall_script="/etc/ipfw.rules"

firewall_logging="yes"

dummynet_enable="yes"

fsck_y_enable="yes"

background_fsck="no"

3. Cформировал правила файрвола

#!/bin/sh

cmd="ipfw -q"

lan=re0 # Net0

wan=re1 # Net1 °

urate=14000kbit/s

drate=14000kbit/s

gtcp="80,443,8080,8081"

gtw=3 #high priority

btw=2 # other tcp

ipw=4 #udp

 

$cmd flush

$cmd pipe flush

 

$cmd pipe 100 config bw $drate

$cmd pipe 200 config bw $urate

 

# WAN -> LAN

$cmd queue 111 config weight $gtw queue 50 pipe 100 gred 0.002/5/15/0.05 mask dst-ip 0xffffffff

$cmd queue 112 config weight $btw queue 50 pipe 100 gred 0.002/5/15/0.05 mask dst-ip 0xffffffff

$cmd queue 113 config weight $ipw queue 50 pipe 100 mask dst-ip 0xffffffff

 

# LAN -> WAN

$cmd queue 211 config weight $gtw queue 50 pipe 200 gred 0.002/5/15/0.05 mask src-ip 0xffffffff

$cmd queue 212 config weight $btw queue 50 pipe 200 gred 0.002/5/15/0.05 mask src-ip 0xffffffff

$cmd queue 213 config weight $ipw queue 50 pipe 200 mask src-ip 0xffffffff

 

 

# WAN -> LAN

$cmd add queue 111 tcp from any to any $gtcp out xmit $lan

$cmd add queue 111 tcp from any $gtcp to any out xmit $lan

$cmd add queue 112 tcp from any to any out xmit $lan

$cmd add queue 113 ip from any to any out xmit $lan

# LAN -> WAN

$cmd add queue 211 tcp from any to any $gtcp out xmit $wan

$cmd add queue 211 tcp from any $gtcp to any out xmit $wan

$cmd add queue 212 tcp from any to any out xmit $wan

$cmd add queue 213 ip from any to any out xmit $wan

 

Вроде бы все верно.

 

Но теперь смотрю

 

# ipfw pipe show

00200: 14.000 Mbit/s 0 ms burst 0

q131272 50 sl. 0 flows (1 buckets) sched 65736 weight 0 lmax 0 pri 0 droptail

sched 65736 type FIFO flags 0x0 0 buckets 0 active

00100: 14.000 Mbit/s 0 ms burst 0

q131172 50 sl. 0 flows (1 buckets) sched 65636 weight 0 lmax 0 pri 0 droptail

sched 65636 type FIFO flags 0x0 0 buckets 0 active

 

А там пусто. Хотя связь есть.

 

Подскажите где я что не учел?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ipfw - как следует из названия, фаервол уровня 3 и выше. Для L2 чуть похже был приделан костыль, который активируется через sysctl.

То что вы объединили в бридж - означает что весь траф попёр между портами, в обход сетевого стёка фри, тк для неё это интерфейс без адреса л3 (л2 она вроде берёт у одного из физических или генерит).

 

Я хз как сделать приоритезацию на прозрачном л2 для отдельных л4.

Из вариантов могу предложить стать л3 и дальше как обычно...

Можно поиграться с ng_ether + ng_bpf + ng_car.

 

Для ALTQ нужно, по хорошему, зажимать полосу ниже имеющейся, чтобы иметь возможность пропускать что то приоритетно, и с длинами очередей там нужно играть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ipfw - как следует из названия, фаервол уровня 3 и выше. Для L2 чуть похже был приделан костыль, который активируется через sysctl.

То что вы объединили в бридж - означает что весь траф попёр между портами, в обход сетевого стёка фри, тк для неё это интерфейс без адреса л3 (л2 она вроде берёт у одного из физических или генерит).

 

Я хз как сделать приоритезацию на прозрачном л2 для отдельных л4.

Из вариантов могу предложить стать л3 и дальше как обычно...

Можно поиграться с ng_ether + ng_bpf + ng_car.

 

Для ALTQ нужно, по хорошему, зажимать полосу ниже имеющейся, чтобы иметь возможность пропускать что то приоритетно, и с длинами очередей там нужно играть.

Ну так вот я открыл файл /etc/sysctl.conf

и добавил туда

 

net.inet.ip.fw.verbose=1

net.inet.ip.fw.verbose_limit=5

net.link.bridge.ipfw=1

net.inet.ip.dummynet.hash_size=1024

net.inet.ip.fw.dyn_buckets=1024

 

разве этого не достаточно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

RTFM.

Я не спец по ipfw...

а спецов здесь нет ?

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы лучше сделайте FreeBSD роутером и всё нормально настройте.

С мостом в данном случае возни будет больше.

Он действительно необходим?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы лучше сделайте FreeBSD роутером и всё нормально настройте.

С мостом в данном случае возни будет больше.

Он действительно необходим?

но он у меня должен стоять как щейпер на общий канал между роутером смотрящим в Интернет и самим Интернетом.

BGP у меня нет и провайдер верхнего уровня дает все /29. Если настрою как роутер часть адресов нужно будет использовать верно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

но он у меня должен стоять как щейпер на общий канал между роутером смотрящим в Интернет и самим Интернетом.

Если есть FreeBSD, зачем ещё отдельный роутер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда-то игрались так:

 

$IPFW pipe 23 config bw 10444Kbit/s mask dst-ip 0xffffffff
$IPFW pipe 24 config bw 10444Kbit/s mask src-ip 0xffffffff

########pipe 24
$IPFW sched 24 config type QFQ mask src-ip 0xffffff00
$IPFW queue 241 config sched 24 weight 10
$IPFW queue 242 config sched 24 weight 8
$IPFW queue 243 config sched 24 weight 4
$IPFW queue 244 config sched 24 weight 1
$IPFW add queue 241 ip from table\(101\) to any via igb1 out proto udp dst-port 5060
$IPFW add queue 242 ip from table\(101\) to any via igb1 out proto tcp dst-port 80,443,8080
$IPFW add queue 243 ip from table\(101\) to any via igb1 out proto tcp dst-port 5223, 2009, 2106, 3724, 6112, 6881-6999, 7777, 27000-27050, 42292
$IPFW add queue 243 ip from table\(101\) to any via igb1 out proto udp dst-port 53, 5223, 3478, 3479, 3658, 1200, 5000-5009, 6112-6119, 6881-6999, 7777, 7788, 7787, 20500, 20510, 27000-27050, 27900, 28960
$IPFW add queue 243 ip from table\(101\) to any via igb1 out proto icmp
$IPFW add queue 244 ip from table\(101\) to any via igb1 out
########pipe 23
$IPFW sched 23 config type QFQ mask dst-ip 0xffffff00
$IPFW queue 231 config sched 23 weight 10
$IPFW queue 232 config sched 23 weight 8
$IPFW queue 233 config sched 23 weight 4
$IPFW queue 234 config sched 23 weight 1
$IPFW add queue 231 ip from any to table\(100\) via igb0 out proto udp src-port 5060
$IPFW add queue 232 ip from any to table\(100\) via igb0 out proto tcp src-port 80,443,8080
$IPFW add queue 233 ip from any to table\(100\) via igb0 out proto tcp src-port 5223, 2009, 2106, 3724, 6112, 6881-6999, 7777, 27000-27050, 42292
$IPFW add queue 233 ip from any to table\(100\) via igb0 out proto udp src-port 53, 5223, 3478, 3479, 3658, 1200, 5000-5009, 6112-6119, 6881-6999, 7777, 7788, 7787, 20500, 20510, 27000-27050, 27900, 28960
$IPFW add queue 233 ip from any to table\(100\) via igb0 out proto icmp
$IPFW add queue 234 ip from any to table\(100\) via igb0 out

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда-то игрались так:

 

$IPFW pipe 23 config bw 10444Kbit/s mask dst-ip 0xffffffff
$IPFW pipe 24 config bw 10444Kbit/s mask src-ip 0xffffffff

########pipe 24
$IPFW sched 24 config type QFQ mask src-ip 0xffffff00
$IPFW queue 241 config sched 24 weight 10
$IPFW queue 242 config sched 24 weight 8
$IPFW queue 243 config sched 24 weight 4
$IPFW queue 244 config sched 24 weight 1
$IPFW add queue 241 ip from table\(101\) to any via igb1 out proto udp dst-port 5060
$IPFW add queue 242 ip from table\(101\) to any via igb1 out proto tcp dst-port 80,443,8080
$IPFW add queue 243 ip from table\(101\) to any via igb1 out proto tcp dst-port 5223, 2009, 2106, 3724, 6112, 6881-6999, 7777, 27000-27050, 42292
$IPFW add queue 243 ip from table\(101\) to any via igb1 out proto udp dst-port 53, 5223, 3478, 3479, 3658, 1200, 5000-5009, 6112-6119, 6881-6999, 7777, 7788, 7787, 20500, 20510, 27000-27050, 27900, 28960
$IPFW add queue 243 ip from table\(101\) to any via igb1 out proto icmp
$IPFW add queue 244 ip from table\(101\) to any via igb1 out
########pipe 23
$IPFW sched 23 config type QFQ mask dst-ip 0xffffff00
$IPFW queue 231 config sched 23 weight 10
$IPFW queue 232 config sched 23 weight 8
$IPFW queue 233 config sched 23 weight 4
$IPFW queue 234 config sched 23 weight 1
$IPFW add queue 231 ip from any to table\(100\) via igb0 out proto udp src-port 5060
$IPFW add queue 232 ip from any to table\(100\) via igb0 out proto tcp src-port 80,443,8080
$IPFW add queue 233 ip from any to table\(100\) via igb0 out proto tcp src-port 5223, 2009, 2106, 3724, 6112, 6881-6999, 7777, 27000-27050, 42292
$IPFW add queue 233 ip from any to table\(100\) via igb0 out proto udp src-port 53, 5223, 3478, 3479, 3658, 1200, 5000-5009, 6112-6119, 6881-6999, 7777, 7788, 7787, 20500, 20510, 27000-27050, 27900, 28960
$IPFW add queue 233 ip from any to table\(100\) via igb0 out proto icmp
$IPFW add queue 234 ip from any to table\(100\) via igb0 out

А как включить работу IPFW на интерфейсах моста

т.е. есть bridge0 в его составе re0 и re1 ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

net.link.bridge.pfil_onlyip

net.link.bridge.pfil_member

 

UPD: Случайно наткнулся на пост, который автору стоит прочесть.

Изменено пользователем snark

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.