Micah'GF Posted October 2, 2005 Posted October 2, 2005 FreeBSD 5.3. Eсть два врешних интерфейса ed0 и ed2. На оба повешан NAT. Таблица маршрутов default 10.1.216.129 - ed0, 10.1.216.129 - ed0, 192.168.0 - ed1, 192.168.0.240 - lo0, 192.168.0.241 - ed1, 192.168.254 - ed2. Пакеты, преобразованные на интерфейсе ed2 в адрес 192.168.254.1 уходят по маршруту по-умолчанию через интерфейс ed0. До полной переустановки системы пакеты через чужой интерфейс не уходили, а с помощью правила ipfw fwd 192.168.254.2 благополучно перенаправлялись на альтернативный шлюз. Сейчас правило обрабатывает пакеты, но уходят они всеравно через ed0. В Файрволе нет запщещающий правил. Вставить ник Quote
ssk Posted October 2, 2005 Posted October 2, 2005 FreeBSD 5.3. Eсть два врешних интерфейса ed0 и ed2. На оба повешан NAT. Таблица маршрутов default 10.1.216.129 - ed0, 10.1.216.129 - ed0, 192.168.0 - ed1, 192.168.0.240 - lo0, 192.168.0.241 - ed1, 192.168.254 - ed2.Пакеты, преобразованные на интерфейсе ed2 в адрес 192.168.254.1 уходят по маршруту по-умолчанию через интерфейс ed0. До полной переустановки системы пакеты через чужой интерфейс не уходили, а с помощью правила ipfw fwd 192.168.254.2 благополучно перенаправлялись на альтернативный шлюз. Сейчас правило обрабатывает пакеты, но уходят они всеравно через ed0. В Файрволе нет запщещающий правил. ядро собрано с поддержкой форварда? Вставить ник Quote
Micah'GF Posted October 3, 2005 Author Posted October 3, 2005 да, т.к. без опции ядра ipfw при добавлении правила перенаправления выдает (FW_ADD_FORWARDING) Invalid argument. Подозреваю, что не работает перенаправление. Вставить ник Quote
фдуч Posted October 3, 2005 Posted October 3, 2005 В FreeBSD 5.4-RELEASE и старше надо добавить в конфиг ядра строку: options IPFIREWALL_FORWARD_EXTENDED В 5.3-RELEASE надо применить простой патч: Index: ip_output.c =================================================================== RCS file: /FreeBSD-CVS/src/sys/netinet/ip_output.c,v retrieving revision 1.225.2.3 diff -u -b -r1.225.2.3 ip_output.c --- ip_output.c 15 Sep 2004 15:07:09 -0000 1.225.2.3 +++ ip_output.c 19 Sep 2004 15:51:42 -0000 @@ -713,7 +713,7 @@ /* Or forward to some other address? */ fwd_tag = m_tag_find(m, PACKET_TAG_IPFORWARD, NULL); if (fwd_tag) { - if (!in_localip(ip->ip_src) && !in_localaddr(ip->ip_dst)) { + if (!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; И пересобрать ядро. Вставить ник Quote
Micah'GF Posted October 3, 2005 Author Posted October 3, 2005 ыыы... Слов нет!!!! Спасибо!! Это то, что нужно! Ведь раньше это работало, потому что делал этот патч!!! А теперь забыл о нем!! Вставить ник Quote
Grey Posted October 4, 2005 Posted October 4, 2005 ыыы... Слов нет!!!!Спасибо!! Это то, что нужно! Ведь раньше это работало, потому что делал этот патч!!! А теперь забыл о нем!! а у меня на 5.3 fwd пашет без всяких патчей и просто с options IPFIREWALL_FORWARD я что-то не так делал? Вставить ник Quote
фдуч Posted October 5, 2005 Posted October 5, 2005 а у меня на 5.3 fwd пашет без всяких патчей и просто с options IPFIREWALL_FORWARDя что-то не так делал? без патча или ключа, указанных выше форвардинг неработает для локальных интерфейсов. ежели вы на рутере только какой-то чужой трафик форвардите то options IPFIREWALL_FORWARD достаточно. Вставить ник Quote
Grey Posted October 6, 2005 Posted October 6, 2005 а у меня на 5.3 fwd пашет без всяких патчей и просто с options IPFIREWALL_FORWARD я что-то не так делал? без патча или ключа, указанных выше форвардинг неработает для локальных интерфейсов. ежели вы на рутере только какой-то чужой трафик форвардите то options IPFIREWALL_FORWARD достаточно. нет, вроде не чужой, трафик из локалки на 127.0.0.1 (squid) заворачиваю.... :) Вставить ник Quote
Micah'GF Posted October 6, 2005 Author Posted October 6, 2005 Без патча ipfw не форвардит пакеты на любые адреса кроме 127.0.0.1 (возможно, на другие локальные). Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.