Auteur Sujet: Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)  (Lu 6526 fois)

0 Membres et 1 Invité sur ce sujet

moviuro

  • Abonné Orange Fibre
  • *
  • Messages: 9
Hello,

Je vais récapituler ici ce que j'ai fait, et qui est fonctionnel pour une machine OpenBSD 7.2 (il y a eu des changements impactants dans la 7.2, entre autres la simplification de dhclient qui nous est dorénavant inutile).

Si vous êtes ici, vous avez probablement une bonne idée de ce que vous faites (chers collègues barbus au chapeau d'alu) ; et si non, lisez le manuel, c'est surtout pour ça qu'on utilise OpenBSD. Mon article original est en anglais.

Paquets nécessaires : dhcpcd(8) (une version qui inclut ce patch : fin mai 2023, il s'agit donc de la version dhcpcd-10.0.1pl20230518v0 du paquet, disponible dans les ports ou paquets) ; igmpproxy(8) pour la TV.

(Pour info, dibbler est mort en 2017)

On crée les fichiers hostname.if(5) qui vont bien pour le VLAN832 (Internet).

# /etc/hostname.vlan832
# llprio c'est pour les paquets DHCP
parent em1 vnetid 832 llprio 6
description "ISP uplink"
up

# /etc/hostname.em1
# lladdr c'est la véritable MAC de la Livebox
lladdr "xx:xx:xx:xx:xx:xx"
up

Les tokens d'authentification à envoyer à Orange périment, donc on doit : générer régulièrement un token, l'intégrer dans dhcpcd.conf(5) et demander à dhcpcd(8) de MAJ la lease.

# cat /etc/dhcpcd.conf.head
# dual-stack IPv4 et IPv6
noipv4ll
nohook hostname ntp.conf
allowinterfaces vlan832
debug

# based on https://blog.brimbelle.org/index.php/2018/04/30/fibre-orange-ipv6-et-dhcpcd/
interface vlan832
        # 00030001<MAC_ADDRESS_LIVEBOX_SANS_DEUXPOINTS> dans /var/db/dhcpcd/duid
        # iaid below = 4 derniers octets de la MAC de la livebox
        iaid    01234567
        # on demande une route IPv6 par défaut -- pas besoin de hook spécifique
        ipv6rs
        # delegation de /64s à d'autres interfaces. rad(8) s'en occupera
        # les interfaces ci-dessous dépendent bien sûr de votre config... j'ai un VLAN pour les invités, les enfants, l'IoT...
        ia_pd   01234567 vlan49//64 vlan50//64 vlan51//64 em0//64
        option auth
        userclass FSVDSL_livebox.Internet.softathome.Livebox4
        vendclass 1038 sagem
        authprotocol token 0x123/0x456
        # Le token 0x456 ci-dessous est un magic string (dhcplivebox250) qu'Orange renvoie
        authtoken 0x456 "" forever 64:68:63:70:6c:69:76:65:62:6f:78:66:72:32:35:30
        # TRÈS IMPORTANT, PAS DE RETOUR À LA LIGNE, JUSTE UNE ESPACE
        # TRÈS IMPORTANT, FONCTIONNEL UNIQUEMENT AVEC dhcpcd > 9.4.1
        authtoken 0x123 "" forever 🚫

Pour effacer le retour à la ligne à la fin du fichier, on utilise :

dest=/etc/dhcpcd.conf.head
dd if=/dev/null of="$dest" obs="$(( $(wc -c < "$dest") -1 ))" seek=1

Orange ne délivre pas d'IPv6 pour le routeur dans la lease DHCPv6, c'est pour ça qu'on a le ipv6rs.

Pour générer le token d'authentification (option 90, etc.) : un script largement inspiré du présent forum

# cat /usr/local/bin/orange_hexauth
#!/bin/sh

# Heavily inspired by https://lafibre.info/remplacer-livebox/tuto-remplacer-la-livebox-par-un-routeur-dd-wrt-internet-tv/

__usage(){
  cat << EOH
$0 [-h]

$0 creates a hex stream (that is not \\n terminated) that can be used in DHCP
clients (v4 and v6) to authenticate to Orange France's network. The hex stream
is intended to be cat(1)-ed with configuration parts to create a complete file
(such as dhclient.conf(5)).

-h : display this help text

ENVIRONMNENT VARIABLES

You MUST specify FTI_USER and FTI_PASS as written in your (paper) contract with
Orange.

EXAMPLES

In crontab:

  FTI_USER=fti/...
  FTI_PASS=...

  ~ 1 * * 0 $0 > /etc/orange_auth_string
  ~ 2 * * 0 cat /etc/dhclient.conf.head /etc/orange_auth_string /etc/dhclient.conf.tail > /etc/dhclient.conf
  ~ 3 * * 0 dhclient vlan832

CAVEATS

Only tested on OpenBSD
EOH
}

while getopts ':h' _opt; do
  case "$_opt" in
    h) __usage ; exit 0 ;;
    *) __usage >&2 ; exit 1 ;;
  esac
