The OpenNET Project / Index page

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

Распределение трафика между двумя каналами во FreeBSD
Во FreeBSD 7 появилась возможность задания множественных таблиц маршрутизаций.
В ядре отвечает за это опция:

    options ROUTETABLES=[количество таблиц]

Распределения трафика будет осуществляться средствами пакетного фильтра ipfw.

Задаем маршруты по умолчанию:

    setfib 0 route add default 1.0.1.1 # таблица по умолчанию
    setfib 1 route add default 1.1.1.1 # новая таблица

Файл конфигурации для запуска ipfw:

    cmd="/sbin/ipfw"
    $cmd add 10 check-state
    $cmd add 20 prob 0.5 setfib 0 tcp from 192.168.0.0/16 to not 192.168.0.0/16 setup keep-state
    $cmd add 30 setfib 1 tcp from 192.168.0.0/16 to not 192.168.0.0/16 setup keep-state
    $cmd add 40 allow all from any to any

Таким образом мы задаем распределение трафика 50/50. Если каналы не равноценные
то нужно выставить процентную весомость этих каналов.

Трансляция адресов (NAT).

Под эту задачу я выбрал ipnat, реализацию NAT от фаервола ipf.

пример /etc/ipnat.rules:

    map vlan0 192.168.0.0/16 -> 1.0.1.1/32
    map tun0 192.168.0.0/16 -> 1.1.1.1/32

Также можно выбрать демон natd или новый, работающий на уровне ядра, NAT,
который появился во FreeBSD 7.
 
