Azamat Posted May 2, 2019 Posted May 2, 2019 Всем доброго дня. Столкнулся с проблемой, плз подскажите, кто знает возможное решение. Есть мост на 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
vlad11 Posted May 2, 2019 Posted May 2, 2019 Покажите вывод во FreeBSD 12: uname -a sysctl -a net.inet.ip.fw. ipfw list Вставить ник Quote
Azamat Posted May 2, 2019 Author Posted May 2, 2019 (edited) 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
vlad11 Posted May 2, 2019 Posted May 2, 2019 11.2 совершенно не интересует. В ней баги никто править не будет. Вставить ник Quote
Azamat Posted May 2, 2019 Author Posted May 2, 2019 (edited) Поведение было одно и то же. Пакет пропадал в "трубе" :( Если у кого-то есть рабочая конфигурация моста - значит гдето в настройках косячим мы. Кстати, на 11.2 и 12.0 одинаковый файл sysctl.conf, поэтому было бы точно также. Вернуть версию 12 тоже нет проблем, мы ставили 12.0-stable от середины апреля Edited May 2, 2019 by Azamat Вставить ник Quote
vlad11 Posted May 2, 2019 Posted May 2, 2019 Ставьте на стенд 12.0-stable от середины апреля и будем дебажить. Вставить ник Quote
Azamat Posted May 2, 2019 Author Posted May 2, 2019 (edited) 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
vlad11 Posted May 2, 2019 Posted May 2, 2019 Еще раз, покажите вывод Цитата uname -a А потом ifconfig ifconfig -l Вставить ник Quote
Azamat Posted May 2, 2019 Author Posted May 2, 2019 Пингую с одной стороны моста на другую: Трафик залетает в трубу и дропается, пинг не идет. 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
Azamat Posted May 2, 2019 Author Posted May 2, 2019 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
Azamat Posted May 2, 2019 Author Posted May 2, 2019 со стороны 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
vlad11 Posted May 2, 2019 Posted May 2, 2019 Где в инициализации pipe или queue присутствует src-ip или dst-ip ? Вставить ник Quote
Azamat Posted May 2, 2019 Author Posted May 2, 2019 (edited) from any to 10.10.10.0/24 out via ix0 - это как раз произвольный трафик со стороны ix1 в сторону ix0 и наружу через ix0 все эти конструкции прекрасно работают на FB 8.4 Edited May 2, 2019 by Azamat Вставить ник Quote
jffulcrum Posted May 2, 2019 Posted May 2, 2019 @Azamat Из разряда проверки на идиотизм ситуации (было похожее): sysctl -a | grep net.inet.ip.forwarding Вставить ник Quote
vlad11 Posted May 2, 2019 Posted May 2, 2019 Понятно. Вдумчиво, до просветления изучайте pipe и, если надо, queue. 1 минуту назад, jffulcrum сказал: @Azamat Из разряда проверки на идиотизм ситуации: sysctl -a | grep net.inet.ip.forwarding Ну, и еще sysrc -a Вставить ник Quote
Azamat Posted May 2, 2019 Author Posted May 2, 2019 net.inet.ip.forwarding: 0 - вроде само собой ? Вставить ник Quote
jffulcrum Posted May 2, 2019 Posted May 2, 2019 2 часа назад, Azamat сказал: cloned_interfaces="bridge0" Замените просто на ifconfig bridge0 create Вставить ник Quote
vlad11 Posted May 2, 2019 Posted May 2, 2019 1 минуту назад, Azamat сказал: net.inet.ip.forwarding: 0 - вроде само собой ? как раз нет. Вставить ник Quote
jffulcrum Posted May 2, 2019 Posted May 2, 2019 1 минуту назад, Azamat сказал: net.inet.ip.forwarding: 0 - вроде само собой ? Блджад, с чего у вас вообще что-то будет работать? gateway_enable="YES" в rc.conf и ребут Вставить ник Quote
Azamat Posted May 2, 2019 Author Posted May 2, 2019 то же самое будет если сделать просто 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
vlad11 Posted May 2, 2019 Posted May 2, 2019 2 минуты назад, jffulcrum сказал: Блджад, с чего у вас вообще что-то будет работать? gateway_enable="YES" в rc.conf и ребут Не мешайте ему жить в древнем мире. Вставить ник Quote
Azamat Posted May 2, 2019 Author Posted May 2, 2019 сделал 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
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.