done

shift "$((OPTIND-1))"

: "${FTI_USER?"Missing mandatory variable, see $0 -h"}"
: "${FTI_PASS?"Missing mandatory variable, see $0 -h"}"

if ! command -v openssl >/dev/null 2>&1; then
  echo "openssl(1) was no found. WTF?" >&2
  exit 2
fi

if ! command -v md5 >/dev/null 2>&1; then
  md5() {
    openssl md5 | cut -d' ' -f2
  }
fi

# translates individual characters to their hex counterpart and prefixes each
# with `:`
# __tohex foo
# > :66:6f:6f
__tohex() {
  printf '%s' "$1" | hexdump -ve '1/1 ":%.2x"'
}

case "$FTI_USER" in
  fti/*) : ;;
  *) FTI_USER="fti/$FTI_USER" ;;
esac

# random strings
# let's hope this never changes, because if Orange starts using "predictable"
# strings, we're in deep (think: TOTP)
: "${_r:="$(openssl rand -base64 12)"}"
: "${_c:="$(openssl rand -base64 1 | cut -c 1)"}"
# "header"
_o90="1a:09:00:00:05:58:01:03:41"
_o90="$_o90:01:0d$(__tohex "$FTI_USER")"
_o90="$_o90:3c:12$(__tohex "$_r")"
_o90="$_o90:03:13$(__tohex "$_c")"
_o90="$_o90$(printf '%s' "$_c$FTI_PASS$_r" | md5 | sed 's/\(..\)/:\1/g')"

cat << EOM >&2
Generated on $(date) with _r=$_r and _c=$_c
EOM
echo -n "${_o90}"

Avant de vérifier que ça fonctionne, on doit s'occuper des priorités de paquets dans pf.conf(5) :

# cat /etc/pf.conf
# martians also includes IPv6 martians
table <martians> { ... }
...
# tous les paquets ont priorité 1 et TOS 0x00
# (la priorité 0 limitait l'upload à 3Mbps alors que prio 1 : 300Mbps+)
match out log on egress set prio 1 tos 0x00
# pas de règle pour DHCPv4, c'est priorité 6 car llprio dans /etc/hostname.vlan832
# https://lafibre.info/remplacer-livebox/durcissement-du-controle-de-loption-9011-et-de-la-conformite-protocolaire/
# DHCPv6 COS 6
match out log on egress inet6 from (self) to ff02::1:2 set prio 6
match out log on egress inet6 proto icmp6 from (self) to fe80::ba0:bab icmp6-type { neighbrsol neighbradv } set prio 6
# peut-être n'est-ce pas nécessaire d'être aussi stricte dans les règles ci-dessus ? ce qui donne...
#match out log on egress inet6 proto icmp6 from (self) set prio 6
...
pass  in  quick log inet6 from fe80::ba0:bab to (self)
...

# NAT interieur -> extérieur pour les invités
match out log on egress inet  from ($guest_if:network)  to ! (self:network) nat-to (egress)
pass  in quick log on $guest_if to ! (self:network)

# Martians should never be a source on packets going out
block out quick log on egress from <martians>
pass  out quick log

# pfctl -vf /etc/pf.conf
Et maintenant on peut faire un premier test de dhcpcd:

# FTI_PASS="..." FTI_USER="fti/..." /usr/local/bin/orange_hexauth > /etc/orange_auth_string
# cat !$
1a:09:00:00:05:58........
# cat /etc/dhcpcd.conf.head !$ > /etc/dhcpcd.conf
# dhcpcd -V
....
# ifconfig vlan832
vlan832: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr xx:xx:xx:xx:xx:xx
        description: ISP link
        index 11 priority 0 llprio 3
        encap: vnetid 832 parent em1 txprio packet rxprio outer
        groups: vlan egress
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        inet6 fe80::xxxx:xxff:fexx:xxxx%vlan832 prefixlen 64 scopeid 0xb
        inet 90.xx.xx.xx netmask 0xfffffc00 broadcast 90.xx.xx.255
# netstat -nrfinet
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            90.xx.xx.1         UG         6   123631     -    56 vlan832
...
# netstat -nrfinet6                                                                                                                 
Routing tables                                                                                                                                     
                                                                                                                                                   
Internet6:                                                                                                                                         
Destination                        Gateway                        Flags   Refs      Use   Mtu  Prio Iface
default                            fe80::ba0:bab%vlan832          UGS        1   101587     -     8 vlan832
...

Et on automatise dans crontab(5):

# retrouvez les valeurs dans votre contrat papier
FTI_USER=fti/...
FTI_PASS=...

~ 1 * * 0 /usr/local/bin/orange_hexauth > /etc/orange_auth_string
~ 2 * * 0 cat /etc/dhcpcd.conf.head /etc/orange_auth_string > /etc/dhcpcd.conf
# dhcpcd rebind
~ 3 * * 0 dhcpcd -n

Et pour lancer le service dhcpcd avec le reste, on va piquer directement dans les sources du port : dhcpcd.rc

Voilà, une machine OpenBSD connectée au réseau Orange. Reste plus qu'à configurer dhcpd(8) pour servir les clients en IPv4 dans les réseaux locaux et rad(8) pour l'IPv6, le firewall, etc.

Pour la TV : lire cet article.

# cat /etc/pf.conf
# interface interne
tv_in_if = "vlan52"
# uplink TV... à définir dans /etc/hostname.vlan840 bien sûr
tv_if    = "vlan840"

# NAT pour le boîtier TV qui a besoin d'accéder un peu à internet
match out log on egress inet  from ($tv_in_if:network)  to ! (self:network) nat-to (egress)
pass  in quick log on $tv_in_if proto { tcp udp } to ! (self:network) port { ntp domain https http 1443 2443 3443 5443 6443 7443 8443 9443 }
# je suis pas trop sûr pour les ports non standards... j'ai un peu bâclé

# IGMP et flux TV
pass  in quick log on $tv_in_if to 224.0.0.0/4 allow-opts
pass out quick log on $tv_if    to 224.0.0.0/4 allow-opts
pass  in quick log on $tv_if    inet proto udp from any to 224.0.0.0/4 port { 8200 8202 }
pass     quick log on { $in_phy_if $tv_if $tv_in_if } proto igmp allow-opts

# grep -vE '^[$#]' /etc/igmpproxy.conf

chroot /var/empty
user _igmpproxy

quickleave

phyint vlan840 upstream  ratelimit 0
        altnet 0.0.0.0/0

phyint vlan52 downstream  ratelimit 0

phyint em1 disabled
phyint em2 disabled

Et bien sûr, le boîtier TV réclame une option DNS bizarre... certaines infos sont à récupérer dans /var/db/dhcpcd/vlan832.lease

# cat /etc/dhcpd.conf
[snip]
# TV
subnet 10.207.52.1 netmask 255.255.255.0 {
  option routers 10.207.52.1;
  # DNS fournis par Orange dans la lease DHCP 2023-03-01
  option domain-name-servers 80.xx.xx.xx, 81.xx.xx.xx;
  range 10.207.52.100 10.207.52.200;

  host decodeur-tv {
    hardware ethernet 44:d4:54:48:72:03;
    # https://forums.framboise314.fr/viewtopic.php?f=57&t=5960
    option option-125 00:00:0D:E9:24:04:06:xx:xx:xx:xx:xx:xx:05:0F:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:06:0d:4C:69:76:65:62:6F:78:20:34;
    #                 ............^^.......^^^^^^^^^^^^^^^^^.......^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^....^^..L..i..v..e..b..o..x.. ..4
    #                             `length  `hex(first 3 bytes of Livebox MAC)  `hex(serial Livebox)                `length of next item
    option domain-name "orange.fr";
    option domain-search "XXX.access.orange-multimedia.net";
    #                     ^^^- vérifier la lease DHCP, c'est dedans aussi
  }
}

Et j'ai juste des problèmes avec l'accès aux chaînes HD+, mais l'ensemble des chaînes reste fonctionnel (dont TF1, M6, replay, etc.)

Édit 2023-04-15 : dans les réponses DHCPv6 du serveur Orange, j'ai une option 17 ; et selon les indications de levieuxatorange, ça indiquerait que je suis "migré" et donc mes propositions de configuration sont fonctionnelles.

Aussi, avec les sorties de dhcpcd-9.5.0 et 10.0.0 (11 avril 2023 et 13 avril 2023), et OpenBSD 7.3 (10 avril 2023), j'ai pu tester et valider que toute la conf fonctionnait encore (commit 257259dd sur OpenBSD 7.3).
« Modifié: 26 mai 2023 à 08:56:17 par moviuro »

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #1 le: 05 mars 2023 à 14:58:23 »
Orange ne délivre pas d'IPv6 pour le routeur. On gère cette situation bizarre avec un dhcpcd-run-hooks(8). (fe80::ba0:bab%vlan832 c'est le routeur Orange)

Cela n'a rien de bizarre c'est même une pratique recommandée.

La route par défaut vers fe80::ba0:bab peut s'obtenir en écoutant les ICMPv6/RA.

En IPv6, la logique est simple:
- fourniture d'un /56 via DHCPv6-PD
- fourniture d'une route par défaut via RA

p: j'ai ajouté ce sujet dans l'index général .

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #2 le: 05 mars 2023 à 17:36:20 »
La manip avec dhclient.conf.head peut etre simplifier..

On peux utiliser sed(1) pour replacer la chaine d'auth dans le fichier dhcpcd.conf sans utiliser une 2eme fichier donc:

fichier /etc/dhcpcd.conf
        authtoken 0x456 "" forever 64:68:63:70:6c:69:76:65:62:6f:78:66:72:32:35:30
        # TRES IMPORTANT NE PAS CHANGER OU SUPPRIMER LE COMMENTAIRE EN FIN DE LIGNE
        # TRÈS IMPORTANT, FONCTIONNEL UNIQUEMENT AVEC dhcpcd > 4.9.1
        authtoken 0x123 "" forever 00#CLEAUTH
        # suite du fichier

commande pour remplacer la ligne ou il y a CLEAUTH par le résultat de orange_hexauth:

sed -i.bak -e 's/\(^.*forever\).*\#CLEAUTH/\1 '$(FTI_PASS="PASS" FTI_USER="fti/USER" /usr/local/bin/orange_hexauth.sh)' #CLEAUTH/' /etc/dhcpcd.conf

explication:
pour chaque ligne du fichier /etc/dhcpcd.conf qui contient '...forever...#CLEAUTH...', remplacer par '...forever X #CLEAUTH' ou X est le résultat (output) de la commande 'FTI_PASS="PASS" FTI_USER="fti/USER" sh orange_hexauth.sh'
l'ancienne version de  /etc/dhcpcd.conf est sauvegarder dans /etc/dhcpcd.conf.bak

Il convient avant de modifier orange_hexauth pour  qu'il n'affiche que le token => supprimer les 3 avant dernières lignes (cat EOM). On peut éventuellement les garder mais ca complique la commande car il faut filtrer stderr. Sinon fait comme dans ton cron par un fichier intermédiaire (orange_auth_string) mais je ne recommande pas trop d'utiliser trop de fichiers a usage intermédiaire (surtout pour des infos sensibles).

si on ne veut pas de 'data' dans les scripts (recommandé),  on peut mettre FTI_PASS et FTI_USER directement dans /etc/dhcpcd.conf et utliser sed pour récupèrer leur valeurs:


/etc/dhcpcd.conf:
# parametres:
# FTI_PASS="pass&word!"
# FTI_USER="fti/user3615"
....
        authtoken 0x456 "" forever 64:68:63:70:6c:69:76:65:62:6f:78:66:72:32:35:30
        # TRES IMPORTANT NE PAS CHANGER OU SUPPRIMER LE COMMENTAIRE EN FIN DE LIGNE
        # TRÈS IMPORTANT, FONCTIONNEL UNIQUEMENT AVEC dhcpcd > 4.9.1
        authtoken 0x123 "" forever 00#CLEAUTH
        # suite du fichier si besoin
....

script pour récupère les valeurs puis remplacer la chaine d'auth:

export FTI_PASS=$(sed -n -e 's/^# FTI_PASS="\(.*\)"/\1/p' /etc/dhcpcd.conf)
export FTI_USER=$(sed -n -e 's/^# FTI_USER="\(.*\)"/\1/p' /etc/dhcpcd.conf)
sed -i.bak -e 's/\(^.*forever\).*\#CLEAUTH/\1 '$(/usr/local/bin/orange_hexauth.sh)' #CLEAUTH/' /etc/dhcpcd.conf

L'intérêt est d'avoir la conf et tous ses paramètres/données dans un seul fichier (dhcpcd.conf) et les scripts ou le crontab n'ont aucune données.

moviuro

  • Abonné Orange Fibre
  • *
  • Messages: 9
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #3 le: 05 mars 2023 à 18:02:39 »
Citer
La manip avec dhclient.conf.head peut etre simplifier..

Question de point de vue. cat a b > c c'est vraiment ultra simple.

Citer
Il convient avant de modifier orange_hexauth pour  qu'il n'affiche que le token

Pas nécessaire, stderr est utilisé. 2>/dev/null si besoin.

Citer
L'intérêt est d'avoir la conf et tous ses paramètres/données dans un seul fichier (dhcpcd.conf) et les scripts ou le crontab n'ont aucune données.

Inversement, l'idée quand j'ai tout installé, c'était d'utiliser la même chaîne d'authentification dans dhclient.conf(5) et dhcpcd.conf(5). Entre deux, dhclient(8) a été remplacé par un truc plus simple (et inutile).

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #4 le: 05 mars 2023 à 22:04:16 »
Question de point de vue. cat a b > c c'est vraiment ultra simple.

Ca le rend trop spécifique (on ne peut configurer une autre interface après dans le même ficher par exemple) et ce n'est pas une bonne pratique de coller des morceaux de fichiers comme cela (ce n'est pas que mon avis). Et devoir enlever une fin de ligne avec dd  ce n'est pas simple comme façon de faire...

Si on veut un tuto adaptable a toute sorte d'usage et de cas il faut éviter ce genre de manips.

Inversement, l'idée quand j'ai tout installé, c'était d'utiliser la même chaîne d'authentification dans dhclient.conf(5) et dhcpcd.conf(5). Entre deux, dhclient(8) a été remplacé par un truc plus simple (et inutile).

A ce propos, le tuto est incohérent :

Pour effacer le retour à la ligne à la fin du fichier, on utilise :

dest=/etc/dhclient.conf.head
dd if=/dev/null of="$dest" obs="$(( $(wc -c < "$dest") -1 ))" seek=1
mais juste avant le fichier présenté est /etc/dhcpcd.conf.head

il ne devrait plus y avoir de dhclient.conf.head dans le tuto non ?

petrus

  • Expert AS206155
  • Expert
  • *
  • Messages: 1 065
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #5 le: 05 mars 2023 à 22:10:54 »
Nice !

Merci pour ce topic Moviuro, tu t'es vraiment donné du mal.

J'avoue avoir un peu laissé tombé de mon côté openbsd + orange, pour deux raisons. Déjà je suis en adsl, donc il me faut un modem en bridge. J'utilisais un cisco 2811, ce qui est un peu overkill (et qui consomme), et qui ne permettait que de bridger l'ipv4, et puis bon le fait que dhclient ne soit plus supporté me demandait pas mal de temps de reverse pour adapter ma config, temps que je n'ai pas forcément...

Vu qu'en plus l'adsl ne me sert qu'à monter des tunnels wireguard vers ailleurs, et qu'avant même le durcissement de la chaine d'auth j'avais réussi à me faire mettre en quarantaine (probablement une race condition entre le modem et le dhcp), j'ai remis la livebox et je supporte le nat de la livebox aujourd'hui, et je route mes ip publiques, ou bien je double nat en fonction des réseaux...

Merci en tout cas pour les autres ;)

B3nJ1

  • Abonné Orange Fibre
  • *
  • Messages: 85
  • 77
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #6 le: 29 mars 2023 à 18:30:09 »
Je n'ai pas réussi à avoir une IPv4 en suivant ton tuto. On dirait que les requêtes DHCPv4 étaient toujours en prio 3.

Pour l'IPv6 c'était correctement taggé en prio 6, mais je n'ai pas reçu de prefix.

Une coquille que j'ai relevé:

Citer
# 0003001<MAC_ADDRESS_LIVEBOX_SANS_DEUXPOINTS> dans /var/db/dhcpcd/duid

C'est 00030001<MAC_ADDRESS_LIVEBOX_SANS_DEUXPOINTS>

moviuro

  • Abonné Orange Fibre
  • *
  • Messages: 9
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #7 le: 29 mars 2023 à 21:08:48 »
Je n'ai pas réussi à avoir une IPv4 en suivant ton tuto. On dirait que les requêtes DHCPv4 étaient toujours en prio 3.

C'est très étrange ça, mais je viens de vérifier et de mon côté aussi mes paquets sont prio 3 ! (oops)

# tcpdump -s 65535 -tttnei em1 vlan 832 and dst 255.255.255.255
Mar 29 19:00:33.145609 xx:xx:xx:xx:xx:xx ff:ff:ff:ff:ff:ff 8100 519: 802.1Q vid 832 pri 3 0.0.0.0.68 > 255.255.255.255.67:  xid:0xfe686e8a secs:16 vend-rfc1048

Pour corriger : on passe vlan832 en prio 6 : ifconfig vlan832 llprio 6 et on peut faire sauter la règle de pare-feu.

J'imagine que l'absence d'IPv6 et de préfixe est liée à ton IPv4 cassé (genre : le serveur DHCP ne t'a pas authentifié, donc c'est mort).

J'ai corrigé la coquille, sorry (0 manquant dans duid).

cat /etc/hostname.vlan832
# llprio 6 is for DHCP messages that use bpf(4)
# see https://misc.openbsd.narkive.com/7SGmbxm0/allow-dhcpd-with-pf#post4
parent em1 vnetid 832 llprio 6
description "ISP link"
up

# cat /etc/pf.conf
# martians also includes IPv6 martians
table <martians> { ... }
...
# tous les paquets ont priorité 1 et TOS 0x00
# (la priorité 0 limitait l'upload à 3Mbps alors que prio 1 : 300Mbps+)
match out log on egress set prio 1 tos 0x00
# aucune règle qui ajoute la priorité 6 -- les paquets DHCP utilisent bpf(4) et bypassent les règles pf.conf(5)
...
pass  in  quick log inet6 from fe80::ba0:bab to (self)
...

# NAT interieur -> extérieur pour les invités
match out log on egress inet  from ($guest_if:network)  to ! (self:network) nat-to (egress)
pass  in quick log on $guest_if to ! (self:network)

# Martians should never be a source on packets going out
block out quick log on egress from <martians>
pass  out quick log

On vérifie que ça fonctionne comme ça devrait :

# tcpdump -s 65535 -tttnei em1 vlan 832 and dst 255.255.255.255
Mar 29 20:54:47.493290 xx:xx:xx:xx:xx:xx ff:ff:ff:ff:ff:ff 8100 519: 802.1Q vid 832 pri 6 0.0.0.0.68 > 255.255.255.255.67:  xid:0xb86eec2b ...

B3nJ1

  • Abonné Orange Fibre
  • *
  • Messages: 85
  • 77
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #8 le: 29 mars 2023 à 21:19:16 »
Merci, je retente ça demain matin :)

En effet llprio semple être pile ce qu'il faut

B3nJ1

  • Abonné Orange Fibre
  • *
  • Messages: 85
  • 77
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #9 le: 30 mars 2023 à 10:21:30 »
Les paquets DHCP v4 et v6 sont bien tagués en prion6, mais j'ai jamais de réponses...

En IPv6 je vois les neighbors adv de ba0bab mais c'est tout. Je suis un peu perdu, j'ai même pas de parcage en 172.x, c'est le vide.

B3nJ1

  • Abonné Orange Fibre
  • *
  • Messages: 85
  • 77
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #10 le: 30 mars 2023 à 11:20:47 »
J'arrive pas à déchiffrer les requetes DHCPv4 avec tcpdump, mais en DHCPv6 je vois pas les options d'authentification:

11:15:39.133773 50:39:XX:XX:XX:XX 33:33:00:01:00:02 8100 255: 802.1Q vid 832 pri 6 fe80::5239:2fff:fe02:xxxx.546 > ff02::1:2.547: DHCPv6 Solicit xid d53fd
        option 1 len 10 xxxxxxxxxxxx0019000c
        option 25 len 12 000000000000000000060004
        option 6 len 4 00080002
        option 8 len 2 0000 [|dhcp6opt] [hlim 1] (len 197)

Mais c'est peut-être normal...
« Modifié: 30 mars 2023 à 12:59:05 par B3nJ1 »

moviuro

  • Abonné Orange Fibre
  • *
  • Messages: 9
Remplacer sa livebox par OpenBSD 🐡 (7.2+) (dual stack)
« Réponse #11 le: 30 mars 2023 à 12:03:21 »
tcpdump(8) ne sait pas déchiffrer complètement les messages DHCP, j'utilise wireshark sur une autre machine pour ça.

# tcpdump -w "capture_$(date +%Y-%m-%dT%H:%m:%S).pcap" -s 65535 -tttnei em0 vlan 832
Ailleurs, rcctl restart dhcpcd

Je lis que ta MAC est 50:39:2f:xx:xx:xx... ça ne ressemble pas à une MAC de Livebox à ma connaissance ?
« Modifié: 30 mars 2023 à 14:20:52 par moviuro »