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

0 Membres et 1 Invité sur ce sujet

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 433
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #36 le: 12 juillet 2024 à 18:24:30 »
J'ai bien Prio 6 sur les req DHCP V et V6, mais aussi prio 6 sur les demandes de router solicitation.

table netdev filter {
        chain egress {
                type filter hook egress device IFACE_NAME_HERE priority filter; policy accept;
                icmpv6 type { nd-router-solicit, nd-neighbor-solicit } meta priority set 0:6 comment "Set CoS value to 6 for RS/RA packets"
                udp dport { 67, 547 } meta priority set 0:6 comment "Set CoS value to 6 for DHCPv4/v6 packets"
        }
}

J'ai juste a trouver la bonne règle pour les packet arp et c'est good.

Je precise que les packet n'ont pas été capturer sur l'interface vlan 832 mais bien sur la WAN.

La partie "ip6 dscp set cs6" ne change absolument rien sur les packets capturer (avec ou sans les packets sont identique)

De plus les règles sur nd-router-advert et nd-neighbor-advert servent à rien, étant donné que c'est du traffic in et non out (edit: je confirme ça sert a rien, seul nd-router-solicit et nd-neighbor-solicit est utile)
« Modifié: 12 juillet 2024 à 18:53:29 par Mastah »

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 433
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #37 le: 12 juillet 2024 à 18:48:45 »
tcpdump -vvvvv -ttt -i wan 'icmp6 and (ip6[40] = 134 or ip6[40] = 133 or ip6[40] = 135 or ip6[40] = 136 or ip6[40] = 129 or ip6[40] = 128 or ip6[40] = 3 or ip6[40] = 2 or ip6[40] = 1)' -w /tmp/capture.pcap
unreachable: 1
too-big: 2
time-exceeded: 3
echo-request: 128
echo-reply: 129
router-solicitation: 133
router-advertisement: 134
neighbor-solicitation: 135
neighbor-advertisement: 136

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 433
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #38 le: 12 juillet 2024 à 20:19:15 »
Avec les modif. Il manque probablement quelque tram encore.

table netdev filter {
        chain egress {
                type filter hook egress device "vlan832" priority filter; policy accept;
                icmpv6 type { nd-router-solicit, nd-neighbor-solicit } meta priority set 0:6 ip6 dscp set cs6 comment "Set CoS value to 6 for RS/RA packets"
                udp dport 547 meta priority set 0:6 ip6 dscp set cs6 comment "Set CoS value to 6 for DHCPv6 packets"
                udp dport 67 meta priority set 0:6 ip dscp set cs6 comment "Set CoS value to 6 for DHCPv4 packets"
        }
}

cyayon

  • Abonné Orange Fibre
  • *
  • Messages: 675
  • Cordon 74 - Orange Fibre Pro
Filtrer les raw socket avec nftables ?
« Réponse #39 le: 12 juillet 2024 à 21:03:57 »
Du coup ça passe ou ça suffit pas ?

As tu essayé avec ARP ? Je ne me souviens plus si c’est indispensable d’ailleurs…

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 433
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #40 le: 12 juillet 2024 à 23:30:37 »
Voici la règle qui est normalement final (sauf oublie)

table netdev filter {
        chain egress {
                type filter hook egress device "vlan832" priority filter; policy accept;
                icmpv6 type { nd-router-solicit, nd-neighbor-solicit } meta priority set 0:6 ip6 dscp set cs6 comment "Set CoS value to 6 for RS/RA packets"
                udp dport 547 meta priority set 0:6 ip6 dscp set cs6 comment "Set CoS value to 6 for DHCPv6 packets"
                ether type arp meta priority set 0:6 comment "Set CoS value to 6 for arp packets"
                udp dport 67 meta priority set 0:6 ip dscp set cs6 comment "Set CoS value to 6 for DHCPv4 packets"
        }
}

# Add PCP 6 (802.1Q prio 6)
nft add "table netdev filter"
nft add "chain netdev filter egress { type filter hook egress device IFACE_NAME priority 0; }"

# IPV4
nft insert "rule netdev filter egress udp dport 67 meta priority set 0:6 ip dscp set cs6 comment \"Set CoS value to 6 for DHCPv4 packets\""
nft insert "rule netdev filter egress ether type arp meta priority set 0:6 comment \"Set CoS value to 6 for arp packets\""