18.08.2009 , Автор: pehlle , Источник: http://bsd.ucd.uz/raspredelenie-tra...
Ключи: nat, ipfw, balance, bandwidth, limit, traffic, freebsd / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / Пакетные фильтры и фаерволы / Пакетный фильтр в FreeBSD: ipfw, IP-Filter

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, john doe, 14:05, 18/08/2009 [ответить] [смотреть все]
  • +/
    А то-же самое, но для pf -- реализуемо?

     
     
  • 2.2, mr_gfd, 14:19, 18/08/2009 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    http unix derkeiler com Mailing-Lists FreeBSD net 2009-01 msg00119 html Рекоме... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.10, nanodaemon, 04:07, 19/08/2009 [^] [ответить] [смотреть все]  
  • +/
    по каким же причинам рекомендуют pf в BSD умел балансировать задолго до того ... весь текст скрыт [показать]
     
  • 2.9, iZEN, 00:14, 19/08/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Насчёт балансировки трафика между двумя каналами есть статья в журнале Системны... весь текст скрыт [показать] [показать ветку]
     
  • 1.3, pehlle, 14:48, 18/08/2009 [ответить] [смотреть все]  
  • +/
    там ошибка в скрипте, не $cmd="/sbin/ipfw",
    а cmd="/sbin/ipfw"
     
  • 1.4, shutdown now, 14:52, 18/08/2009 [ответить] [смотреть все]  
  • +/
    а почему два раза "prob 0.5", по идее, должно быть один раз, а то 1/4 трафика будет 40-ым правилом обрабатываться.
     
     
  • 2.6, pehlle, 15:23, 18/08/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    вы правильно говорите правильнее будет так cmd add 20 prob 0 5 setfib 0 tcp f... весь текст скрыт [показать] [показать ветку]
     
  • 1.5, terminus, 15:05, 18/08/2009 [ответить] [смотреть все]  
  • +/
    Проверяли, это нормально работает? Просто мне кажется что при таком конфиге TCP пакеты с вероятностью 1/2 будут прыгать между каналами, даже в случае когда обмен происходит в рамках одной сесии (IP:TCP <-> IP:TCP). Если потом пропускать еще и через нат, то в итоге IP_назначения будет получать TCP пакеты с двух IP.
    ЕМНИП то дополнительные параметры такие как prob будут срабатывать даже при проходе через check-stale. У nuclight подробно было написано про это:
    http://nuclight.livejournal.com/124348.html
     
  • 1.7, pehlle, 16:26, 18/08/2009 [ответить] [смотреть все]  
  • +/
    сорри :(, оказывается такое не работает. заметку можно удалить или наоборот дополнить, может быть у кого нить что нибудь с данным направлением че нить получиться. Меня сбило с понтолыки, что пакетики бегали на обоих каналах, оказывается, при проверке когда в правило ставиш флаг setup, то при keep-state, оно должно как бы закэшироваться, но не кэшируется.
     
     
  • 2.12, XoRe, 16:20, 19/08/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да ладно, рациональное зерно все равно есть Могу порекомендовать тот вариант, к... весь текст скрыт [показать] [показать ветку]
     
  • 1.8, shutdown now, 16:54, 18/08/2009 [ответить] [смотреть все]  
  • +/
    в 8-ой фре есть ECMP (Equal Cost Multipath Routing), он должен делить поровну.
    А если ещё и NAT, то тогда вот - http://wiki.opennet.ru/FreeBSD_Balance
     
  • 1.11, XoRe, 16:19, 19/08/2009 [ответить] [смотреть все]  
  • +/
    Для раскидывания пакетов по двум каналам не обязательны множественные таблицы ма... весь текст скрыт [показать]
     
     
  • 2.13, iZEN, 19:40, 19/08/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    PF&ALTQ
     
     
  • 3.15, XoRe, 13:05, 21/08/2009 [^] [ответить] [смотреть все]  
  • +/
    >PF&ALTQ

    А можно поподробнее?
    Если честно, не понятно, о чем это вы)
    Вы поддерживаете мою мысль и говорите, чем это можно сделать?
    Или хотите сказать, что с помощью PF&ALTQ можно сделать балансировку без проблем с mail.ru?

     
     
  • 4.17, iZEN, 16:16, 21/08/2009 [^] [ответить] [смотреть все]  
  • +/
    >>PF&ALTQ
    >
    >А можно поподробнее?
    >Если честно, не понятно, о чем это вы)
    >Вы поддерживаете мою мысль и говорите, чем это можно сделать?
    >Или хотите сказать, что с помощью PF&ALTQ можно сделать балансировку без проблем
    >с mail.ru?

    Подробнее:
    1. http://house.hcn-strela.ru/BSDCert/BSDA-course/apcs02.html#pf-queue
    2. http://house.hcn-strela.ru/BSDCert/BSDA-course/apcs02.html#pf-pools-balance-o


     
     
  • 5.18, XoRe, 13:05, 22/08/2009 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Ход ваших мыслей мне понятен Во всяком случае, я на это... весь текст скрыт [показать]
     
  • 1.14, Alive, 13:58, 20/08/2009 [ответить] [смотреть все]  
  • +/
    Согласен с товаришем XoRe. Без полноценного multipath routing правильную балансировку не сделаешь.
     
     
  • 2.16, XoRe, 13:05, 21/08/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >Согласен с товаришем XoRe. Без полноценного multipath routing правильную балансировку не сделаешь.
    >

    Я бы сказал, без своих IP адресов)

     
  • 1.20, ro, 20:50, 25/08/2009 [ответить] [смотреть все]  
  • +/
    а можно сделать ,как в линуксе,чтобы в зависимости от нагрузки каналов распределял?
     
     
  • 2.21, XoRe, 21:48, 31/08/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >а можно сделать ,как в линуксе,чтобы в зависимости от нагрузки каналов распределял?
    >

    А можно поподробнее про "как в линуксе"? )

     
     
  • 3.22, Merridius, 23:54, 19/12/2010 [^] [ответить] [смотреть все]  
  • +/
    >>а можно сделать ,как в линуксе,чтобы в зависимости от нагрузки каналов распределял?

    А можно купить циску в которой есть и multipath routing и ip sla и не парить себе мозг.

     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor