Author Topic: распределение трафика между каналами FreeBSD  (Read 4784 times)

0 Members and 1 Guest are viewing this topic.

Offline synemo

  • Newbie
  • *
  • Posts: 23
  • Karma: +0/-0
    • http://
имется 2 выхода в интернет:
fxp0: ip 222.222.222.130 mask 255.255.255.224 gateway 222.222.222.129
fxp1: ip 111.111.111.244 mask 255.255.255.248 gateway 111.111.111.245
локалка:
dc0_alias0: ip 192.168.10.1 mask 255.255.255.128
dc0: ip 192.168.10.130 mask 255.255.255.128

нужно сеть 192.168.10.0/25 направлять в интернет через 111.111.111.245, а 192.168.10.128/25 - через 222.222.222.129

ядро собрано с параметрами:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET

скрипт firewall'а:
natd -a 111.111.111.245 -p 8668 -u -s -m
natd -a 222.222.222.129 -p 8669 -u -s -m
 
${fwcmd} add divert 8668 ip from 192.168.10.0/25 to any
${fwcmd} add fwd 111.111.111.245 ip  from 111.111.111.244 to any via fxp1
${fwcmd} add divert 8668 ip from any to 111.111.111.244 via fxp1

${fwcmd} add divert 8669 ip from 192.168.10.128/25 to any
${fwcmd} add fwd 222.222.222.129 ip  from 222.222.222.130 to any via fxp0
${fwcmd} add divert 8669 ip from any to 222.222.222.130 via fxp0

вопрос.
почему выход в интернет работает только по одному каналу, причем только по тому, который указан в качестве default в самой системе?
оба канала работоспособны, проверено. система FreeBSD 5.4 Release

Offline synemo

  • Newbie
  • *
  • Posts: 23
  • Karma: +0/-0
    • http://
Quote from: synemo
скрипт firewall'а:
natd -a 111.111.111.245 -p 8668 -u -s -m
natd -a 222.222.222.129 -p 8669 -u -s -m
на самом деле:
natd -a 111.111.111.244 -p 8668 -u -s -m
natd -a 222.222.222.130 -p 8669 -u -s -m

Offline nuclight

  • Full Member
  • ***
  • Posts: 207
  • Karma: +1/-2
    • http://antigreen.org
WBR, Nuclear Lightning
[FreeBSD][Давить зелёных]

Offline synemo

  • Newbie
  • *
  • Posts: 23
  • Karma: +0/-0
    • http://
Quote from: nuclight
http://www.opennet.ru/base/net/2_channel_balancing.txt.html
делал я как там написано, не идет почему-то  
работает только тот канал, который в дефолте указан

Offline nuclight

  • Full Member
  • ***
  • Posts: 207
  • Karma: +1/-2
    • http://antigreen.org
А счетчики на правилах какие? Покажи ipfw show
WBR, Nuclear Lightning
[FreeBSD][Давить зелёных]

Offline nbv

  • Newbie
  • *
  • Posts: 15
  • Karma: +0/-0
Quote from: synemo
${fwcmd} add fwd 111.111.111.245 ip  from 111.111.111.244 to any via fxp1
${fwcmd} add fwd 222.222.222.129 ip  from 222.222.222.130 to any via fxp0
из этих двух команд нужно оставить одну. Например если default gateway 111.111.111.245, то:
${fwcmd} add fwd 222.222.222.129 ip  from 222.222.222.130 to any out via fxp1

идея такая: для исходящих пакетов сначала отрабатывает роутинг, а потом пакеты с адреса 222.222.222.130 идущие неправильным путем "out via fxp1" мы посылаем куда надо "fwd 222.222.222.129"
« Last Edit: September 06, 2006, 14:31:18 by nbv »

Offline synemo

  • Newbie
  • *
  • Posts: 23
  • Karma: +0/-0
    • http://
Quote from: nuclight
А счетчики на правилах какие? Покажи ipfw show
счетчики на divert'ах увеличиваются, а счетчик на fwd срабатывает только тот, который стоит в системе по умолчанию.
например, если default router стоит 222.222.222.129, то срабатывает только ${fwcmd} add fwd 222.222.222.129 ip from 222.222.222.130 to any, а если по дефолту стоит 111.111.111.245, то срабатывает только  ${fwcmd} add fwd 111.111.111.245 ip from 111.111.111.244 to any