# IPV6
nft insert "rule netdev filter egress udp dport 547 meta priority set 0:6 ip6 dscp set cs6 comment \"Set CoS value to 6 for DHCPv6 packets\""
nft insert "rule netdev filter egress icmpv6 type { nd-router-solicit, nd-neighbor-solicit } meta priority set 0:6 ip6 dscp set cs6 comment \"Set CoS value to 6 for RS/RA packets\""

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 433
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #41 le: 12 juillet 2024 à 23:37:49 »
Et les dump montrant les bonnes prio/dscp
Cela respect donc bien les règles Orange:
- DHCPv4v6 issu de la boxe
- ARP issu de la boxe
- ICMPv6 code NS/NA issu de la boxe et à destination de l'ipv6 fe80::ba0:bab
- ICMPv6 code RS issu de la boxe et à destination de l'ipv6 multicast idoine (c'est ba0bab qui répond)


Edit: la trame en prio 0 est a destination de mon LAN donc rien a voir avec orange

cyayon

  • Abonné Orange Fibre
  • *
  • Messages: 675
  • Cordon 74 - Orange Fibre Pro
Filtrer les raw socket avec nftables ?
« Réponse #42 le: 16 juillet 2024 à 13:39:11 »
Salut,

Je ne comprends pas pourquoi on n'a pas besoin de préciser nd-neighbor-advert dans les types ICMPv6 ?

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 306
Filtrer les raw socket avec nftables ?
« Réponse #43 le: 16 juillet 2024 à 14:25:30 »
@cyayon :

Citation de: Mastah
De plus les règles sur nd-router-advert et nd-neighbor-advert servent à rien, étant donné que c'est du traffic in et non out (edit: je confirme ça sert a rien, seul nd-router-solicit et nd-neighbor-solicit est utile)

Citation de: levieuxatorange
A l'ICMPv6 code NS/NA (neighbor advertisement) issu de la boxe et à destination de l'ipv6 fe80::ba0:bab.

Bien vu ! Personnellement, je vais l'ajouter dans le (rare ?) cas où notre routeur de prédilection émette un message d'annonce de voisin.

cyayon

  • Abonné Orange Fibre
  • *
  • Messages: 675
  • Cordon 74 - Orange Fibre Pro
Filtrer les raw socket avec nftables ?
« Réponse #44 le: 16 juillet 2024 à 14:29:32 »
@cyayon :

Bien vu ! Personnellement, je vais l'ajouter dans le (rare ?) cas où notre routeur de prédilection émette un message d'annonce de voisin.

Pareil, merci pour le retour

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 433
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #45 le: 16 juillet 2024 à 20:03:28 »
Salut,

Je ne comprends pas pourquoi on n'a pas besoin de préciser nd-neighbor-advert dans les types ICMPv6 ?

Ca ne sert a rien, tu n'es pas un router mais un client. En aucun cas tu vas émettre des packets de type RA/NA. Les seules packet qui vont être émis en tant que client c'est RS/NS.

RA: Router Advertisment
NA: Neighbor Advertisment

RS: Router solicitation
NS: Neighbor solicitation


Citer
RS — Router Solicitation (ICMPv6 type 133)
When an interface becomes enabled, hosts may send out RSes that request that routers generate Router Advertisements (RAs) immediately rather than at their next scheduled time.

Citer
RA — Router Advertisement (ICMPv6 type 134)
Routers advertise their presence together with various link and Internet parameters either periodically, or in response to an RS message. RAs contain prefixes that are used for determining whether another address shares the same link (on-link determination) and/or address configuration, a suggested hop limit value, and so forth.

Citer
NS — Neighbor Solicitation (ICMPv6 type 135)
A Neighbor Solicitation (NS) message is sent by a node to determine the link-layer address of a neighbor, or to verify that a neighbor is still reachable via a cached link-layer address. NSes are also used for Duplicate Address Detection (DAD).

Citer
NA — Neighbor Advertisement (ICMPv6 type 136)
A Neighbour Advertisement (NA) message is sent in response to an NS message. A node may also send unsolicited NAs to announce a link-layer address change.

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 433
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #46 le: 16 juillet 2024 à 20:33:49 »
Au cas ou je vais quand même faire une capture sur une longue durée et vérifier que des NA partent pas du wan vers orange.

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 306
Filtrer les raw socket avec nftables ?
« Réponse #47 le: 16 juillet 2024 à 20:48:57 »
Citation de: RFC 4861, p. 23
A node sends Neighbor Advertisements in response to Neighbor Solicitations and sends unsolicited Neighbor Advertisements in order to (unreliably) propagate new information quickly.

Citation de: RFC 9131
As the main purpose of sending unsolicited NAs upon configuring a new address is to proactively create a Neighbor Cache entry on the first-hop routers, the gratuitous NAs are sent to the all-routers multicast address (ff02::2).

On peut supposer que cela a son importance sinon @levieuxatorange n'aurait pas indiqué que c'était nécessaire.