Auteur Sujet: Filtrer les raw socket avec nftables ?  (Lu 701 fois)

0 Membres et 1 Invité sur ce sujet

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 388
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #12 le: Aujourd'hui à 04:19:52 »
Je pense que la configuration ci-dessous pourrait fonctionner (à tester).

  table netdev filter {
        chain egress {
                type filter hook egress device eth1 priority 0;
                ip daddr 255.255.255.255 meta priority set 0:6 comment "Set CoS value to 6 for DHCPv4 packets"
                ip6 daddr ff02::1:2 meta priority set 0:6 comment "Set CoS value to 6 for DHCPv6 packets"
        }
  }

J'ai testé ça à l'air OK.
04:17:37.253275 xx:xx:xx:xx:xx:xx > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 444: vlan 832, p 6, ethertype IPv4 (0x0800), (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 426)
La partie importante p 6 (sans ça c'est en p 0).
Je vais comparé avec un export des packets sous wireshark (meilleurs visualisation)

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 388
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #13 le: Aujourd'hui à 04:24:01 »
Wep c'est bon. Par contre il y a un petit souci. L'interface n'étant pas encore existante au démarrage mais aussi au start du service NFT, il n'est donc pas possible de directement placer la config nftable dans /etc/nftables.conf

Il faut l'injecter dans la phase up du vlan832, juste avant de faire les req DHCP. Il faut aussi delete les rules sur le down de l'interface.
« Modifié: Aujourd'hui à 06:23:45 par Mastah »

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 388
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #14 le: Aujourd'hui à 04:50:19 »
Voila le code pour l'injection

nft add "table netdev filter"
nft add "chain netdev filter egress { type filter hook egress device vlan832 priority 0; }"
nft insert "rule netdev filter egress ip daddr 255.255.255.255 meta priority set 0:6 comment \"Set CoS value to 6 for DHCPv4 packets\""
nft insert "rule netdev filter egress ip6 daddr ff02::1:2 meta priority set 0:6 comment \"Set CoS value to 6 for DHCPv6 packets\""

Changez vlan832 par l'interface correspondant au vlan 832.


EDIT:

Encore mieux avec
table netdev filter {
      chain egress {
              type filter hook egress device eth1 priority 0;
              udp dport { 67, 547 } meta priority set 0:6 comment "Set CoS value to 6 for DHCPv4/v6 packets"
      }
}
nft insert "rule netdev filter egress udp dport { 67, 547 } meta priority set 0:6 comment \"Set CoS value to 6 for DHCPv4/v6 packets\""
« Modifié: Aujourd'hui à 06:24:35 par Mastah »

jeremyp3

  • Abonné Orange Fibre
  • *
  • Messages: 722
  • Pau (64)
Filtrer les raw socket avec nftables ?
« Réponse #15 le: Aujourd'hui à 05:19:30 »
Bonjour,

pour moi c'est pas bon entièrement. ça marchera pour la première demande de bail, mais pour le renouvellement, c'est mort, à moins de rajouter l'ip de notre BNG orange en plus

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 388
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #16 le: Aujourd'hui à 05:39:42 »
Bonjour,

pour moi c'est pas bon entièrement. ça marchera pour la première demande de bail, mais pour le renouvellement, c'est mort, à moins de rajouter l'ip de notre BNG orange en plus

Comment ça, de rajouter l'ip de "notre BNG" ?

Les rules nftable reste tant qu'elles ne sont pas delete. Je vois pas comment un renew ne fonctionnerait pas. Sauf si un packet DHCP renew n'utilise pas le port udp 67/547

jeremyp3

  • Abonné Orange Fibre
  • *
  • Messages: 722
  • Pau (64)
Filtrer les raw socket avec nftables ?
« Réponse #17 le: Aujourd'hui à 05:48:32 »
re,

Au temps pour moi, j'étais rester sur l'adresse 255.255.255.255 dans la rule. j'avais pas fait attention qu'il y a juste les ports dests dans le dernier exemple.

du coup, désolé pour le bruit :)

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 388
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #18 le: Aujourd'hui à 05:52:35 »
Du coup je maj mon wiki / github bypass orange sur debian pour virer tout les référence a cgroup/cgexec.

Plus besoin de TC, cgroup ou de patch DHCP client. Amen.