NetworkingRéseau
How Tauri names, configures and diagnoses network interfaces. The model is dynamic: addressing is applied at runtime, and serviceadm makes an interface come up automatically at every boot.
Comment Tauri nomme, configure et diagnostique les interfaces réseau. Le modèle est dynamique : l'adressage s'applique à l'exécution, et serviceadm fait remonter une interface automatiquement à chaque boot.
Tauri configures the network dynamically: the IP address, netmask and gateway are applied at runtime with ifconfig or dhclient. To have an interface come up on its own at every boot, register the command as a boot service with serviceadm (see Automatic setup at boot). DNS and a few other settings are stored separately in @:/Elysee/config.
Tauri configure le réseau de façon dynamique : l'adresse IP, le masque et la passerelle s'appliquent à l'exécution avec ifconfig ou dhclient. Pour qu'une interface se lève seule à chaque boot, enregistrez la commande comme service au boot avec serviceadm (voir Mise en route au boot). Le DNS et quelques autres réglages sont stockés à part dans @:/Elysee/config.
1. InterfacesInterfaces
Interfaces are named net0, net1, net2… — one per network card the kernel discovers. There is no eth0 and no lo interface. Each interface starts down, with no IP address and an MTU of 1500.
Les interfaces s'appellent net0, net1, net2… — une par carte réseau détectée par le noyau. Il n'y a ni eth0, ni interface lo. Chaque interface démarre éteinte, sans adresse IP, avec un MTU de 1500.
The loopback still works without lo: 127.0.0.1 (and the whole 127.0.0.0/8) and the machine's own addresses reach its own servers — curl https://127.0.0.1/, ping 127.0.0.1, a website calling itself. Such traffic never goes out on a card. As soon as an interface has an address, 127.0.0.1 stands for that address: a local connection therefore shows the machine's own address as its peer, not 127.0.0.1. Conversely, a packet arriving from the network with a 127.x source or one of the machine's own addresses is dropped.
Le bouclage fonctionne pourtant sans lo : 127.0.0.1 (et tout 127.0.0.0/8) et les adresses propres de la machine joignent ses propres serveurs — curl https://127.0.0.1/, ping 127.0.0.1, un site qui s'appelle lui-même. Ce trafic ne sort jamais sur une carte. Dès qu'une interface a une adresse, 127.0.0.1 désigne cette adresse : une connexion locale montre donc l'adresse propre de la machine comme correspondant, pas 127.0.0.1. À l'inverse, un paquet venu du réseau avec une source 127.x ou l'une des adresses propres de la machine est rejeté.
| EnvironmentEnvironnement | InterfacesInterfaces |
|---|---|
| QEMU | net0 (user-mode NAT, outbound) and net1 (the tap0 interface reachable from the host at 172.16.100.2). Configure net1.net0 (NAT user-mode, sortant) et net1 (l'interface tap0 joignable depuis l'hôte en 172.16.100.2). C'est net1 qu'on configure. |
| Real hardwareMatériel réel | One netN per Intel i350 port found. A single-port card gives net0.Un netN par port Intel i350 détecté. Une carte à un port donne net0. |
List the interfaces (root only) — run ifconfig with no arguments:
Lister les interfaces (root uniquement) — lancer ifconfig sans argument :
ifconfig
Each line shows the flags, MTU, MAC (ether), IP (inet), netmask and broadcast. The gateway is not shown here — see sysinfo net in Diagnostics.
Chaque ligne indique les flags, le MTU, la MAC (ether), l'IP (inet), le masque et le broadcast. La passerelle n'apparaît pas ici — voir sysinfo net dans Diagnostics.
The usage line mentions -a, but that flag is not implemented — plain ifconfig is the working "list all" form.
La ligne d'usage mentionne -a, mais ce drapeau n'est pas implémenté — ifconfig seul est la forme « tout lister » qui fonctionne.
2. Configure an interfaceConfigurer une interface
All configuration requires root (uid 1). There are two ways to bring an interface online: a DHCP lease, or a static setup. Toute configuration exige root (uid 1). Deux façons de mettre une interface en service : un bail DHCP, ou une configuration statique.
Option A — DHCPOption A — DHCP
dhclient net1
Obtains a lease and applies the address, netmask and gateway at runtime. It also saves the DNS servers persistently (the only thing it persists). DHCP is not run automatically at boot — you invoke it yourself. Obtient un bail et applique l'adresse, le masque et la passerelle à l'exécution. Il enregistre aussi les serveurs DNS de façon persistante (la seule chose qu'il persiste). Le DHCP n'est pas lancé automatiquement au boot — vous l'invoquez vous-même.
Option B — StaticOption B — Statique
# address + prefix (CIDR)# adresse + préfixe (CIDR)
ifconfig net1 172.16.100.2/24
# …or address + explicit netmask# …ou adresse + masque explicite
ifconfig net1 172.16.100.2 netmask 255.255.255.0
ifconfig net1 gateway 172.16.100.1 # set the default gateway# définir la passerelle par défaut
ifconfig net1 up # bring the interface up# activer l'interface
| CommandCommande | EffectEffet |
|---|---|
ifconfig net1 up / down | Bring the interface up or down.Active ou désactive l'interface. |
ifconfig net1 A.B.C.D/N | Set IPv4 address with a CIDR prefix (0–32).Fixe l'adresse IPv4 avec un préfixe CIDR (0–32). |
ifconfig net1 A.B.C.D netmask M.M.M.M | Set IPv4 address with an explicit mask.Fixe l'adresse IPv4 avec un masque explicite. |
ifconfig net1 gateway G.G.G.G | Set the interface's default gateway.Définit la passerelle par défaut de l'interface. |
These commands mirror the QEMU host setup on the Tauri side: with the host TAP at 172.16.100.1, give net1 the address 172.16.100.2 and the gateway 172.16.100.1.
Ces commandes reflètent, côté Tauri, la configuration de l'hôte QEMU : le TAP de l'hôte étant en 172.16.100.1, donnez à net1 l'adresse 172.16.100.2 et la passerelle 172.16.100.1.
3. Automatic setup at bootMise en route au boot
Since addressing is dynamic, you make it automatic with serviceadm: it registers a command as a boot service in Cerbère's persistent watch table, so the interface comes up on its own after every reboot — including after a power cut.
L'adressage étant dynamique, on le rend automatique avec serviceadm : il enregistre une commande comme service au boot dans la table persistante watch de Cerbère, de sorte que l'interface se lève seule après chaque redémarrage — y compris après une coupure de courant.
serviceadm add net root never dhclient net1
Form: serviceadm add <name> <user> <policy> <cmd...>. Policy never means "run once at boot, don't restart" — right for a one-shot network setup. For a fixed address, point it at a small startup script that runs the static ifconfig commands (address, gateway, up):
Forme : serviceadm add <name> <user> <policy> <cmd...>. La policy never signifie « lancer une fois au boot, sans redémarrage » — adapté à une mise en place réseau unique. Pour une adresse fixe, pointez-le vers un petit script de démarrage qui exécute les commandes ifconfig statiques (adresse, passerelle, up) :
serviceadm add net root never sh c:/user/root/sh/net.sh
Changes take effect at the next reboot — Cerbère reads the table only at its own startup, so serviceadm starts nothing immediately. Root only. See the serviceadm reference for list / del and the policy values.
Les changements prennent effet au prochain reboot — Cerbère ne lit la table qu'à son propre démarrage, donc serviceadm ne lance rien immédiatement. Root uniquement. Voir la fiche serviceadm pour list / del et les valeurs de policy.
4. DNSDNS
The DNS servers are persistent — they are the exception. They live in the settings table @:/Elysee/config under section resolv.conf, key nameserver. The name resolver reads this list on every lookup and uses the last entry. dhclient writes it automatically; you can also set it by hand:
Les serveurs DNS sont persistants — c'est l'exception. Ils résident dans la table de réglages @:/Elysee/config, section resolv.conf, clef nameserver. Le résolveur de noms lit cette liste à chaque requête et prend la dernière entrée. dhclient l'écrit automatiquement ; vous pouvez aussi la définir à la main :
sql UPDATE @:/Elysee/config/ SET valeur='9.9.9.9' \
WHERE section='resolv.conf' AND clef='nameserver'
The default seeded resolver is 10.0.2.3 (the QEMU user-mode DNS). Set a real resolver for a production deployment. Check resolution with dnslookup <host>.
Le résolveur par défaut est 10.0.2.3 (le DNS user-mode de QEMU). Définissez un vrai résolveur pour un déploiement en production. Vérifiez la résolution avec dnslookup <hôte>.
5. The settings storeLa table de réglages
@:/Elysee/config is not an INI file — it is a small TauriFS database table with three text columns: section, clef (key), valeur (value), one row per setting. It holds the settings that persist across reboot:
@:/Elysee/config n'est pas un fichier INI — c'est une petite table de base de données TauriFS à trois colonnes texte : section, clef, valeur, une ligne par réglage. Elle contient les réglages qui persistent au redémarrage :
| section | clef | PurposeRôle |
|---|---|---|
resolv.conf | nameserver | DNS server(s)Serveur(s) DNS |
timezone | std_offset, dst_offset, rule | Time zone and DSTFuseau horaire et heure d'été |
keyboard | layout | Keyboard layout (also via the clavier command)Disposition clavier (aussi via la commande clavier) |
smtp | server, from, to, user, password | Outgoing mail (used by mail, rapport and the self-service pages — see Mail)Courrier sortant (utilisé par mail, rapport et les pages de libre-service — voir Mail) |
web | domaine | Public name of the service, used in every link sent by e-mail (see Hosting)Nom public du service, employé dans chaque lien envoyé par courriel (voir Hébergement) |
ftp | pasv_min, pasv_max | FTPS passive port range (see SSH/FTP)Plage de ports passifs FTPS (voir SSH/FTP) |
Read it with ls @:/Elysee/config/ and edit it with the sql tool (UPDATE/INSERT). Note there is no key for IP address, netmask or gateway — those are runtime state, by design.
Consultez-la avec ls @:/Elysee/config/ et modifiez-la avec l'outil sql (UPDATE/INSERT). Notez qu'aucune clef ne concerne l'adresse IP, le masque ou la passerelle — ce sont des états runtime, par conception.
6. DiagnosticsDiagnostics
From Tauri's shell:Depuis le shell de Tauri :
| CommandCommande | ShowsAffiche |
|---|---|
sysinfo net | One line per interface: MAC, IP, mask, gateway, MTU and RX/TX drop counters.Une ligne par interface : MAC, IP, masque, passerelle, MTU et compteurs de pertes RX/TX. |
sysinfo arp | The ARP table (IP → MAC).La table ARP (IP → MAC). |
sysinfo netstat | TCP connections and their state.Les connexions TCP et leur état. |
sysinfo udpstat | UDP sockets and their bound interface.Les sockets UDP et leur interface liée. |
ping <host> | ICMP reachability and round-trip time.Joignabilité ICMP et temps d'aller-retour. |
dnslookup <host> | Resolve a name to an IPv4 address.Résout un nom en adresse IPv4. |
Next: serving websites (web root, virtual hosts, SNI) and TLS/ACME. Ensuite : servir des sites web (racine web, hôtes virtuels, SNI) et TLS/ACME.