Перейти к содержимому
Калькуляторы

FreeBSD 11.2/12.0 в режиме bridge - пропадают пакеты в pipe

Всем доброго дня.

Столкнулся с проблемой, плз подскажите, кто знает возможное решение.

 

Есть мост на 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 настройками ?

 

Если какая-то инфа нужна для дальнейшей диагностики - плз скажите что именно - сразу опубликую.

 

Заранее спасибо и все такое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Покажите вывод во FreeBSD 12:
 

uname -a
sysctl -a net.inet.ip.fw.
ipfw list

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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
 

Изменено пользователем Azamat

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

11.2 совершенно не интересует. В ней баги никто править не будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поведение было одно и то же. Пакет пропадал в "трубе" :(

 

Если у кого-то есть рабочая конфигурация моста - значит гдето в настройках косячим мы.

 

Кстати, на 11.2 и 12.0 одинаковый файл sysctl.conf, поэтому было бы точно также.

 

Вернуть версию 12 тоже нет проблем, мы ставили 12.0-stable от середины апреля

Изменено пользователем Azamat

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ставьте на стенд 12.0-stable от середины апреля и будем дебажить.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

мин через 20 встанет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 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
 

Изменено пользователем Azamat

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще раз, покажите вывод
 

Цитата

uname -a

А потом
 

ifconfig
ifconfig -l

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пингую с одной стороны моста на другую:

Трафик залетает в трубу и дропается, пинг не идет.

 

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 - все пингуется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

со стороны 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
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Где в инициализации pipe или queue присутствует src-ip или dst-ip ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

from any to 10.10.10.0/24 out via ix0 - это как раз произвольный трафик со стороны ix1 в сторону ix0 и наружу через ix0

 

все эти конструкции прекрасно работают на FB 8.4

 

Изменено пользователем Azamat

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Azamat 

Из разряда проверки на идиотизм ситуации (было похожее):

 

sysctl -a | grep net.inet.ip.forwarding

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Понятно.

Вдумчиво, до просветления изучайте pipe и, если надо,  queue.
 

 

1 минуту назад, jffulcrum сказал:

@Azamat 

Из разряда проверки на идиотизм ситуации:

 

sysctl -a | grep net.inet.ip.forwarding

Ну, и еще
 

sysrc -a

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

net.inet.ip.forwarding: 0 - вроде само собой ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, Azamat сказал:

cloned_interfaces="bridge0"

Замените просто на 

 

ifconfig bridge0 create

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 минуту назад, Azamat сказал:

net.inet.ip.forwarding: 0 - вроде само собой ?

 

как раз нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 минуту назад, Azamat сказал:

net.inet.ip.forwarding: 0 - вроде само собой ?

 

Блджад, с чего у вас вообще что-то будет работать? gateway_enable="YES"  в rc.conf и ребут

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

то же самое будет если сделать просто 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 минуты назад, jffulcrum сказал:

Блджад, с чего у вас вообще что-то будет работать? gateway_enable="YES"  в rc.conf и ребут

Не мешайте ему жить в древнем мире.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сделал 
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
 

 

 

древний - не древний, а работает. Получить бы и здесь рабочий результат.  

Я готов дать удаленный доступ умельцам - ради бога, покажите класс 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.