Администратор фрях!
Подскажите мне по домашнему серверу, сам я уже 4 года не в профессии и поэтому нуждаюсь в совете. Сделал я домашний сервер со всем, что мне надо. Остался вопрос по firewall, вернее управлению трафиком. А хочется сделать вот что:
Приоритет http со всех машин в домашней сети (то есть на сервере стоит торрент, что бы его резало временно при запросах и трафике по http), приоритет входящего igmp трафика (что бы IPTV не тормозило) и прочие мелочи типа Skype, SIP и прочего в приоритете.
А теперь сообственно вопрос — реализуется ли такое на ipfw или переползать на pf.
Канал 50мб, машинка на P4 3.0 с гигом памяти (я думаю pf вытянет). Если тыкните куда нибуть в статьи/мануалы и прочие вкусняшки буду благадарен.

Tagged with →  

4 Responses to Администратор фрях! FreeBSD

  1. Dergreen:

    Есть почти такая конструкция для ipfw.

    urate=10Mbit/s
    drate=10Mbit/s

    # Эти TCP-порты будут иметь больший приоритет, нежели остальные.
    # Не идеально, но верно для большинства случаев.
    gtcp=»20,21,22,23,25,80,110,179,443,3389,8080,8081″

    # Вес для разных классов трафика
    gtw=50 # Высокоприоритетный TCP
    btw=20 # Остальной TCP
    ipw=30 # Остальной IP (в основном, это UDP)

    # Общий фаервол
    # Общие пайпы до 100
    $ipfw pipe 100 config bw $drate
    $ipfw pipe 200 config bw $urate

    # WAN -> LAN
    $ipfw queue 111 config weight $gtw queue 50 pipe 100 gred 0.002/5/15/0.05 mask dst-ip 0xffffffff
    $ipfw queue 112 config weight $btw queue 50 pipe 100 gred 0.002/5/15/0.05 mask dst-ip 0xffffffff
    $ipfw queue 113 config weight $ipw queue 50 pipe 100 mask dst-ip 0xffffffff

    # LAN -> WAN
    $ipfw queue 211 config weight $gtw queue 50 pipe 200 gred 0.002/5/15/0.05 mask src-ip 0xffffffff
    $ipfw queue 212 config weight $btw queue 50 pipe 200 gred 0.002/5/15/0.05 mask src-ip 0xffffffff
    $ipfw queue 213 config weight $ipw queue 50 pipe 200 mask src-ip 0xffffffff

    Дальше шейпится как-то так:

    ${ipfw} pipe 12020 config bw 512Kbit/s
    ${ipfw} pipe 12021 config bw 512Kbit/s
    ${ipfw} add 12020 pipe 12020 ip from any to any recv vlan202 xmit vlan4019
    ${ipfw} add 12020 pipe 12021 ip from any to any recv vlan4019 xmit vlan202
    ${ipfw} add 12021 queue 111 tcp from any to any $gtcp recv vlan202 xmit vlan4018
    ${ipfw} add 12021 queue 111 tcp from any $gtcp to any recv vlan202 xmit vlan4018
    ${ipfw} add 12022 pass tcp from any to any $gtcp recv vlan202 xmit vlan4018
    ${ipfw} add 12022 pass tcp from any $gtcp to any recv vlan202 xmit vlan4018
    ${ipfw} add 12023 queue 112 tcp from any to any recv vlan202 xmit vlan4018
    ${ipfw} add 12023 pass tcp from any to any recv vlan202 xmit vlan4018
    ${ipfw} add 12024 queue 113 ip from any to any recv vlan202 xmit vlan4018
    ${ipfw} add 12024 pass ip from any to any recv vlan202 xmit vlan4018
    ${ipfw} add 12025 queue 211 tcp from any to any $gtcp recv vlan4018 xmit vlan202
    ${ipfw} add 12025 queue 211 tcp from any $gtcp to any recv vlan4018 xmit vlan202
    ${ipfw} add 12026 pass tcp from any to any $gtcp recv vlan4018 xmit vlan202
    ${ipfw} add 12026 pass tcp from any $gtcp to any recv vlan4018 xmit vlan202
    ${ipfw} add 12027 queue 212 tcp from any to any recv vlan4018 xmit vlan202
    ${ipfw} add 12027 pass tcp from any to any recv vlan4018 xmit vlan202
    ${ipfw} add 12028 queue 213 ip from any to any recv vlan4018 xmit vlan202
    ${ipfw} add 12028 pass ip from any to any recv vlan4018 xmit vlan202

    Здесь vlan202 — интерфейс на клиента, vlan4018 — мировой сегмент, vlan4019 — локальный IX.

  2. Dergreen:

    Есть почти такая конструкция для ipfw.

    urate=10Mbit/s
    drate=10Mbit/s

    # Эти TCP-порты будут иметь больший приоритет, нежели остальные.
    # Не идеально, но верно для большинства случаев.
    gtcp=»20,21,22,23,25,80,110,179,443,3389,8080,8081″

    # Вес для разных классов трафика
    gtw=50 # Высокоприоритетный TCP
    btw=20 # Остальной TCP
    ipw=30 # Остальной IP (в основном, это UDP)

    # Общий фаервол
    # Общие пайпы до 100
    $ipfw pipe 100 config bw $drate
    $ipfw pipe 200 config bw $urate

    # WAN -> LAN
    $ipfw queue 111 config weight $gtw queue 50 pipe 100 gred 0.002/5/15/0.05 mask dst-ip 0xffffffff
    $ipfw queue 112 config weight $btw queue 50 pipe 100 gred 0.002/5/15/0.05 mask dst-ip 0xffffffff
    $ipfw queue 113 config weight $ipw queue 50 pipe 100 mask dst-ip 0xffffffff

    # LAN -> WAN
    $ipfw queue 211 config weight $gtw queue 50 pipe 200 gred 0.002/5/15/0.05 mask src-ip 0xffffffff
    $ipfw queue 212 config weight $btw queue 50 pipe 200 gred 0.002/5/15/0.05 mask src-ip 0xffffffff
    $ipfw queue 213 config weight $ipw queue 50 pipe 200 mask src-ip 0xffffffff

    Дальше шейпится как-то так:

    ${ipfw} pipe 12020 config bw 512Kbit/s
    ${ipfw} pipe 12021 config bw 512Kbit/s
    ${ipfw} add 12020 pipe 12020 ip from any to any recv vlan202 xmit vlan4019
    ${ipfw} add 12020 pipe 12021 ip from any to any recv vlan4019 xmit vlan202
    ${ipfw} add 12021 queue 111 tcp from any to any $gtcp recv vlan202 xmit vlan4018
    ${ipfw} add 12021 queue 111 tcp from any $gtcp to any recv vlan202 xmit vlan4018
    ${ipfw} add 12022 pass tcp from any to any $gtcp recv vlan202 xmit vlan4018
    ${ipfw} add 12022 pass tcp from any $gtcp to any recv vlan202 xmit vlan4018
    ${ipfw} add 12023 queue 112 tcp from any to any recv vlan202 xmit vlan4018
    ${ipfw} add 12023 pass tcp from any to any recv vlan202 xmit vlan4018
    ${ipfw} add 12024 queue 113 ip from any to any recv vlan202 xmit vlan4018
    ${ipfw} add 12024 pass ip from any to any recv vlan202 xmit vlan4018
    ${ipfw} add 12025 queue 211 tcp from any to any $gtcp recv vlan4018 xmit vlan202
    ${ipfw} add 12025 queue 211 tcp from any $gtcp to any recv vlan4018 xmit vlan202
    ${ipfw} add 12026 pass tcp from any to any $gtcp recv vlan4018 xmit vlan202
    ${ipfw} add 12026 pass tcp from any $gtcp to any recv vlan4018 xmit vlan202
    ${ipfw} add 12027 queue 212 tcp from any to any recv vlan4018 xmit vlan202
    ${ipfw} add 12027 pass tcp from any to any recv vlan4018 xmit vlan202
    ${ipfw} add 12028 queue 213 ip from any to any recv vlan4018 xmit vlan202
    ${ipfw} add 12028 pass ip from any to any recv vlan4018 xmit vlan202

    Здесь vlan202 — интерфейс на клиента, vlan4018 — мировой сегмент, vlan4019 — локальный IX.

  3. Dergreen:

    : парсер как всегда. смысл шейпера в том, что мировой трафик шейпится до скорости, указанной в пайпах 12020 и 12021, локальный же IX отдается на скорости до 10 мбит с приоретизацией, равномерным разделением на произвольное кол-во клиентов и т.д.

  4. ZinMega:

    :Спасиб, разберу на примерах. Попробую, как с ним будет.

Добавить комментарий