Comment faire une matrice de flux dans Excel
Une matrice de flux liste, ligne par ligne, quelle machine a besoin de parler à quelle autre, sur quel port et pour quelle raison. C’est le document que l’équipe réseau réclame avant d’ouvrir la moindre règle sur le pare-feu. Un audit le ressort ensuite deux ans plus tard, pour savoir pourquoi cette règle existe toujours.
Le mot matrice prête pourtant à confusion, parce que ce qui circule est presque toujours une longue liste à plat. Cette liste donne une ligne par flux, là où le nom promet un tableau à double entrée. Les deux formes servent, et un tableur les tient toutes les deux, la liste pour déclarer les flux et le croisement pour les lire. Le fichier d’exemple porte les deux, sur les quatorze flux d’une application de facturation.
Matrice de flux réseau
Télécharge le classeur de l’article pour refaire chaque étape sur les mêmes données.
Qu’est-ce qu’une matrice de flux en informatique
Une matrice de flux décrit les échanges réseau d’une application, en nommant pour chacun sa source, sa destination et le service utilisé. Elle sert de contrat entre celui qui déploie l’application et celui qui tient le pare-feu. Le premier dit ce dont il a besoin, le second ouvre exactement cela et rien d’autre.
Un flux, ici, n’est ni un débit ni un flux de données au sens large. C’est un couple source-destination associé à un protocole et à un port, comme le serveur applicatif qui interroge la base sur le port 1433 en TCP. Tant que ces quatre éléments ne sont pas écrits, personne ne peut décider si l’échange est légitime.
Le document sert bien au-delà de l’ouverture initiale. Il dit pourquoi chaque règle du pare-feu existe, ce qui permet de fermer sans trembler celles dont l’application a disparu. Il devient aussi une pièce de la cartographie du système d’information, à côté du schéma réseau et de l’inventaire des serveurs. Un tableur lui convient d’ailleurs mieux qu’un traitement de texte, puisqu’on y trie, on y filtre et on y compte.
Quelles colonnes mettre dans une matrice de flux réseau
Onze colonnes suffisent, et chacune répond à une question que l’équipe réseau posera de toute façon. Les six premières décrivent les deux bouts du flux et les deux suivantes le service utilisé. Les trois dernières servent à instruire la demande, puis à la suivre dans le temps.
| Colonne | Ce qu’elle porte | Pourquoi elle y est |
|---|---|---|
| A, Source | Le nom du serveur qui ouvre la connexion | Un nom reste stable quand l’adresse change |
| B, Zone source | La zone réseau où ce serveur vit | C’est elle qui décide si le flux traverse un pare-feu |
| C, IP source | Son adresse, ou le sous-réseau entier pour un parc de postes | C’est ce que la règle du pare-feu porte réellement |
| D, Destination | Le nom du serveur contacté | Celui qui écoute, jamais celui qui répond |
| E, Zone destination | La zone réseau de la destination | Le couple de zones suffit à dire quel équipement filtre |
| F, IP destination | L’adresse d’écoute | Une destination en cluster porte souvent une adresse virtuelle |
| G, Protocole | TCP, UDP ou ICMP | Le même port ne veut pas dire le même service selon le protocole |
| H, Port | Le port d’écoute, côté destination | Le port source est tiré au hasard et ne se déclare pas |
| I, Justification | Ce que le flux permet de faire | Sans elle, plus personne n’ose fermer la règle |
| J, Statut | À ouvrir, Ouvert, Refusé ou À fermer | La matrice sert aussi de suivi de la demande |
| K, Doublon | Un signal quand le flux figure déjà plus haut | Une demande en double coûte une instruction pour rien |
Le sens du flux ne se déclare pas dans une colonne à part, il se lit dans l’ordre source puis destination. La source est la machine qui ouvre la connexion, jamais celle qui répond, et c’est l’erreur la plus fréquente d’une matrice remplie vite. Un poste qui consulte une application web en est la source, même si tout le contenu de la page voyage ensuite dans l’autre sens.
Les zones méritent quant à elles une colonne à elles seules, parce que le pare-feu ne filtre qu’entre elles. Deux serveurs d’une même zone se parlent sans qu’aucune règle soit nécessaire, alors que le moindre saut de zone demande une ouverture. Le fichier d’exemple en compte cinq, des postes utilisateurs jusqu’au socle commun qui porte l’annuaire, la sauvegarde et les mises à jour.
Remplir la matrice de flux dans Excel, un flux par ligne
La feuille Flux du fichier d’exemple porte quatorze flux, une ligne chacun, ceux d’une application de facturation à trois étages. Elle se remplit de gauche à droite, et trois colonnes se choisissent dans une liste déroulante plutôt que de se taper. Un même nom de zone écrit de trois façons ferait rater tous les comptages qui suivent.
L’onglet Flux, sans les colonnes d’adresses, de justification et de statut.
| A | B | D | E | G | H | |
|---|---|---|---|---|---|---|
| 1 | Source | Zone source | Destination | Zone destination | Protocole | Port |
| 2 | POSTES | Utilisateurs | SRV-WEB01 | DMZ | TCP | 443 |
| 3 | POSTES | Utilisateurs | SRV-WEB02 | DMZ | TCP | 443 |
| 4 | SRV-WEB01 | DMZ | SRV-WEB02 | DMZ | TCP | 7800 |
| 5 | SRV-WEB01 | DMZ | SRV-APP01 | Applicatif | TCP | 8080 |
| 6 | SRV-WEB02 | DMZ | SRV-APP01 | Applicatif | TCP | 8080 |
| 7 | SRV-WEB01 | DMZ | SRV-AD01 | Socle | TCP | 389 |
| 8 | SRV-WEB02 | DMZ | SRV-AD01 | Socle | TCP | 389 |
| 9 | SRV-APP01 | Applicatif | SRV-SQL01 | Données | TCP | 1433 |
| 10 | SRV-APP01 | Applicatif | SRV-AD01 | Socle | TCP | 389 |
| 11 | SRV-APP01 | Applicatif | SRV-SAUV01 | Socle | TCP | 9392 |
| 12 | SRV-APP01 | Applicatif | SRV-MAJ01 | Socle | TCP | 8530 |
| 13 | SRV-SQL01 | Données | SRV-SAUV01 | Socle | TCP | 9392 |
| 14 | SRV-SQL01 | Données | SRV-MAJ01 | Socle | TCP | 8530 |
| 15 | SRV-WEB01 | DMZ | SRV-MAJ01 | Socle | TCP | 8530 |
- 01Ouvre la feuille Flux et descends jusqu’à la ligne 16, la première ligne vide, reconnaissable à ses cases jaunes.

