Неправильно работает ipfw или я не так понимаю?
Добавлено: 2010-05-24 15:45:45
При попытки реализовать reply-to на ipfw столкнулся с проблемой, что подключения проходят только по одному из интерфейсов. Начал копать почему и наткнулся на странную работу skipto с флагом keep-state. На тестовом серваке решил всё проверить. Вот конфиг ipfw:
С виду казалось бы всё должно работать, но например:
Начал разбираться почему так и оказывается при первом проходе создается динамическое правило и skipto выполняется правильно, но на следующем шаге исходящий пакет почему-то попадает под созданное динамическое правило несмотря на флаги направления in recv. Собственно должы ли эти флаги учитываться тут? Судя по этой статье в моем примере всё должно работать.
система
На 8-ке такая же картина.
Уже задумываюсь юзать связку pf+ipfw и reply-to городить через pf, но этого очень не хотелось бы.
Код: Выделить всё
#!/bin/sh
fw="/sbin/ipfw -q"
# flush
${fw} flush
# loopback
${fw} add 10 allow ip from any to any
${fw} add 20 skipto 1000 tag 1 ip from any to any in recv em0 keep-state
${fw} add 30 skipto 2000 ip from any to any out xmit em0
${fw} add 40 deny ip from any to any
# in recv em0
${fw} add 1000 allow ip from any to me
${fw} add 1010 deny ip from any to any
# out xmit em0
${fw} add 2000 allow ip from me to any
${fw} add 2010 deny ip from any to any
Код: Выделить всё
[root@ /etc] ping www.ru
PING www.ru (194.87.0.50): 56 data bytes
64 bytes from 194.87.0.50: icmp_seq=0 ttl=55 time=3.847 ms
ping: sendto: Permission denied
ping: sendto: Permission denied
...Код: Выделить всё
http://nuclight.livejournal.com/124348.htmlсистема
Код: Выделить всё
[root@ /etc] uname -a
FreeBSD 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Mon May 17 10:25:44 UTC 2010 root@: Mon May 17 10:25:44 UTC 2010 root@:/usr/obj/usr/src/sys/IPFW i386Уже задумываюсь юзать связку pf+ipfw и reply-to городить через pf, но этого очень не хотелось бы.