Page 1 of 1

Совместимость с xt_TEE

Posted: 10 Mar 2016, 12:27
by stasn77
При использовании зеркалирования трафика при помощи -j TEE пакеты 2 раза пролетают через модуль ipoe и все интерфейсы соответственно.

До версии ядра 4.2 сделать "красиво" было проблематично - приходилось или в TEE метить пакеты IPOE_MAGIC'ом или коментировать в ipoe код, необходимый, в принципе, только для L3 режима.

Code: Select all

--- a/drivers/ipoe/ipoe.c.orig  2016-03-07 10:10:21.163000000 +0000
+++ b/drivers/ipoe/ipoe.c       2016-03-07 10:10:01.596000000 +0000
@@ -904,6 +904,11 @@
        if (skb->protocol != htons(ETH_P_IP))
                return NF_ACCEPT;

+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)
+       if (this_cpu_read(nf_skb_duplicated))
+               return NF_ACCEPT;
+#endif
+
        cb_ptr = skb->cb + sizeof(skb->cb) - 2;
        if (*(__u16 *)cb_ptr == IPOE_MAGIC)
                return NF_ACCEPT;

Re: Совместимость с xt_TEE

Posted: 10 Mar 2016, 12:46
by Dmitry
какое правило iptables задаётся ?

Re: Совместимость с xt_TEE

Posted: 10 Mar 2016, 13:00
by stasn77
-t mangle -A FORWARD -j TEE --gateway some_ip --oif some_dev

Я уже давно писал тут о проблеме этой, потом как-то сам модуль xt_TEE пропатчил что бы он свои дубли метил "маджиком" и забыл.
А в 4.2 в ядре переделали схему и вынесли "наружу" этот признак того, что трафик это дубль от TEE. Ну я свой патчик убрал из ядра и пропатчил accel_ipoe.

Re: Совместимость с xt_TEE

Posted: 10 Mar 2016, 13:10
by Dmitry
ясно, я планирую немного переделать как L3 работает
а там посмотрим, может быть этот костыль не нужен будет