La ligne 16 attend, en jaune, sous les quatorze flux d’exemple. - 02Écris en
A16le nom du serveur qui ouvre la connexion, puis son adresse enC16. - 03Choisis sa zone en
B16dans la liste déroulante, qui reprend les cinq zones de la feuille Listes. - 04Renseigne de la même façon la destination en
D16, sa zone enE16et son adresse d’écoute enF16.
La liste reprend les cinq zones tenues par la feuille Listes. - 05Choisis le protocole en
G16, tape le port d’écoute enH16, puis écris enI16ce que ce flux permet de faire. - 06Termine par le statut en
J16, qui reste sur À ouvrir tant que la règle n’existe pas sur le pare-feu.
La colonne Doublon se remplit toute seule et reste verrouillée, comme toutes les cellules du fichier qui portent un calcul. Les zones, les protocoles et les statuts viennent de la feuille Listes, où ils occupent les plages A2:A6, B2:B4 et C2:C5. C’est là qu’il faut aller pour en ajouter un.
Une justification vague coûte cher plus tard, donc écris ce que le flux permet de faire plutôt que sa nature technique. « Sauvegarde quotidienne de la base » se relit encore dans deux ans. « Flux SQL » n’apprend rien à personne, et condamne la règle à rester ouverte par prudence.
Repérer un flux déjà présent avant de l’envoyer au pare-feu
Un flux déclaré deux fois n’ouvre rien de plus, il fait seulement instruire deux fois la même demande. Le cas arrive dès que plusieurs personnes remplissent la matrice chacune de leur côté. Il arrive aussi quand on recolle un bloc de lignes venu d’un autre projet sans le relire.
La colonne Doublon compte, pour chaque ligne, combien de lignes portent la même source, la même destination, le même protocole et le même port. Au-delà d’une, elle affiche À vérifier, sur la ligne nouvelle comme sur celle qui existait déjà. Reste alors à choisir laquelle des deux garder.
=SI($A2="";"";SI(NB.SI.ENS($A$2:$A$16;$A2;$D$2:$D$16;$D2;$G$2:$G$16;$G2;$H$2:$H$16;$H2)>1;"À vérifier";""))Affiche À vérifier quand la source, la destination, le protocole et le port se répètent.
Le premier SI laisse la case vide tant que la ligne n’a pas de source, si bien que la ligne de saisie reste muette jusqu’à ce qu’on y écrive un flux. NB.SI.ENS rendrait d’ailleurs 0 sur cette ligne sans lui, puisqu’un critère qui pointe sur une case vide ne retient aucune case vide, mais le test rend la règle lisible au premier coup d’œil. Les quatre colonnes retenues sont celles qui définissent un flux, et la justification en est volontairement exclue, parce que deux personnes décrivent rarement le même besoin avec les mêmes mots.
Recopie les cases A15 à J15 sur la ligne 16 pour voir la formule travailler, et les deux lignes s’allument ensemble. Laisse la colonne Doublon hors de la copie, car la feuille protège ses formules et refuserait de coller une ligne entière. La suppression des doublons ferait le ménage d’un seul coup, mais elle supprime sans rien montrer, alors qu’une matrice de flux se relit avant de se raccourcir.
Croiser les zones source et destination dans un tableau croisé dynamique
Le croisement transforme la liste en vrai tableau à double entrée, les zones de départ en lignes et les zones d’arrivée en colonnes. Quatre glisser-déposer y suffisent, et le tableau croisé dynamique fait le comptage sans qu’on écrive la moindre formule.
- 01Sélectionne la plage
A1:K15de la feuille Flux, qui contient les quatorze flux et leur ligne d’en-têtes. - 02Ouvre l’onglet Insertion, clique sur Tableau croisé dynamique, puis choisis Nouvelle feuille de calcul.

