URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 46273
[ Назад ]

Исходное сообщение
"Второй Default router"

Отправлено Psy , 19-Июл-04 18:39 
Люди помогите!

Есть сервер FreeBSD 4.9  на нем 3 сетевухи:
sk0 - внутренний интерфейс
fxp0 - внешний интерфейс 1 | natd -n fxp0 -p 8668
fxp1 - внешний интерфейс 2 | natd -n fxp1 -p 8778

Ну то есть два ната запущено на двух внешних интерфейсов с целью подключения двух каналов для разделения трафика по портам.

Есть два DSL канала- один для одного интерфейса, другой для другого. У каждого есть свой ай пи исвой гейт.

Одна проблема... Как присвоить каждому интерфейсу свой гейт?
А то
default router
в
rc.conf

по моему можт быть только один.

Как решить проблему?


Содержание

Сообщения в этом обсуждении
"Второй Default router"
Отправлено nightowl , 19-Июл-04 19:14 
никак :-(

"Второй Default router"
Отправлено Psy , 19-Июл-04 20:01 
>никак :-(


Нее, ну должно же быть какое торешение...


"Второй Default router"
Отправлено HFSC , 19-Июл-04 20:51 
>>никак :-(
>
>
>Нее, ну должно же быть какое торешение...

pf


"Второй Default router"
Отправлено Mitch , 20-Июл-04 03:12 
опиши поточнее что ты хочеш сделать.
я могу предположить что это какой то балансинг
(между 2мя провами например ...)

суть в том что дефаултроут он 1, но ты можеш манипулировать
следующим ip куда пойдет покет в зависимости от исходного ip,
скажем слать все пакеты из одной подсети через 1ю сетевуху а из другой
через 2ю.
если это решение - то читать про source routing.

=========================
FreeBSD, Linux
Администрирование и Консультации
http://aka-root.com/


"Второй Default router"
Отправлено Psy , 20-Июл-04 08:25 
>опиши поточнее что ты хочеш сделать.
>я могу предположить что это какой то балансинг
>(между 2мя провами например ...)
>
>суть в том что дефаултроут он 1, но ты можеш манипулировать
> следующим ip куда пойдет покет в зависимости от исходного ip,
>скажем слать все пакеты из одной подсети через 1ю сетевуху а из
>другой
>через 2ю.
>если это решение - то читать про source routing.
>

Да это именно типа балансинга, только два канала от одного прова.
На двух внешних сетевухах запущенно 2 ната, как показано в начале, а правилами:

#${ipfw} add 100 divert 8668 tcp from any to any http,ftp
#${ipfw} add 101 skipto 111 tcp from any to any http,ftp
#${ipfw} add 102 divert 8668 tcp from any http,ftp to any
#${ipfw} add 103 skipto 111 tcp from any http,ftp to any
#${ipfw} add 105 divert 8778 ip from any to any

То есть весь http i ftp должны идти через первый канал, а все остальное через второй. фактически при так построенных правилах соответсвующая активность есть на обоих картах, но как проверить действительно ли каждый тип трафика идет в свой канал, а то ведб теоретичски возможно, что просто  трафик с двух натов сливается в один гейт, разве нет?


"Второй Default router"
Отправлено Max , 31-Июл-04 11:12 
>
>Да это именно типа балансинга, только два канала от одного прова.
>
тогда по договоренности с провайдером поднимай протокол маршрутизации
на своем серваке.

"Второй Default router"
Отправлено Brainbug , 20-Июл-04 09:38 
>никак :-(
Bred. Hotjabi tak:
http://www.opennet.me/opennews/art.shtml?num=2659

"Второй Default router"
Отправлено Psy , 20-Июл-04 12:22 
>>никак :-(
>Bred. Hotjabi tak:
>http://www.opennet.me/opennews/art.shtml?num=2659

Вот их пример.
route add 195.40.1.0 -netmask 255.255.255.0 -gateway 194.72.46.6 -gateway 194.72.46.62

route add 195.40.0.0
        -pathmetric 20 -gateway 194.72.46.6
        -pathmetric 5 -gateway 194.72.46.62

Но в данном случае это два гета к одному интерфейсу, а как это будет выглядеть в моем случае (два интерфейса и каждому свой гейт) нужны ли будут метрики?


"Второй Default router"
Отправлено Brainbug , 20-Июл-04 12:30 
>>>никак :-(
>>Bred. Hotjabi tak:
>>http://www.opennet.me/opennews/art.shtml?num=2659
>
>Вот их пример.
>route add 195.40.1.0 -netmask 255.255.255.0 -gateway 194.72.46.6 -gateway 194.72.46.62
>
>route add 195.40.0.0
>        -pathmetric 20 -gateway 194.72.46.6
>
>        -pathmetric 5 -gateway 194.72.46.62
>
>
>Но в данном случае это два гета к одному интерфейсу, а как
>это будет выглядеть в моем случае (два интерфейса и каждому свой
>гейт) нужны ли будут метрики?
netstat -rn ?


"Второй Default router"
Отправлено Psy , 20-Июл-04 13:14 
>netstat -rn ?

Начало, там дальше мдут все клиентские настройки.
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expi
re
default            217.159.173.33     UGSc       12  1116749   fxp0
127.0.0.1          127.0.0.1          UH          0        0    lo0
192.168.3          link#1             UC          0        0    sk0
192.168.3.8/32     00:07:95:e9:ec:59  ULS2c       0        0    sk0
192.168.3.10/32    00:10:60:f7:07:37  ULS2c       0        0    sk0

Завершение

192.168.5.58/32    00:40:f4:88:57:2e  ULS2c       0        0    sk0
192.168.5.80/32    00:80:1e:13:b1:1f  ULS2c       0        0    sk0
192.168.120        link#1             UC          0        0    sk0
192.168.250        link#1             UC          0        0    sk0
213.35.220.252/30  link#3             UC          0        0   fxp1
217.159.173.32/30  link#2             UC          1        0   fxp0
217.159.173.33     00:a0:c5:3a:02:95  UHLW       11        0   fxp0   11
31

Internet6:
Destination                       Gateway                       Flags
   Netif Expire
::1                               ::1                           UH
    lo0
fe80::%sk0/64                     link#1                        UC
    sk0
fe80::20e:a6ff:fe21:a5fa%sk0      00:0e:a6:21:a5:fa             UHL
    lo0
fe80::%fxp0/64                    link#2                        UC
   fxp0
fe80::208:c7ff:feaa:c63a%fxp0     00:08:c7:aa:c6:3a             UHL
    lo0
fe80::%fxp1/64                    link#3                        UC
   fxp1
fe80::208:c7ff:fe9a:8223%fxp1     00:08:c7:9a:82:23             UHL
    lo0
fe80::%lo0/64                     fe80::1%lo0                   Uc
    lo0
fe80::1%lo0                       link#5                        UHL
    lo0
ff01::/32                         ::1                           U
    lo0
ff02::%sk0/32                     link#1                        UC
    sk0
ff02::%fxp0/32                    link#2                        UC
   fxp0
ff02::%fxp1/32                    link#3                        UC
   fxp1
ff02::%lo0/32                     ::1                           UC
    lo0


"Второй Default router"
Отправлено Brainbug , 20-Июл-04 14:42 
>>netstat -rn ?
>
>Начало, там дальше мдут все клиентские настройки.
>Internet:
>Destination        Gateway    
>        Flags  
> Refs      Use  Netif Expi
>
>re
>default            
>217.159.173.33     UGSc      
> 12  1116749   fxp0
>127.0.0.1          127.0.0.1  
>        UH  
>       0    
>    0    lo0
>192.168.3          link#1  
>          
>UC          0
>       0    
>sk0
>192.168.3.8/32     00:07:95:e9:ec:59  ULS2c    
>  0        0
>   sk0
>192.168.3.10/32    00:10:60:f7:07:37  ULS2c      
> 0        0  
>  sk0
>
>Завершение
>
>192.168.5.58/32    00:40:f4:88:57:2e  ULS2c      
> 0        0  
>  sk0
>192.168.5.80/32    00:80:1e:13:b1:1f  ULS2c      
> 0        0  
>  sk0
>192.168.120        link#1    
>         UC  
>        0  
>     0    sk0
>192.168.250        link#1    
>         UC  
>        0  
>     0    sk0
>213.35.220.252/30  link#3          
>   UC        
>  0        0
>  fxp1
>217.159.173.32/30  link#2          
>   UC        
>  1        0
>  fxp0
>217.159.173.33     00:a0:c5:3a:02:95  UHLW    
>  11        0
>  fxp0   11
>31
>
>Internet6:
>Destination            
>          
>Gateway          
>          
> Flags
>   Netif Expire
>::1            
>          
>        ::1  
>          
>          
>  UH
>    lo0
>fe80::%sk0/64            
>         link#1  
>          
>          
>UC
>    sk0
>fe80::20e:a6ff:fe21:a5fa%sk0      00:0e:a6:21:a5:fa      
>       UHL
>    lo0
>fe80::%fxp0/64            
>        link#2  
>          
>          UC
>
>   fxp0
>fe80::208:c7ff:feaa:c63a%fxp0     00:08:c7:aa:c6:3a      
>      UHL
>    lo0
>fe80::%fxp1/64            
>        link#3  
>          
>          UC
>
>   fxp1
>fe80::208:c7ff:fe9a:8223%fxp1     00:08:c7:9a:82:23      
>      UHL
>    lo0
>fe80::%lo0/64            
>         fe80::1%lo0  
>          
>      Uc
>    lo0
>fe80::1%lo0            
>          
>link#5          
>          
>  UHL
>    lo0
>ff01::/32            
>          
>  ::1        
>          
>       U
>    lo0
>ff02::%sk0/32            
>         link#1  
>          
>          
>UC
>    sk0
>ff02::%fxp0/32            
>        link#2  
>          
>          UC
>
>   fxp0
>ff02::%fxp1/32            
>        link#3  
>          
>          UC
>
>   fxp1
>ff02::%lo0/32            
>         ::1  
>          
>          
>   UC
>    lo0
Nu tak i pi6i:
route add default -gateway <gateway_ip_1> -gateway <gateway_ip_2>

No est odno no. Vse eto meroprijatije budet rabotat tolko dla ishoda6ego trafika. Trafik skazem kotorij pri6el s 1 interfeisa i obratno bil otoslan 4erez 2, vse ravno budet prihodit 4erez 1. T.e. ishodnije adresa ne menajutca.

P.S. Zavisimost metrik o4en prostaja. Oni rabotajut kak s4et4iki. Prohoda6ij paket umen6ajet metriku dla puti. Kogda ona ravna nulu proishodit pereklu4enije na vtoroi put. Potom opjat do nula i t.d.


"Второй Default router"
Отправлено nightowl , 20-Июл-04 14:29 
>>>никак :-(
>>Bred. Hotjabi tak:
>>http://www.opennet.me/opennews/art.shtml?num=2659
>
>Вот их пример.
>route add 195.40.1.0 -netmask 255.255.255.0 -gateway 194.72.46.6 -gateway 194.72.46.62
>
>route add 195.40.0.0
>        -pathmetric 20 -gateway 194.72.46.6
>
>        -pathmetric 5 -gateway 194.72.46.62
>
>
>Но в данном случае это два гета к одному интерфейсу, а как
>это будет выглядеть в моем случае (два интерфейса и каждому свой
>гейт) нужны ли будут метрики?

да, интересно, а кто нить в живую делал это ?
и насколько от метрики зависит кол-во проходящего трафика ?


"Второй Default router"
Отправлено Psy , 20-Июл-04 14:35 
Лююди....

Так как же с проблемой разобраться... клиенты беснуются...



"Второй Default router"
Отправлено Andrew , 20-Июл-04 15:07 
>Лююди....
>
>Так как же с проблемой разобраться... клиенты беснуются...

посмотри это: http://www.opennet.me/opennews/art.shtml?num=4003

а вообще, была такая фишка - пытался на pf сделать под FreeBSD 5.x :(
получилось... только на модемах... и получилось ровно пополам...
т.е. не порядка 50 Kbps на каждом - а по 25 :(

если у тебя получиться (времени нет самому ковырять :( напиши сюда в форум.
удачи.



"Второй Default router"
Отправлено Psy , 20-Июл-04 16:09 
Должно быть решение....



"Второй Default router"
Отправлено Psy , 20-Июл-04 17:06 
>Должно быть решение....

А кто что думает про это:
http://lists.freebsd.org/pipermail/freebsd-net/2004-March/00...


"Второй Default router"
Отправлено Brainbug , 20-Июл-04 17:24 
>>Должно быть решение....
>
>А кто что думает про это:
>http://lists.freebsd.org/pipermail/freebsd-net/2004-March/00...

Psy ja uzhe zaputalsa v tom 4to imenno ti ho4e6 sdelat.
Ja ze napisal:
route add default -gateway <gateway_1> -gateway <gateway_2>

U4itivaja 4to gateway_1 i gateway_2 nahodatca v pramoi vidimosti no na raznih if, dla nih budet takze sdelana zapis v routing tablice i associirovana s raznimi if. A posemu esli tak to i paketi, kotorije budut posilatca v zavisimosti ot algoritma to na odin to na drugoi gateway, toze budut posilatca to na odin to na drugoi interfeis.
4to e6e nuzno ?

Edinstvennoje ograni4enije est, kotorije ja napisal vi6e.


"Второй Default router"
Отправлено Shadow , 21-Июл-04 12:50 
а прокинуть принудительно пакеты в каналы через ipfw не покатить
ipfw add fwd gw_int1 from ip_int1 to any
ipfw add fwd gw_int2 from ip_int2 to any

за синтаксис не ручаюсь
но такое работало для сети с 2-мя подситями и 2-мя ISP

маршруты статичные до шлюзов
а НАТ адреса нужные подкидывает


"Второй Default router"
Отправлено Psy , 22-Июл-04 13:26 
Люди, а все заработало... так как хотелось...



"Второй Default router"
Отправлено Brainbug , 22-Июл-04 13:30 
>Люди, а все заработало... так как хотелось...
I kak sdelal ?


"Второй Default router"
Отправлено Shadow , 22-Июл-04 15:41 
ага давай колись что и как ?

"Второй Default router"
Отправлено Max , 31-Июл-04 23:34 
>Есть два DSL канала- один для одного интерфейса, другой для другого. У
>каждого есть свой ай пи исвой гейт.
>
>Одна проблема... Как присвоить каждому интерфейсу свой гейт?
>А то
>default router

>rc.conf
>
>по моему можт быть только один.
>
>Как решить проблему?


PPP multilink поверх UDP c default gate на него,
но сначала статика на ppp сервер.


"Второй Default router"
Отправлено Alexey , 04-Авг-04 12:44 
Плиз, а по конкретней можешь? а то у меня таже проблема...

"Второй Default router"
Отправлено Alexander , 10-Авг-04 11:58 
Если надо только исходящий трафик делить, то
-----------
#!/bin/sh

while [1]; do
route change default $def_gate_1
sleep 0.3
route change default $def_gate_2
sleep 0.7
done
-----------
ну либо написать на Си нормальную программульку

если надо с трансляцией, то ipfw fwd


"Второй Default router"
Отправлено ILJA , 10-Авг-04 14:16 
>если надо с трансляцией, то ipfw fwd
Именно это и надо было делать с самого начала!
Пример:

rl0 -> Первый ифайс во вне
rl1 -> Второй ифайс во вне

rc.conf:

defaultrouter="${rl1_gateway_ip}"

rc.local:

/sbin/natd -n rl0 -p 8660
/sbin/natd -n rl1 -p 8661

rc.firewall:

${fwcmd} add 1100 divert 8660 tcp from ${local_ip} to not ${rl0_ip} 22,25,53,80,110,6667
${fwcmd} add 1110 fwd ${rl0_gateway_ip} tcp from ${rl0_ip} to not ${local_ip}
${fwcmd} add 1120 divert 8660 all from not ${rl0_ip},${local_ip} to ${rl0_ip}
${fwcmd} add 1150 pass all from any to ${rl0_ip}
${fwcmd} add 1150 pass all from ${rl0_ip} to any
${fwcmd} add 1999 divert 8661 all from ${local_ip} to not ${rl1_ip}
${fwcmd} add 2000 divert 8661 all from not ${rl1_ip},${local_ip}
${fwcmd} add 2010 pass all from any to ${local_ip}
${fwcmd} add 2010 pass all from ${local_ip} to any
${fwcmd} add 2100 pass all from any to ${rl1_ip}
${fwcmd} add 2100 pass all from ${rl1_ip} to any

Этот пример можно комментировать очень долго и нудно, я скажу лишь пару слов.
Правила тестировались на FreeBSD 4.7, 4.8, 4.9, 4.10, c ipfw2. Если у вас с ipfw(1) не работает, попробуйте убрать "not ${ip}" и вмето него вставить "any". "not" нужен для того чтобы локальные адресса не дивертировались, т.к. нам это не нужно.
Порядковые номера могут быть на ваше усмотрение, рекоммендую в начале разрешить трафик lo0, зашититься от спуфа, запретить некоторые типы ICMP, разрешить внутренний трафик и т.д., и т.п.
А если говорить о серьёзном управлении системой и сетью в целом, надо переходить на pf(ipf). ipnat, который работает с ipf на много гибче natd, да и функции получше.

Удачной "трафикофильтрации"...