Azamat Posted May 2, 2019 · Report post Всем доброго дня. Столкнулся с проблемой, плз подскажите, кто знает возможное решение. Есть мост на FreeBSD версии 8.4 - с ним никаких проблем, кроме того, что для замены диска в зеркале надо выключать машину. Решили проверить новые версии 11.2/12.0 в режиме фильтрующего моста. Вроде сдеали по инструкциям из интернет, но видим что пакет попадает в pipe и там уже дропается :( правило в такой форме: создание интерфейса моста: ifconfig_ix0="up -tso4 -tso6 -lro -vlanhwtso" ifconfig_ix1="up -tso4 -tso6 -lro -vlanhwtso" cloned_interfaces="bridge0" ifconfig_bridge0="addm ix0 addm ix1 up" создание трубы: ipfw pipe 100 config bw 15Mbit/s queue 465 заворот в pipe: ipfw add 100 pipe 100 ip from any to 10.10.10.0/24 out via ix0 В таком виде имеем статистику: (net.inet.ip.fw.one_pass: 0) 00100 4946 378727 pipe 100 ip from any to 10.10.10.0/24 out via ix0 00110 0 0 allow ip from any to 10.10.10.0/24 out via ix0 На мосту FB 8.4 оба правила растут синхронно, сначала пакеты попадают в pipe, потом возвращаются в след. правила и выпадают из файра по allow. В 11.2/12.0 никак не могу добиться, чтобы пакет возвращался из pipe к след. правилу. Если правило 100 с pipe убрать совсем - тогда все работает, пакеты ходят нормально. Т.е. что то с dummynet настройками ? Если какая-то инфа нужна для дальнейшей диагностики - плз скажите что именно - сразу опубликую. Заранее спасибо и все такое. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 2, 2019 · Report post Покажите вывод во FreeBSD 12: uname -a sysctl -a net.inet.ip.fw. ipfw list Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 (edited) · Report post 12.0 снесли, думали может сырая и тд. Откатились типа на проверенный релиз 11.2 FreeBSD 11.2-RELEASE net.inet.ip.fw.enable: 1 net.inet.ip.fw.dyn_keep_states: 0 net.inet.ip.fw.dyn_keepalive: 1 net.inet.ip.fw.dyn_short_lifetime: 5 net.inet.ip.fw.dyn_udp_lifetime: 10 net.inet.ip.fw.dyn_rst_lifetime: 1 net.inet.ip.fw.dyn_fin_lifetime: 1 net.inet.ip.fw.dyn_syn_lifetime: 20 net.inet.ip.fw.dyn_ack_lifetime: 300 net.inet.ip.fw.dyn_parent_max: 4096 net.inet.ip.fw.dyn_max: 65536 net.inet.ip.fw.dyn_buckets: 8192 net.inet.ip.fw.curr_max_length: 0 net.inet.ip.fw.curr_dyn_buckets: 256 net.inet.ip.fw.dyn_parent_count: 0 net.inet.ip.fw.dyn_count: 0 net.inet.ip.fw.static_count: 5 net.inet.ip.fw.default_to_accept: 1 net.inet.ip.fw.tables_sets: 0 net.inet.ip.fw.tables_max: 256 net.inet.ip.fw.default_rule: 65535 net.inet.ip.fw.verbose_limit: 100 net.inet.ip.fw.verbose: 1 net.inet.ip.fw.autoinc_step: 10 net.inet.ip.fw.one_pass: 0 Edited May 2, 2019 by Azamat Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 2, 2019 · Report post 11.2 совершенно не интересует. В ней баги никто править не будет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 (edited) · Report post Поведение было одно и то же. Пакет пропадал в "трубе" :( Если у кого-то есть рабочая конфигурация моста - значит гдето в настройках косячим мы. Кстати, на 11.2 и 12.0 одинаковый файл sysctl.conf, поэтому было бы точно также. Вернуть версию 12 тоже нет проблем, мы ставили 12.0-stable от середины апреля Edited May 2, 2019 by Azamat Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 2, 2019 · Report post Ставьте на стенд 12.0-stable от середины апреля и будем дебажить. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 · Report post мин через 20 встанет Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 (edited) · Report post 12.0-STABLE net.inet.ip.fw.enable: 1 net.inet.ip.fw.dyn_keep_states: 0 net.inet.ip.fw.dyn_keepalive: 1 net.inet.ip.fw.dyn_short_lifetime: 5 net.inet.ip.fw.dyn_udp_lifetime: 10 net.inet.ip.fw.dyn_rst_lifetime: 1 net.inet.ip.fw.dyn_fin_lifetime: 1 net.inet.ip.fw.dyn_syn_lifetime: 20 net.inet.ip.fw.dyn_ack_lifetime: 300 net.inet.ip.fw.dyn_parent_max: 4096 net.inet.ip.fw.dyn_max: 65536 net.inet.ip.fw.dyn_buckets: 8192 net.inet.ip.fw.curr_max_length: 0 net.inet.ip.fw.curr_dyn_buckets: 256 net.inet.ip.fw.dyn_parent_count: 0 net.inet.ip.fw.dyn_count: 0 net.inet.ip.fw.static_count: 1 net.inet.ip.fw.default_to_accept: 1 net.inet.ip.fw.tables_sets: 0 net.inet.ip.fw.tables_max: 256 net.inet.ip.fw.default_rule: 65535 net.inet.ip.fw.verbose_limit: 100 net.inet.ip.fw.verbose: 1 net.inet.ip.fw.autoinc_step: 10 net.inet.ip.fw.one_pass: 0 net.link.bridge.ipfw: 1 net.link.bridge.pfil_member: 1 00100 0 0 pipe 100 ip from any to 10.10.10.0/24 out via ix0 00110 0 0 allow ip from any to 10.10.10.0/24 out via ix0 Edited May 2, 2019 by Azamat Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 2, 2019 · Report post Еще раз, покажите вывод Цитата uname -a А потом ifconfig ifconfig -l Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 · Report post Пингую с одной стороны моста на другую: Трафик залетает в трубу и дропается, пинг не идет. 00100 120 10080 pipe 100 ip from any to 10.10.10.0/24 out via ix0 00110 0 0 allow ip from any to 10.10.10.0/24 out via ix0 Если сделать первым правилом allow from any to any - все пингуется. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 2, 2019 · Report post что говорит tcpdump ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 · Report post 12.0-STABLE FreeBSD 12.0-STABLE BRIDGE amd64 ifconfig -l ix0 ix1 re0 lo0 bridge0 ix0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=e138bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6> ether a0:36:9f:1d:c3:98 media: Ethernet autoselect (Unknown) status: active ix1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=e138bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6> ether a0:36:9f:1d:c3:9a media: Ethernet autoselect (Unknown) status: active re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 !!! управляющий интерфейс options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE> ether 0c:9d:92:1b:f6:e1 inet 192.168.1.79 netmask 0xfffffe00 broadcast 192.168.1.255 media: Ethernet autoselect (1000baseT <full-duplex>) status: active lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> inet 127.0.0.1 netmask 0xff000000 groups: lo bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 02:bf:e0:67:1b:00 id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 member: ix1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP> ifmaxaddr 0 port 2 priority 128 path cost 2000 member: ix0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP> ifmaxaddr 0 port 1 priority 128 path cost 2000 groups: bridge Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 2, 2019 · Report post sysctl net.link.bridge.ipfw Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 · Report post со стороны ix1 (трафик приходит) tcpdump -i ix1 -n tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ix1, link-type EN10MB (Ethernet), capture size 262144 bytes 18:46:19.763109 IP 10.10.10.1 > 10.10.10.10: ICMP echo request, id 30347, seq 312, length 64 18:46:20.826687 IP 10.10.10.1 > 10.10.10.10: ICMP echo request, id 30347, seq 313, length 64 со стороны ix0 (трафик уходить должен) - тишина tcpdump -i ix0 -n tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ix0, link-type EN10MB (Ethernet), capture size 262144 bytes ^C 0 packets captured 0 packets received by filter 0 packets dropped by kernel счетчик пакетов, попадающих в pipe растет, но все пакеты дропнуты 00100 430 36120 pipe 100 ip from any to 10.10.10.0/24 out via ix0 00110 0 0 allow ip from any to 10.10.10.0/24 out via ix0 Здесь все по докам: net.link.bridge.ipfw: 1 net.link.bridge.ipfw: 1 net.link.bridge.allow_llz_overlap: 0 net.link.bridge.inherit_mac: 0 net.link.bridge.log_stp: 0 net.link.bridge.pfil_local_phys: 0 net.link.bridge.pfil_member: 1 net.link.bridge.ipfw_arp: 0 net.link.bridge.pfil_bridge: 0 net.link.bridge.pfil_onlyip: 0 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 2, 2019 · Report post Где в инициализации pipe или queue присутствует src-ip или dst-ip ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 (edited) · Report post from any to 10.10.10.0/24 out via ix0 - это как раз произвольный трафик со стороны ix1 в сторону ix0 и наружу через ix0 все эти конструкции прекрасно работают на FB 8.4 Edited May 2, 2019 by Azamat Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted May 2, 2019 · Report post @Azamat Из разряда проверки на идиотизм ситуации (было похожее): sysctl -a | grep net.inet.ip.forwarding Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 2, 2019 · Report post Понятно. Вдумчиво, до просветления изучайте pipe и, если надо, queue. 1 минуту назад, jffulcrum сказал: @Azamat Из разряда проверки на идиотизм ситуации: sysctl -a | grep net.inet.ip.forwarding Ну, и еще sysrc -a Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 · Report post net.inet.ip.forwarding: 0 - вроде само собой ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted May 2, 2019 · Report post 2 часа назад, Azamat сказал: cloned_interfaces="bridge0" Замените просто на ifconfig bridge0 create Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 2, 2019 · Report post 1 минуту назад, Azamat сказал: net.inet.ip.forwarding: 0 - вроде само собой ? как раз нет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted May 2, 2019 · Report post 1 минуту назад, Azamat сказал: net.inet.ip.forwarding: 0 - вроде само собой ? Блджад, с чего у вас вообще что-то будет работать? gateway_enable="YES" в rc.conf и ребут Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 · Report post то же самое будет если сделать просто ipfw pipe 100 config bw 15Mbit/s без доп. параметров. По любому, пакет уходит в pipe и оттуда уже не возвращается - почему так ? :( На 8.4 у меня штук 8 мостов шейпят народ, просто захотел проверить что изменилось за лет 6 Вот с моста на 8.4, через который шейпятся порядка 7 гиг трафика sysctl net.inet.ip.forwarding net.inet.ip.forwarding: 0 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 2, 2019 · Report post 2 минуты назад, jffulcrum сказал: Блджад, с чего у вас вообще что-то будет работать? gateway_enable="YES" в rc.conf и ребут Не мешайте ему жить в древнем мире. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Azamat Posted May 2, 2019 · Report post сделал sysctl net.inet.ip.forwarding=1 net.inet.ip.forwarding: 0 -> 1 все также, трафик бесследно пропадает в dummynet :( 00100 1637 137508 pipe 100 ip from any to 10.10.10.0/24 out via ix0 00110 0 0 allow ip from any to 10.10.10.0/24 out via ix0 древний - не древний, а работает. Получить бы и здесь рабочий результат. Я готов дать удаленный доступ умельцам - ради бога, покажите класс Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...