La plage sélectionnée arrive déjà remplie. - 03Fais glisser Zone source dans la zone Lignes du volet de droite, et Zone destination dans la zone Colonnes.
- 04Fais glisser Source dans la zone Valeurs, et Excel affiche Nombre de Source, puisque cette colonne contient du texte.

Les trois champs en place, et la matrice se remplit.
Le croisement obtenu, sur sa nouvelle feuille.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 3 | Nombre de Source | Étiquettes de colonnes | ||||
| 4 | Étiquettes de lignes | Applicatif | DMZ | Données | Socle | Total général |
| 5 | Applicatif | 1 | 3 | 4 | ||
| 6 | DMZ | 2 | 1 | 3 | 6 | |
| 7 | Données | 2 | 2 | |||
| 8 | Utilisateurs | 2 | 2 | |||
| 9 | Total général | 2 | 3 | 1 | 8 | 14 |
Le résultat se lit d’un coup d’œil. La DMZ émet six flux dont trois vers le socle commun, et le socle en reçoit huit sans jamais en ouvrir un seul, ce qu’on attend précisément d’une zone de services partagés. La case qui croise la DMZ avec elle-même porte un 1, la réplication des sessions entre les deux frontaux, et rien ne distingue cette case de la diagonale des autres pour Excel.
Ce tableau a pourtant deux défauts qu’il vaut mieux connaître avant de l’envoyer à l’équipe réseau. Le premier saute aux yeux dès qu’on compte les axes, quatre lignes et quatre colonnes alors que le réseau compte cinq zones. Le socle n’a pas de ligne parce qu’aucun flux ne part de lui, et les postes utilisateurs n’ont pas de colonne parce qu’aucun flux n’arrive chez eux.
La raison tient à la façon dont les deux axes se construisent. Chacun ne prend que les valeurs distinctes de sa propre colonne, si bien qu’une zone absente de la colonne Zone source ne peut pas apparaître en ligne, quoi qu’elle fasse par ailleurs. Une matrice à laquelle il manque une ligne et une colonne n’est plus vraiment une matrice, et l’oubli passe d’autant mieux inaperçu que le total général, lui, reste juste à quatorze.
Le second défaut est plus discret. Les couples de zones sans aucun flux restent des cases vides au lieu d’afficher un zéro, donc rien ne distingue à l’œil un échange volontairement fermé d’un échange auquel personne n’a pensé. C’est pourtant la distinction que l’équipe sécurité cherche en premier quand elle relit une matrice.
Tenir compte du tri alphabétique des deux axes
Excel range les deux axes par ordre alphabétique, ce qui donne Applicatif, DMZ, Données puis Utilisateurs et perd l’ordre de traversée du réseau. Sur une matrice de flux, cet ordre compte, parce qu’un flux qui remonte des données vers les postes n’a pas du tout le même sens qu’un flux qui descend. La feuille Croisement du fichier d’exemple garde pour cette raison l’ordre du réseau, des postes jusqu’au socle.
Actualiser le croisement après chaque flux ajouté
Un tableau croisé dynamique travaille sur une copie des données, prise au moment où il a été créé, et il continue d’afficher l’ancien comptage tant qu’un clic droit puis Actualiser ne le réveille pas. La plage choisie plus haut s’arrête en outre à la ligne 15, donc un flux écrit en ligne 16 n’y entre pas du tout, même après actualisation. La fiche du tableau croisé dynamique détaille ce cache et les quatre zones du volet, que cet article n’a fait qu’effleurer.
Compter les flux de chaque zone avec NB.SI.ENS
Une formule remplace le croisement quand la matrice doit rester carrée et se recalculer toute seule. La feuille Croisement du fichier d’exemple porte les cinq zones sur ses deux axes, dans l’ordre du réseau, et chaque case compte les flux qui vont de la zone de sa ligne vers celle de sa colonne.
=NB.SI.ENS(Flux!$B$2:$B$16;$A2;Flux!$E$2:$E$16;B$1)Compte les flux qui partent de la zone écrite en A2 vers celle écrite en B1.
L’onglet Croisement, les cinq zones sur les deux axes.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Zone source | Utilisateurs | DMZ | Applicatif | Données | Socle | Flux sortants |
| 2 | Utilisateurs | 0 | 2 | 0 | 0 | 0 | 2 |
| 3 | DMZ | 0 | 1 | 2 | 0 | 3 | 6 |
| 4 | Applicatif | 0 | 0 | 0 | 1 | 3 | 4 |
| 5 | Données | 0 | 0 | 0 | 0 | 2 | 2 |
| 6 | Socle | 0 | 0 | 0 | 0 | 0 | 0 |
| 7 | Flux entrants | 0 | 3 | 2 | 1 | 8 | 14 |
Les dollars font ici tout le travail. $A2 fige la colonne et laisse le numéro de ligne courir, B$1 fige la ligne et laisse la lettre courir, si bien qu’une seule formule recopiée sur les vingt-cinq cases remplit la matrice entière. La fonction NB.SI.ENS accepte autant de paires plage et critère qu’on veut, et deux suffisent quand on ne croise que deux colonnes.
La différence avec le croisé dynamique se voit sur deux lignes. Le socle garde la sienne, entièrement à zéro, ce qui dit noir sur blanc qu’il ne prend jamais l’initiative d’une connexion. Les postes utilisateurs gardent leur colonne, à zéro elle aussi, et c’est la meilleure nouvelle de toute la matrice puisque rien ne vient frapper à leur porte.
Les totaux se lisent alors dans les deux sens. La colonne Flux sortants additionne ce qu’une zone émet, la ligne Flux entrants ce qu’elle reçoit, et les deux tombent sur quatorze, le nombre de flux déclarés. Une zone dont le total sortant grimpe d’une version à l’autre mérite qu’on regarde ce qu’on lui a demandé entre-temps.
Faire ressortir les couples de zones les plus chargés
Une mise en forme conditionnelle colore les cases qui dépassent deux flux, et le fichier d’exemple en pose une seule, réglée sur cette valeur. Deux cases s’allument, la DMZ vers le socle et l’applicatif vers le socle, toutes les deux dans la même colonne. Ce sont les couples sur lesquels une règle groupée fera gagner le plus de temps à l’équipe réseau.

