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

Исходное сообщение
"два default gateway во FreeBSD. Как?"

Отправлено Funtick , 15-Апр-05 22:14 
Помогите пожалуйста...
Есть два внешних интерфейса fxp0 и fxp1, в разных подсетях и с разными гейтвеями соответственно.
rc.conf:
defaultrouter "1.1.1.1"
ifconfig_fxp0="inet 1.1.1.10  netmask 255.255.255.248" # gate 1.1.1.1
ifconfig_fxp1="inet 2.2.2.20  netmask 255.255.255.248" # gate 2.2.2.1
Как сделать так, что бы пакетики с IP 2.2.2.20 уходили с интерфейса fxp1?
Как я понимаю два дефоулт роутера с разными метриками устанавливать нельзя?
Есть демон mrouted (Multicast routing)
А что написать в конфиге /etc/mrouted.conf я не понял.

Содержание

Сообщения в этом обсуждении
"два default gateway во FreeBSD. Как?"
Отправлено kir , 15-Апр-05 23:36 

man ipfw
на опцию fwd


"два default gateway во FreeBSD. Как?"
Отправлено Funtick , 16-Апр-05 03:14 
>
>
> man ipfw
>на опцию fwd


Ага, понял. Тогда вопрос следующий (ядро собрано со всеми необхобымимы опциями), почему не работает правило
00050 fwd gate ISP 2 ip from IP ISP 2 to any via fxp1
? везде в инете написано именно так, но не форвардяться пакеты на интерйес fxp1, всё-равно сыпятся на интерфейс fxp0 :(


"два default gateway во FreeBSD. Как?"
Отправлено DEC , 16-Апр-05 13:17 
>? везде в инете написано именно так, но не форвардяться пакеты на
>интерйес fxp1, всё-равно сыпятся на интерфейс fxp0 :(
Если это FreeBSD 5.3 то та эта опция поломана. Выход - использовать
ipfilter или pf; или update to 5.4 RCx



"два default gateway во FreeBSD. Как?"
Отправлено Funtick , 16-Апр-05 14:56 
>>? везде в инете написано именно так, но не форвардяться пакеты на
>>интерйес fxp1, всё-равно сыпятся на интерфейс fxp0 :(
>Если это FreeBSD 5.3 то та эта опция поломана. Выход - использовать
>
>ipfilter или pf; или update to 5.4 RCx

А в 5.2.1 или в 5.1 будет нормально работать?
А где поломано может существует патч для ядра?
Хм.. Кстати где об этом написано, можно, если не сложно ссылочку..
P.S.> Это не прикол? :)))) у меня как-раз FreeBSD 5.3 :(((


"два default gateway во FreeBSD. Как?"
Отправлено DEC , 16-Апр-05 15:05 
>Хм.. Кстати где об этом написано, можно, если не сложно ссылочку..
>P.S.> Это не прикол? :)))) у меня как-раз FreeBSD 5.3 :(((
К сожалению не прикол ;]
В 5.2.1 работает.
Ссылку, ну разве что вот:
ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.4-RC2/RELN...

Ну и поискать по форуму, здесь об этом говорили


"два default gateway во FreeBSD. Как?"
Отправлено Funtick , 16-Апр-05 17:01 
>>Хм.. Кстати где об этом написано, можно, если не сложно ссылочку..
>>P.S.> Это не прикол? :)))) у меня как-раз FreeBSD 5.3 :(((
>К сожалению не прикол ;]
>В 5.2.1 работает.
>Ссылку, ну разве что вот:
>ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/5.4-RC2/RELN...
>
>Ну и поискать по форуму, здесь об этом говорили
Решился апгрейдится до rc4
1) можно ли все это сделать удаленно через ssh или обязательно грузиться с компакта?
2)при апгрейде все конфиги меняются опять на дефолтовые или только ядро + библиотеки + бинарники?
Зараннее спасибки за ответ :)))))

"два default gateway во FreeBSD. Как?"
Отправлено DEC , 16-Апр-05 17:15 
По ssh никаких проблем, тока в single не переходиш ;]
Настройки mergemaster лопатит, и про каждый файл переспрашивает.

Тут http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/makew...
всё подробно.


"два default gateway во FreeBSD. Как?"
Отправлено Funtick , 16-Апр-05 18:23 
>>? везде в инете написано именно так, но не форвардяться пакеты на
>>интерйес fxp1, всё-равно сыпятся на интерфейс fxp0 :(
>Если это FreeBSD 5.3 то та эта опция поломана. Выход - использовать
>
>ipfilter или pf; или update to 5.4 RCx


Я вот думаю, если этот IF закомментить что будет? :))
---====[[[ А! Вот! Нашел!!! ]]]====---
http://www.freebsd.org/cgi/query-pr.cgi?pr=71910
Т.е. в файле /usr/src/sys/netinet/ip_output.c
меняем "if (!in_localip(ip->ip_src) && !in_localaddr(ip->ip_dst)) {"
на "if (!in_localaddr(ip->ip_dst)) {"
!!!! :)))))))))
http://www.mail-archive.com/freebsd-net@freebsd.org/msg...
Re: kern/73129: [patch] IPFW misbehaviour in RELENG_5
Gleb Smirnoff
Thu, 02 Dec 2004 05:42:35 -0800

  Andre,

  what is reason for these two checks in ip_output():

                if (!in_localip(ip->ip_src) && !in_localaddr(ip->ip_dst)) {
                        dst = (struct sockaddr_in *)&ro->ro_dst;
                        bcopy((fwd_tag+1), dst, sizeof(struct sockaddr_in));
                        m->m_flags |= M_SKIP_FIREWALL;
                        m_tag_delete(m, fwd_tag);
                        goto again;
                } else {
                        m_tag_delete(m, fwd_tag);
                        /* Continue. */
                }

Investigating pre-PFIL_HOOKS ipfw I have not found any analog of this check.
These checks do break some useful functionality:

1) policy routing of hosts from connected networks
2) policy routing of locally originated traffic

The second one is used very widely. When you have lines to two ISPs and
run natd for both of them, you policy route nated packets to them.

P.S. kern/73129, kern/73910, kern/71910