Quote from: nbv
из этих двух команд нужно оставить одну. Например если default gateway 111.111.111.245, то:
${fwcmd} add fwd 222.222.222.129 ip  from 222.222.222.130 to any out via fxp1

идея такая: для исходящих пакетов сначала отрабатывает роутинг, а потом пакеты с адреса 222.222.222.130 идущие неправильным путем "out via fxp1" мы посылаем куда надо "fwd 222.222.222.129"
пробовал, не работает.
пробовал оставлять только
${fwcmd} add divert 8668 ip from 192.168.10.0/25 to any
${fwcmd} add fwd 111.111.111.245 ip from 111.111.111.244 to any
${fwcmd} add divert 8668 ip from any to 111.111.111.244
при router default 222.222.222.129
и
${fwcmd} add divert 8669 ip from 192.168.10.128/25 to any
${fwcmd} add fwd 222.222.222.129 ip from 222.222.222.130 to any
${fwcmd} add divert 8669 ip from any to 222.222.222.130
при router default 111.111.111.245
результат нулевой.
может в 5.4 кривой ipfw? никто не сталкивался с этим? или может у меня руки кривые?  

Offline nuclight

  • Full Member
  • ***
  • Posts: 207
  • Karma: +1/-2
    • http://antigreen.org
Возможно и кривой, с форвардингом бывали баги. Попробуй в ядро добавить еще и IPFIREWALL_FORWARD_EXTENDED и покажи полный ipfw show.
WBR, Nuclear Lightning
[FreeBSD][Давить зелёных]

Offline nbv

  • Newbie
  • *
  • Posts: 15
  • Karma: +0/-0
Quote from: synemo
счетчики на divert'ах увеличиваются, а счетчик на fwd срабатывает только тот, который стоит в системе по умолчанию.
например, если default router стоит 222.222.222.129, то срабатывает только ${fwcmd} add fwd 222.222.222.129 ip from 222.222.222.130 to any, а если по дефолту стоит 111.111.111.245, то срабатывает только  ${fwcmd} add fwd 111.111.111.245 ip from 111.111.111.244 to any
пробовал, не работает.
пробовал оставлять только
${fwcmd} add divert 8668 ip from 192.168.10.0/25 to any
${fwcmd} add fwd 111.111.111.245 ip from 111.111.111.244 to any
${fwcmd} add divert 8668 ip from any to 111.111.111.244
при router default 222.222.222.129
и
${fwcmd} add divert 8669 ip from 192.168.10.128/25 to any
${fwcmd} add fwd 222.222.222.129 ip from 222.222.222.130 to any
${fwcmd} add divert 8669 ip from any to 222.222.222.130
при router default 111.111.111.245
результат нулевой.
может в 5.4 кривой ipfw? никто не сталкивался с этим? или может у меня руки кривые?  
и руки и глаза

я тебе одно написал, ты сделал что-то свое и отвечаешь с цитатой на меня что "не работает".
можно же конечно и конфиг файрвола полный составить за тебя, но если ты не поймешь как оно работает - то как ты с этим будешь работать?
 Но мы тут не политвоспитанием занимаемся . И по прожнему говорю: сделай дословно как я предложил - должно работать.
 или выкладывай полный конфиг файерволла и ната - тогда тебе можно будет показать на твою ошибку.

Offline synemo

  • Newbie
  • *
  • Posts: 23
  • Karma: +0/-0
    • http://
Quote from: nbv
и руки и глаза

я тебе одно написал, ты сделал что-то свое и отвечаешь с цитатой на меня что "не работает".
можно же конечно и конфиг файрвола полный составить за тебя, но если ты не поймешь как оно работает - то как ты с этим будешь работать?
 Но мы тут не политвоспитанием занимаемся . И по прожнему говорю: сделай дословно как я предложил - должно работать.
 или выкладывай полный конфиг файерволла и ната - тогда тебе можно будет показать на твою ошибку.

я так делал как ты говорил: оставлял только одну команду fwd. чего ты не понял?
конфиги у ната и файервола по умолчанию, т.е. нет их

а вообще проблема решается просто: добавлением в ядро опции IPFIREWALL_FORWARD_EXTENDED
http://www.unixfaq.ru/index.pl?req=qs&id=507
« Last Edit: September 11, 2006, 19:49:04 by synemo »