Traduire une matrice de flux en anglais
Une matrice de flux s’appelle flow matrix, et le terme circule tel quel dès qu’un projet réunit plusieurs pays. Les en-têtes se traduisent presque un pour un, à deux exceptions près qui changent la structure même du tableau.
| En français | En anglais |
|---|---|
| Matrice de flux | Flow matrix |
| Flux | Flow |
| Zone source | Source zone |
| Zone destination | Destination zone |
| Protocole | Protocol |
| Port | Port |
| Justification | Business justification |
| Pare-feu | Firewall |
| Règle | Rule |
| Ouvrir un flux | Open a flow |
La première exception tient au port et au protocole, qu’une matrice anglaise réunit souvent dans une colonne Service, où HTTPS remplace à lui seul TCP et 443. La seconde touche le statut, remplacé par une colonne Action qui ne connaît que deux valeurs, Allow et Deny, parce qu’elle décrit la règle du pare-feu et non l’avancement de la demande.
Garde malgré tout les deux colonnes séparées dans ton fichier de travail. Un nom de service se discute et varie d’un éditeur à l’autre, un numéro de port non, et c’est le numéro que l’équipe réseau finira par te demander.
Questions fréquentes
On les range d’abord par sens. Un flux entrant vient de l’extérieur vers ton système, un flux sortant part vers Internet ou vers un partenaire, et un flux interne relie deux zones de ton propre réseau. On les range ensuite par nature, les flux applicatifs dont ton logiciel a besoin pour fonctionner et les flux d’administration, sauvegarde, supervision et mises à jour, qui existent pour tous les serveurs. Le fichier d’exemple mélange les deux, les trois flux vers le serveur de mises à jour appartenant à la seconde famille.
Oui, une par application ou par projet, parce que c’est à cette maille que les flux se justifient et se ferment. Une matrice unique pour tout le système d’information devient vite illisible, et plus personne n’ose y supprimer une ligne. Garde en revanche les mêmes colonnes et les mêmes noms de zones d’un fichier à l’autre, ce qui permet de les empiler le jour où tu veux une vue d’ensemble.
Pas vraiment, parce que les deux ne disent pas la même chose. Un outil de supervision observe le trafic réel et montre ce qui circule, alors que la matrice déclare ce qui doit circuler et pourquoi, y compris pour une application qui n’est pas encore installée. Les outils servent surtout à confronter les deux, et à repérer les règles ouvertes que plus personne n’utilise.
Parce que la plage choisie comprend une ligne sans données. Dans le fichier d’exemple, la ligne 16 paraît vide mais sa colonne Doublon porte une formule, donc Excel la compte dans le tableau et lui fabrique une étiquette (vide). Sélectionne A1:K15 au lieu de laisser Excel proposer sa plage, et le total général ne bouge pas, puisque cette ligne n’apportait aucun flux.
Change l’adresse dans les colonnes C et F partout où ce serveur apparaît, et laisse son nom tel quel. C’est pour cette raison que la matrice porte à la fois le nom et l’adresse, le nom servant de repère stable quand l’adresse bouge. Le croisement des zones ne bouge pas non plus, puisqu’il travaille sur les zones et pas sur les adresses.