>>? везде в инете написано именно так, но не форвардяться пакеты на
>>интерйес 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/msg13955.html
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