{"id":3538,"date":"2022-03-26T11:41:04","date_gmt":"2022-03-26T10:41:04","guid":{"rendered":"http:\/\/blogperso.union31.fr\/?p=3538"},"modified":"2022-04-09T09:01:54","modified_gmt":"2022-04-09T07:01:54","slug":"kvm-partie-reseau","status":"publish","type":"post","link":"https:\/\/blogperso.union31.fr\/?p=3538","title":{"rendered":"KVM : partie r\u00e9seau"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Sommaire<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#I_Presentation\" >I Pr\u00e9sentation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II_Management_des_reseaux\" >II Management des r\u00e9seaux<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II1_Visualiser_les_reseaux_KVM_et_bridges\" >II.1 Visualiser les r\u00e9seaux KVM (et bridges)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II2_Gestion_reseau_switch_virtuel\" >II.2 Gestion r\u00e9seau (switch virtuel)<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II21_Creation_dun_reseau_avec_virsh\" >II.2.1 Cr\u00e9ation d&rsquo;un r\u00e9seau avec virsh<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II211_Creation_dun_reseau_de_type_NAT\" >II.2.1.1 Cr\u00e9ation d&rsquo;un r\u00e9seau de type NAT<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II212_Creation_dun_reseau_isole\" >II.2.1.2 Cr\u00e9ation d&rsquo;un r\u00e9seau isol\u00e9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II213_Creation_dun_reseau_route\" >II.2.1.3 Cr\u00e9ation d&rsquo;un r\u00e9seau rout\u00e9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II214_Creation_dun_reseau_a_partir_dun_bridge_deja_existant\" >II.2.1.4 Cr\u00e9ation d&rsquo;un r\u00e9seau \u00e0 partir d&rsquo;un bridge d\u00e9j\u00e0 existant<\/a><ul class='ez-toc-list-level-6' ><li class='ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II2141_Creation_manuelle_via_la_commande_%C2%AB_nmcli_%C2%BB\" >II.2.1.4.1 Cr\u00e9ation manuelle via la commande \u00ab\u00a0nmcli\u00a0\u00bb<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II2142_Suppression_manuelle_via_la_commande_%C2%AB_nmcli_%C2%BB\" >II.2.1.4.2 Suppression manuelle via la commande \u00ab\u00a0nmcli\u00a0\u00bb<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II2143_Creation_via_une_interface_graphique\" >II.2.1.4.3 Cr\u00e9ation  via une interface graphique<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II2144_Association_du_bridge_au_reseau_KVM\" >II.2.1.4.4 Association du bridge au r\u00e9seau KVM :<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II2145_Tests\" >II.2.1.4.5 Tests<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II2146_Pourquoi_utiliser_ce_mode\" >II.2.1.4.6 Pourquoi utiliser ce mode<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#II22_Suppression_dun_reseau\" >II.2.2 Suppression d&rsquo;un r\u00e9seau<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/blogperso.union31.fr\/?p=3538\/#III_Aller_plus_loin_et_ressources\" >III Aller plus loin et ressources<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"I_Presentation\"><\/span>I Pr\u00e9sentation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Nous allons voir la partie r\u00e9seau dans KVM. Il va \u00eatre abord\u00e9 les bridges qui sont \u00e9galement nomm\u00e9s \u00ab\u00a0ponts\u00a0\u00bb ou \u00ab\u00a0r\u00e9seaux virtuels\u00a0\u00bb (virtual network) dans KVM.<\/p>\n\n\n\n<p>Un bridge est un switch virtuel. Pr\u00e9sent depuis longtemps dans le noyaux Linux, il a permis dans un premier temps de faire un switch \u00e0 partir des cartes r\u00e9seaux d&rsquo;un PC. La o\u00f9 cela devient int\u00e9ressant  c&rsquo;est la possibilit\u00e9 de brancher des cartes r\u00e9seaux virtuelles (de vm \ud83d\ude42 ) et de faire le pont (ou pas ) vers une ou plusieurs cartes physiques et acc\u00e9der ainsi \u00e0 d&rsquo;autres r\u00e9seaux ext\u00e9rieurs.<\/p>\n\n\n\n<p>L&rsquo;objectif est donc de montrer comment cr\u00e9er ces switchs et de les associer aux VM g\u00e9r\u00e9es par KVM.<\/p>\n\n\n\n<p>Cette pr\u00e9sentation a \u00e9t\u00e9 r\u00e9alis\u00e9e sous ubuntu 20.04.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II_Management_des_reseaux\"><\/span> II Management des r\u00e9seaux<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II1_Visualiser_les_reseaux_KVM_et_bridges\"><\/span>II.1 Visualiser les r\u00e9seaux KVM (et bridges)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Lister les r\u00e9seaux virtuels vue par KVM via la comande \u00ab\u00a0<strong>virsh<\/strong>\u00a0\u00bb :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-list --all<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"> Name              State    Autostart   Persistent\n----------------------------------------------------\n default           active   yes         yes\n mon_reseau_nat    active   yes         yes\n mon_reseau_virt   active   yes         yes<\/mark><\/code><\/pre>\n\n\n\n<p>Ainsi, nous voyons 3 switchs virtuels d\u00e9j\u00e0 existants. Le switch \u00ab\u00a0default\u00a0\u00bb est celui par d\u00e9faut utilisable directement par KVM. Il propose un acc\u00e8s de type NAT avec le service DHCP. Les 2 autres ont \u00e9t\u00e9 cr\u00e9\u00e9s ensuite. Cette commande ne permet pas de lister les r\u00e9seaux virtuels \u00ab\u00a0externes\u00a0\u00bb \u00e0 KVM dans un premier.<\/p>\n\n\n\n<p>En effet il est possible de cr\u00e9er des switchs virtuels sans passer par les commandes KVM, puis de les associer dans un deuxi\u00e8me temps. Ce cas sera vu un peu plus loin.<\/p>\n\n\n\n<p>Il est \u00e9galement possible de lister les switchs via la commande \u00ab\u00a0<strong>brctl<\/strong>\u00a0\u00bb :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">brctl show<\/mark>\nbridge name\tbridge id\t\tSTP enabled\tinterfaces\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">virbr0\t\t8000.5254008d5da7\tyes\t\t<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">virbr0-nic<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">\nvirbr1\t\t8000.5254008d5da8\tyes\t\t<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">virbr1-nic<\/mark>\n\t\t\t\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">vnet1<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">virbr2\t\t8000.5254003671f5\tyes\t\t<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">virbr2-nic<\/mark>\n\t\t\t\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">vnet0<\/mark>\n\t\t\t\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">vnet2<\/mark><\/code><\/pre>\n\n\n\n<p>En bleu les bridges pr\u00e9sents sur la machine h\u00f4te. En violet les cartes r\u00e9seau des VM qui sont actuellement en cours (si elles ne sont pas ex\u00e9cut\u00e9es, alors les interfaces vnet<strong>X<\/strong> ne seront pas vus.  Enfin en orange la carte du switch qui est branch\u00e9e vers le monde ext\u00e9rieur. C&rsquo;est par celle-ci que les donn\u00e9es peuvent sortir ou pas en fonction de ce que l&rsquo;on souhaite avoir.<\/p>\n\n\n\n<p>La colonne STP indique que le protocole spanning tree est activ\u00e9 sur le bridge.<\/p>\n\n\n\n<p>Autre mani\u00e8re de voir les bridges par le commande \u00ab\u00a0<strong>ip<\/strong>\u00a0\u00bb :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">ip add<\/mark>\n1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1\/8 scope host lo\n       valid_lft forever preferred_lft forever\n    inet6 ::1\/128 scope host \n       valid_lft forever preferred_lft forever\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">2: enp0s31f6: &lt;NO-CARRIER,BROADCAST,MULTICAST,UP&gt; mtu 1500 qdisc fq_codel state DOWN group default qlen 1000\n    link\/ether e4:b9:7a:6a:f2:52 brd ff:ff:ff:ff:ff:ff\n3: wlp2s0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000\n    link\/ether 5c:5f:67:ac:86:77 brd ff:ff:ff:ff:ff:ff\n    inet 192.168.217.203\/24 brd 192.168.217.255 scope global dynamic noprefixroute wlp2s0\n       valid_lft 3360sec preferred_lft 3360sec\n    inet6 fe80::5b11:33ca:5d35:63c3\/64 scope link noprefixroute \n       valid_lft forever preferred_lft forever<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">4: virbr1: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000\n    link\/ether 52:54:00:8d:5d:a8 brd ff:ff:ff:ff:ff:ff\n    inet 192.168.150.254\/24 brd 192.168.150.255 scope global virbr1\n       valid_lft forever preferred_lft forever\n<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">5: virbr1-nic: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc fq_codel master virbr1 state DOWN group default qlen 1000\n    link\/ether 52:54:00:8d:5d:a8 brd ff:ff:ff:ff:ff:ff<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">\n6: virbr2: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000\n    link\/ether 52:54:00:36:71:f5 brd ff:ff:ff:ff:ff:ff\n    inet 192.168.100.1\/24 brd 192.168.100.255 scope global virbr2\n       valid_lft forever preferred_lft forever\n<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">7: virbr2-nic: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc fq_codel master virbr2 state DOWN group default qlen 1000\n    link\/ether 52:54:00:36:71:f5 brd ff:ff:ff:ff:ff:ff<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">\n8: virbr0: &lt;NO-CARRIER,BROADCAST,MULTICAST,UP&gt; mtu 1500 qdisc noqueue state DOWN group default qlen 1000\n    link\/ether 52:54:00:8d:5d:a7 brd ff:ff:ff:ff:ff:ff\n    inet 192.168.122.1\/24 brd 192.168.122.255 scope global virbr0\n       valid_lft forever preferred_lft forever\n<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">9: virbr0-nic: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000\n    link\/ether 52:54:00:8d:5d:a7 brd ff:ff:ff:ff:ff:ff<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">17: vnet0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel master <\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>virbr2<\/strong><\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\"> state UNKNOWN group default qlen 1000\n    link\/ether fe:54:00:1e:bd:e2 brd ff:ff:ff:ff:ff:ff\n    inet6 fe80::fc54:ff:fe1e:bde2\/64 scope link \n       valid_lft forever preferred_lft forever\n18: vnet1: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel master <\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>virbr1<\/strong><\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\"> state UNKNOWN group default qlen 1000\n    link\/ether fe:54:00:aa:59:56 brd ff:ff:ff:ff:ff:ff\n    inet6 fe80::fc54:ff:feaa:5956\/64 scope link \n       valid_lft forever preferred_lft forever\n19: vnet2: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel master <\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>virbr2<\/strong><\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\"> state UNKNOWN group default qlen 1000\n    link\/ether fe:54:00:41:24:45 brd ff:ff:ff:ff:ff:ff\n    inet6 fe80::fc54:ff:fe41:2445\/64 scope link \n       valid_lft forever preferred_lft forever<\/mark><\/code><\/pre>\n\n\n\n<p>Par couleur :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>carte de bouclage (blanc) ;<\/li><li>cartes physiques filaire et wifi de l&rsquo;h\u00f4te,(rose) ;<\/li><li>les bridges ou switch virtuels (bleu) ;<\/li><li>les interfaces du bridge (en orange) ;<\/li><li>les cartes r\u00e9seaux des VM allum\u00e9es (violet).<\/li><\/ul>\n\n\n\n<p>Voir les propri\u00e9t\u00e9s d&rsquo;un r\u00e9seau :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-info --network mon_reseau_virt <\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Name:           mon_reseau_virt\nUUID:           3cb297d0-9a6d-4890-8fea-848e33c6ec88\nActive:         yes\nPersistent:     yes\nAutostart:      yes\nBridge:         virbr2<\/mark><\/code><\/pre>\n\n\n\n<p>Ces informations permettent de savoir :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>si le switch est actif ou non ;<\/li><li>si il sera charg\u00e9 \u00e0 chaque red\u00e9mmarage de l&rsquo;h\u00f4te ;<\/li><li>le nom vu sous Linux (ici virbr2).<\/li><\/ul>\n\n\n\n<p>Pour connaitre le d\u00e9tail d&rsquo;un r\u00e9seau et des fonctionnalit\u00e9s mises en oeuvre :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-dumpxml mon_reseau_nat <\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">&lt;network connections='1'&gt;\n  &lt;name&gt;mon_reseau_nat&lt;\/name&gt;\n  &lt;uuid&gt;603a985c-7549-4e8e-ae56-e3c3b4f8c987&lt;\/uuid&gt;\n  &lt;forward mode='nat'&gt;\n    &lt;nat&gt;\n      &lt;port start='1024' end='65535'\/&gt;\n    &lt;\/nat&gt;\n  &lt;\/forward&gt;\n  <strong>&lt;bridge name='virbr1' stp='on' delay='0'\/&gt;<\/strong>\n  &lt;mac address='52:54:00:8d:5d:a8'\/&gt;\n  &lt;ip address='192.168.150.254' netmask='255.255.255.0'&gt;\n    &lt;dhcp&gt;\n      &lt;range start='192.168.150.50' end='192.168.150.220'\/&gt;\n    &lt;\/dhcp&gt;\n  &lt;\/ip&gt;\n&lt;\/network&gt;<\/mark><\/code><\/pre>\n\n\n\n<p>Ainsi ce switch :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>utilise le principe de NAT ;<\/li><li>la pate WAN poss\u00e8de une mac adresse propre ;<\/li><li>porte le nom de \u00ab\u00a0virbr1\u00a0\u00bb ;<\/li><li>a une plage d&rsquo;adresse LAN 192.168.150.0\/24 et que l&rsquo;adresse IP de son interface est 192.168.150.254 ;<\/li><li>d\u00e9livre un service DHCP pour une plage IP allant de 192.168.150.50 \u00e0 220.<\/li><li><\/li><\/ul>\n\n\n\n<p>Il est aussi possible de visualiser les connexions r\u00e9seaux par un outil graphique via \u00ab\u00a0<strong>virt-manager<\/strong>\u00a0\u00bb :<\/p>\n\n\n\n<p>Apr\u00e8s le lancement, cliquer sur \u00ab\u00a0D\u00e9tails de la connexion\u00a0\u00bb dans le menu de l&rsquo;application :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau1.png\" alt=\"\" class=\"wp-image-3577\" width=\"465\" height=\"291\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau1.png 571w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau1-300x188.png 300w\" sizes=\"auto, (max-width: 465px) 100vw, 465px\" \/><\/figure>\n\n\n\n<p>Cliquer sur l&rsquo;onglet \u00ab\u00a0R\u00e9seaux virtuels\u00a0\u00bb :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau2.png\" alt=\"\" class=\"wp-image-3578\" width=\"620\" height=\"308\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau2.png 972w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau2-300x149.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau2-768x382.png 768w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/figure>\n\n\n\n<p>Possibilit\u00e9 de voir l&rsquo;\u00e9quivalent de la configuration en XML associ\u00e9e :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau3.png\" alt=\"\" class=\"wp-image-3579\" width=\"630\" height=\"344\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau3.png 1000w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau3-300x164.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_reseau3-768x419.png 768w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/figure>\n\n\n\n<p>Enfin, mais pas la derni\u00e8re m\u00e9thode, il est possible de visualiser les bridges via l&rsquo;interface graphique \u00ab\u00a0<strong>nm-connection-editor<\/strong>\u00a0\u00bb :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/nm-connection-editor1.png\" alt=\"\" class=\"wp-image-3572\" width=\"473\" height=\"325\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/nm-connection-editor1.png 667w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/nm-connection-editor1-300x206.png 300w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/figure>\n\n\n\n<p>Avec le d\u00e9tail comme suivant :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/nm-connection-editor2.png\" alt=\"\" class=\"wp-image-3573\" width=\"561\" height=\"489\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/nm-connection-editor2.png 813w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/nm-connection-editor2-300x262.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/nm-connection-editor2-768x670.png 768w\" sizes=\"auto, (max-width: 561px) 100vw, 561px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II2_Gestion_reseau_switch_virtuel\"><\/span>II.2 Gestion r\u00e9seau (switch virtuel)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Sous KVM les swicths sont appel\u00e9s \u00ab\u00a0r\u00e9seau\u00a0\u00bb ou \u00ab\u00a0network\u00a0\u00bb. C&rsquo;est une couche suppl\u00e9mentaire au dessus des bridges et qui permet d&rsquo;ajouter des services suppl\u00e9metaires \u00e0 de simple \u00ab\u00a0bridges\u00a0\u00bb.<\/p>\n\n\n\n<p>Nous allons voir la mise en oeuvre g\u00e9n\u00e9rale de d\u00e9claration d&rsquo;un r\u00e9seau KVM puis la cr\u00e9ation :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>d&rsquo;un r\u00e9seau supportant le NAT avec le service DHCP ;<\/li><li>d&rsquo;un r\u00e9seau isol\u00e9 de tout autre r\u00e9seau ;<\/li><li>d&rsquo;un r\u00e9seau dit \u00ab\u00a0rout\u00e9\u00a0\u00bb ;<\/li><li>d&rsquo;un r\u00e9seau utilisant un bridge ext\u00e9rieur (avec la cr\u00e9ation de ce dernier) ;<\/li><\/ul>\n\n\n\n<p>Enfin nous terminerons par la suppression de ces r\u00e9seaux\u00a0\u00bb.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II21_Creation_dun_reseau_avec_virsh\"><\/span>II.2.1 Cr\u00e9ation d&rsquo;un r\u00e9seau avec virsh<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>La cr\u00e9ation d&rsquo;un r\u00e9seau se fait en plusieurs \u00e9tapes en ligne de commande :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>cr\u00e9ation \u00e0 partir d&rsquo;un fichier xml ;<\/li><li>activation du r\u00e9seau ;<\/li><li>montage automatique (ou pas) du r\u00e9seau au d\u00e9marrage de l&rsquo;h\u00f4te.<\/li><\/ul>\n\n\n\n<p>Le r\u00e9seau est associ\u00e9 \u00e0 un bridge. Si ce dernier n&rsquo;existe pas alors il sera cr\u00e9\u00e9 automatiquement.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II211_Creation_dun_reseau_de_type_NAT\"><\/span>II.2.1.1 Cr\u00e9ation d&rsquo;un r\u00e9seau de type NAT<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<p>Donc dans un premier temps nous allons d\u00e9finir le fichier xml que l&rsquo;on nommera \u00ab\u00a0mon_reseau_nat1\u00a0\u00bb.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"xml\" class=\"language-xml\">&lt;network&gt;\n  &lt;name&gt;reseau_NAT1&lt;\/name&gt;\n  &lt;forward mode=\"nat\"\/&gt;\n  &lt;domain name=\"mon_reseau_NAT1\"\/&gt;\n  &lt;ip address=\"192.168.199.1\" netmask=\"255.255.255.0\"&gt;\n    &lt;dhcp&gt;\n      &lt;range start=\"192.168.199.128\" end=\"192.168.199.254\"\/&gt;\n    &lt;\/dhcp&gt;\n  &lt;\/ip&gt;\n&lt;\/network&gt;<\/code><\/pre>\n\n\n\n<p>Dans le fichier xml il est demand\u00e9 :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>un r\u00e9seau NAT\u00e9 avec l&rsquo;H\u00f4te (pas de carte r\u00e9seau d\u00e9finie, elle sera automatiquement selectionn\u00e9e) ;<\/li><li>un r\u00e9seau local dans la plage d&rsquo;adresse 192.168.199.0 avec comme passerelle 192.168.199.1 ;<\/li><li>un service DHCP d\u00e9livrant des adresses IP de 192.168.199.128 \u00e0 .254.<\/li><\/ul>\n\n\n\n<p>Nous allons cr\u00e9er ce r\u00e9seau avec \u00ab\u00a0<strong>virsh net-define<\/strong>\u00a0\u00bb :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-define --file mon_reseau_nat<\/mark>1 \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network reseau_NAT1 defined from mon_reseau_nat1<\/mark><\/code><\/pre>\n\n\n\n<p>Puis nous allons l&rsquo;activer et faire en sorte qu&rsquo;il soit d\u00e9marr\u00e9 \u00e0 chaque d\u00e9marrage de l&rsquo;h\u00f4te :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-start --network reseau_NAT1<\/mark> \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network reseau_NAT1 started<\/mark>\nxavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-autostart --network reseau_NAT1 <\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network reseau_NAT1 marked as autostarted<\/mark><\/code><\/pre>\n\n\n\n<p>On v\u00e9rifie si tout s&rsquo;est bien pass\u00e9 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-list --all<\/mark>\n Name              State    Autostart   Persistent\n----------------------------------------------------\n default           active   yes         yes\n mon_reseau_nat    active   yes         yes\n mon_reseau_virt   active   yes         yes\n <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>reseau_NAT1       active   yes         yes<\/strong><\/mark><\/code><\/pre>\n\n\n\n<p>A ce stade le r\u00e9seau est op\u00e9rationnel.<\/p>\n\n\n\n<p>Si on regarde maintenant la configuration du r\u00e9seau \u00ab\u00a0reseau_NAT1\u00a0\u00bb, on s&rsquo;aper\u00e7oit qu&rsquo;un certain nombre de lignes ont \u00e9t\u00e9 ajout\u00e9es (en vert) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">&lt;network&gt;\n  &lt;name&gt;reseau_NAT1&lt;\/name&gt;\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">  &lt;uuid&gt;d701d126-8283-4526-a409-5d9092152925&lt;\/uuid&gt;\n<\/mark>  &lt;forward mode='nat'&gt;\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">    &lt;nat&gt;\n      &lt;port start='1024' end='65535'\/&gt;\n    &lt;\/nat&gt;<\/mark>\n  &lt;\/forward&gt;\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">  &lt;bridge name='virbr3' stp='on' delay='0'\/&gt;<\/mark>\n  <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">&lt;mac address='52:54:00:16:c7:71'\/&gt;<\/mark>\n  &lt;domain name='mon_reseau_NAT1'\/&gt;\n  &lt;ip address='192.168.199.1' netmask='255.255.255.0'&gt;\n    &lt;dhcp&gt;\n      &lt;range start='192.168.199.128' end='192.168.199.254'\/&gt;\n    &lt;\/dhcp&gt;\n  &lt;\/ip&gt;\n&lt;\/network&gt;<\/code><\/pre>\n\n\n\n<p>Ainsi automatiquement :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>un \u00ab\u00a0uuid\u00a0\u00bb a \u00e9t\u00e9 d\u00e9fini ;<\/li><li>dans le cadre du NAT, les ports de r\u00e9ponse ont \u00e9t\u00e9 pr\u00e9cis\u00e9s ;<\/li><li>un bridge nomm\u00e9 \u00ab\u00a0virbr3\u00a0\u00bb a \u00e9t\u00e9 d\u00e9fini et cr\u00e9\u00e9 ;<\/li><li>une adresse MAC du bridge a \u00e9t\u00e9 d\u00e9finie.<\/li><\/ul>\n\n\n\n<p>A savoir qu&rsquo;il est possible de d\u00e9finir soi-m\u00eame ces valeurs. <\/p>\n\n\n\n<p>Maintenant nous allons associer ce r\u00e9seau \u00e0 la carte r\u00e9seau de la VM. Pour cela nous allons utiliser \u00ab\u00a0<strong>virt-manager<\/strong>\u00ab\u00a0, s\u00e9lectionner les propri\u00e9t\u00e9s de la VM, et se positioner sur la carte r\u00e9seau. Puis dans \u00ab\u00a0source du r\u00e9seau\u00a0\u00bb s\u00e9lectionner le r\u00e9seau \u00ab\u00a0reseau_NAT1\u00a0\u00bb :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_associer_reseaubridge1-1024x336.png\" alt=\"\" class=\"wp-image-3594\" width=\"766\" height=\"251\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_associer_reseaubridge1-1024x336.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_associer_reseaubridge1-300x99.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_associer_reseaubridge1-768x252.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_associer_reseaubridge1.png 1267w\" sizes=\"auto, (max-width: 766px) 100vw, 766px\" \/><\/figure>\n\n\n\n<p>Enfin lancer la VM et v\u00e9rifier :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"507\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_associer_reseaubridge2-1024x507.png\" alt=\"\" class=\"wp-image-3595\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_associer_reseaubridge2-1024x507.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_associer_reseaubridge2-300x148.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_associer_reseaubridge2-768x380.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/03\/virt-manager_associer_reseaubridge2.png 1275w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>On s&rsquo;aper\u00e7oit ainsi que la carte r\u00e9seau a bien re\u00e7u une adresse IP dans la tranche IP d\u00e9finie, ainsi qu&rsquo;une passerelle et l&rsquo;@IP de r\u00e9solution DNS.<\/p>\n\n\n\n<p> <\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II212_Creation_dun_reseau_isole\"><\/span>II.2.1.2 Cr\u00e9ation d&rsquo;un r\u00e9seau isol\u00e9<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<p>Le fichier XML ressemble \u00e0 celui d&rsquo;un NAT mais sans les balises \u00ab\u00a0&lt;forward&gt;\u00a0\u00bb. Dans le cas ci-dessous on demande \u00e9galement le service DHCP.  Le fichier associ\u00e9 sera \u00ab\u00a0mon_reseau_isole\u00a0\u00bb.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"xml\" class=\"language-xml\">&lt;network&gt;\n  &lt;name&gt;reseau_isole&lt;\/name&gt;\n  &lt;domain name=\"reseau_isole\"\/&gt;\n  &lt;ip address=\"192.168.102.1\" netmask=\"255.255.255.0\"&gt;\n    &lt;dhcp&gt;\n      &lt;range start=\"192.168.102.128\" end=\"192.168.102.254\"\/&gt;\n    &lt;\/dhcp&gt;\n  &lt;\/ip&gt;\n&lt;\/network&gt;<\/code><\/pre>\n\n\n\n<p>et les commandes pour activer ce r\u00e9seau :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-define mon_reseau_isole<\/mark> \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network reseau_isole defined from mon_reseau_isole<\/mark>\n\nxavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-start reseau_isole<\/mark> \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network reseau_isole started<\/mark>\n\nxavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-autostart reseau_isole<\/mark> \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network reseau_isole marked as autostarted<\/mark><\/code><\/pre>\n\n\n\n<p>Ce qui donne la d\u00e9finition finale suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@xavior-Latitude-7490:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-dumpxml reseau_isole <\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">\n&lt;network&gt;\n  &lt;name&gt;reseau_isole&lt;\/name&gt;\n  &lt;uuid&gt;1ae3c735-286f-4411-8a7a-b974a36c990f&lt;\/uuid&gt;\n  &lt;bridge name='virbr5' stp='on' delay='0'\/&gt;\n  &lt;mac address='52:54:00:93:b1:5d'\/&gt;\n  &lt;domain name='reseau_isole'\/&gt;\n  &lt;ip address='192.168.102.1' netmask='255.255.255.0'&gt;\n    &lt;dhcp&gt;\n      &lt;range start='192.168.102.128' end='192.168.102.254'\/&gt;\n    &lt;\/dhcp&gt;\n  &lt;\/ip&gt;\n&lt;\/network&gt;<\/mark>\n<\/code><\/pre>\n\n\n\n<p>L&rsquo;adresse IP 192.168.102.1 n&rsquo;est pas une passerelle mais l&rsquo;adresse IP du service DHCP.<\/p>\n\n\n\n<p>Ainsi toutes les VM qui ont leurs cartes virtuelles associ\u00e9es \u00e0 ce r\u00e9seau virtuel ne pourront pas discuter vers l&rsquo;ext\u00e9rieur mais seulement entre elles (sauf pour la r\u00e9solution DNS).<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II213_Creation_dun_reseau_route\"><\/span>II.2.1.3 Cr\u00e9ation d&rsquo;un r\u00e9seau rout\u00e9<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<p>Ce mode permet de relier une plage d&rsquo;adresses IP directement vers la ou les VM. Il n&rsquo;y a donc pas de m\u00e9canisme de type \u00ab\u00a0NAT \u00a0\u00bb d&rsquo;impl\u00e9ment\u00e9. C&rsquo;est principalement utilis\u00e9 dans le cadre de DMZ ou d&rsquo;h\u00e9bergment de serveurs virtuels (VM qui poss\u00e8de sa propre ip publique, CQFD)<\/p>\n\n\n\n<p>Dans ce post il ne sera pas montr\u00e9 en d\u00e9tail ce mode.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II214_Creation_dun_reseau_a_partir_dun_bridge_deja_existant\"><\/span>II.2.1.4 Cr\u00e9ation d&rsquo;un r\u00e9seau \u00e0 partir d&rsquo;un bridge d\u00e9j\u00e0 existant<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<p>Nous allons cr\u00e9er un r\u00e9seau virtuel (bridge) de type NAT avec DHCP interne sans passer par les outils virsh. Ensuite nous indiquerons \u00e0 KVM d&rsquo;utiliser ce bridge externe.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II2141_Creation_manuelle_via_la_commande_%C2%AB_nmcli_%C2%BB\"><\/span>II.2.1.4.1 Cr\u00e9ation manuelle via la commande \u00ab\u00a0nmcli\u00a0\u00bb<span class=\"ez-toc-section-end\"><\/span><\/h6>\n\n\n\n<p><span style=\"text-decoration: underline;\">Cr\u00e9ation d&rsquo;un bridge :<\/span><\/p>\n\n\n\n<p>La cr\u00e9ation du pont portera le nom de \u00ab\u00a0br0\u00a0\u00bb. Ceci pour le distinguer des ponts virtuels cr\u00e9\u00e9s par \u00ab\u00a0virsh\u00a0\u00bb dont les noms commencent par \u00ab\u00a0virbrX\u00a0\u00bb.<\/p>\n\n\n\n<p>Pour cela nous allons utiliser la commande \u00ab\u00a0<strong>nmcli<\/strong>\u00a0\u00bb et commencer par cr\u00e9er le bridge comme suivant :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection <strong>add<\/strong> ifname br0 <strong>type bridge<\/strong> con-name br0<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Connexion \u00ab&nbsp;br0&nbsp;\u00bb (c8000ccb-403a-4fda-a7ac-55426f673a6a) ajout\u00e9e avec succ\u00e8s.<\/mark><\/code><\/pre>\n\n\n\n<p><span style=\"text-decoration: underline;\">Ajout d&rsquo;une interface au r\u00e9seau. Ce sera une interface physique du PC H\u00f4te :<\/span><\/p>\n\n\n\n<p>Toujours avec la commande \u00ab\u00a0nmcli\u00a0\u00bb nous cr\u00e9ons une interface r\u00e9seau associ\u00e9e au bridge qui nous permettra d&rsquo;acc\u00e9der au r\u00e9seau ext\u00e9rieur.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection <strong>add type bridge-slave<\/strong> ifname enp0s31f6 master br0<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Connexion \u00ab&nbsp;bridge-slave-enp0s31f6&nbsp;\u00bb (0962144e-5828-4e0f-ae9b-311a086528e5) ajout\u00e9e avec succ\u00e8s.<\/mark><\/code><\/pre>\n\n\n\n<p>Un nom arbritraire a \u00e9t\u00e9 donn\u00e9 \u00e0 la connexion vers l&rsquo;interface physique (<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">bridge-slave-enp0s31f6<\/mark>). Il est possible d&rsquo;en sp\u00e9cifier un manuellement comme \u00ab\u00a0bridge-br0\u00a0\u00bb qui est souvent utilis\u00e9 sur d&rsquo;autres documentation internet. Nous concernant nous allons garder cette appellation.<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\">Activation du pont \u00ab\u00a0br0\u00a0\u00bb :<\/span><\/p>\n\n\n\n<p>Pour activer le switch avec la commande \u00ab\u00a0nmcli\u00a0\u00bb :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli con up br0<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Connexion activ\u00e9e (master waiting for slaves) (Chemin D-Bus actif : \/org\/freedesktop\/NetworkManager\/ActiveConnection\/68)<\/mark><\/code><\/pre>\n\n\n\n<p>I<span style=\"text-decoration: underline;\">ndiquer au pont que la communication est partag\u00e9e vers l&rsquo;ext\u00e9rieur (fonction NAT):<\/span><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection modify br0 ipv4.method shared<\/mark><\/code><\/pre>\n\n\n\n<p>A ce stade, le mode DHCP est activ\u00e9 automatiquement. Mais nous n&rsquo;avons pas d\u00e9fini la plage d&rsquo;adresses IP. Si on continue sans rien changer, la plage utilisable sera en 10.42.0.1\/24.<\/p>\n\n\n\n<p>I<span style=\"text-decoration: underline;\">ndiquer la plage d&rsquo;adresses IP  que l&rsquo;on souhaite :<\/span><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection modify br0 ipv4.addresses \"192.168.204.1\/24\"<\/mark><\/code><\/pre>\n\n\n\n<p><span style=\"text-decoration: underline;\">Pour faire prendre en compte les derni\u00e8res valeurs, il faut relancer le bridge :<\/span><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection down br0 <\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Connexion \u00ab br0 \u00bb d\u00e9sactiv\u00e9e (chemin D-Bus actif&nbsp;: \/org\/freedesktop\/NetworkManager\/ActiveConnection\/88)<\/mark>\nxavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection up br0<\/mark> \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Connexion activ\u00e9e (master waiting for slaves) (Chemin D-Bus actif : \/org\/freedesktop\/NetworkManager\/ActiveConnection\/90)<\/mark><\/code><\/pre>\n\n\n\n<p><span style=\"text-decoration: underline;\">V\u00e9rification :<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>via la commande \u00ab\u00a0<strong>ip<\/strong>\u00ab\u00a0<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">ip a<\/mark>\n1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1\/8 scope host lo\n       valid_lft forever preferred_lft forever\n    inet6 ::1\/128 scope host \n       valid_lft forever preferred_lft forever\n2: enp0s31f6: &lt;NO-CARRIER,BROADCAST,MULTICAST,UP&gt; mtu 1500 qdisc fq_codel state DOWN group default qlen 1000\n    link\/ether e4:b9:7a:6a:f2:52 brd ff:ff:ff:ff:ff:ff\n...\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">62: br0: &lt;NO-CARRIER,BROADCAST,MULTICAST,UP&gt; mtu 1500 qdisc noqueue state DOWN group default qlen 1000\n    link\/ether 22:f6:a6:33:44:48 brd ff:ff:ff:ff:ff:ff\n    <strong>inet 192.168.204.1\/24 brd 192.168.204.255 scope global noprefixroute br0<\/strong>\n       valid_lft forever preferred_lft forever<\/mark><\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>ou via la commande \u00ab\u00a0nmcli\u00a0\u00bb qui va donner toutes les propri\u00e9t\u00e9s du bridge :<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection show <strong>br0<\/strong><\/mark> \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">connection.id:                          br0\nconnection.uuid:                        c8000ccb-403a-4fda-a7ac-55426f673a6a\nconnection.stable-id:                   --\n<strong>connection.type:                        bridge<\/strong>\n<strong>connection.interface-name:              br0<\/strong>\nconnection.autoconnect:                 oui\n...\nconnection.wait-device-timeout:         -1\n<strong>ipv4.method:                            shared<\/strong>\nipv4.dns:                               --\nipv4.dns-search:                        --\nipv4.dns-options:                       --\nipv4.dns-priority:                      0\n<strong>ipv4.addresses:                         192.168.204.1\/24<\/strong>\nipv4.gateway:                           --\nipv4.routes:                            --\nipv4.route-metric:                      -1\nipv4.route-table:                       0 (unspec)\nipv4.routing-rules:                     --\nipv4.ignore-auto-routes:                non\nipv4.ignore-auto-dns:                   non\nipv4.dhcp-client-id:                    --\nipv4.dhcp-iaid:                         --\nipv4.dhcp-timeout:                      0 (default)\nipv4.dhcp-send-hostname:                oui\nipv4.dhcp-hostname:                     --\nipv4.dhcp-fqdn:                         --\nipv4.dhcp-hostname-flags:               0x0 (none)\nipv4.never-default:                     non\nipv4.may-fail:                          oui\nipv4.dad-timeout:                       -1 (default)\nipv6.method:                            auto\nipv6.dns:                               --\n...\nGENERAL.CON-PATH:                       \/org\/freedesktop\/NetworkManager\/Settings\/49\nGENERAL.ZONE:                           --\nGENERAL.MASTER-PATH:                    --\n<strong>IP4.ADDRESS[1]:                         192.168.204.1\/24\nIP4.GATEWAY:                            --\nIP4.ROUTE[1]:                           dst = 192.168.204.0\/24, nh = 0.0.0.0, mt = 425<\/strong><\/mark><\/code><\/pre>\n\n\n\n<p>Les valeurs en majuscules (IP4.XXX) indiquent celles qui sont actuellement prise en compte. Elles changent apr\u00e8s l&rsquo;activation du bridge en fonction des valeurs en minuscule.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II2142_Suppression_manuelle_via_la_commande_%C2%AB_nmcli_%C2%BB\"><\/span>II.2.1.4.2 Suppression manuelle via la commande \u00ab\u00a0nmcli\u00a0\u00bb<span class=\"ez-toc-section-end\"><\/span><\/h6>\n\n\n\n<p>Il faut supprimer l&rsquo;interface associ\u00e9 au bridge puis le bridge lui-m\u00eame.<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\">Ainsi avec \u00ab\u00a0nmcli\u00a0\u00bb :<\/span><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection delete <strong>bridge-slave-enp0s31f6<\/strong> <\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Connexion \u00ab&nbsp;bridge-slave-enp0s31f6&nbsp;\u00bb (0962144e-5828-4e0f-ae9b-311a086528e5) supprim\u00e9e.<\/mark>\nxavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection delete <strong>br0<\/strong><\/mark> \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Connexion \u00ab&nbsp;br0&nbsp;\u00bb (c8000ccb-403a-4fda-a7ac-55426f673a6a) supprim\u00e9e.<\/mark><\/code><\/pre>\n\n\n\n<p><span style=\"text-decoration: underline;\">V\u00e9rification :<\/span><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection show<\/mark> \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">NAME                 UUID                                  TYPE      DEVICE \nxavior               6652228b-eb27-4dc4-8ac2-47ae71436486  wifi      wlp2s0 \nvirbr0               3e8e35b6-6a63-494a-863f-25e9737a62f5  bridge    virbr0 \nvirbr1               39874e38-0033-49da-9032-a637055e8142  bridge    virbr1 \nvirbr2               e46b7321-eb5d-40f8-9338-a2c9c87ec639  bridge    virbr2 \nvirbr3               ec16a556-92bb-4c37-9cb6-ada06a254bb3  bridge    virbr3 \nvirbr4               c28f2679-0cd3-4241-bcfe-eb7fdb8b882c  bridge    virbr4 \nvirbr5               8eeeb4d8-9075-47f3-bc10-9ac8a97d91d9  bridge    virbr5 \nConnexion filaire 1  57aebe66-000e-3a04-a5cd-d90f02846365  ethernet  --     \nPif_Paf_Pouf_5G      f6293849-a986-46d6-b051-c262b755ad9a  wifi      --     \nxavchrys2            acf9fb68-84e6-442e-9aca-5831ff0a268b  wifi      --  <\/mark><\/code><\/pre>\n\n\n\n<p>A ce stade il n&rsquo;y a plus de bridge.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II2143_Creation_via_une_interface_graphique\"><\/span>II.2.1.4.3 Cr\u00e9ation  via une interface graphique<span class=\"ez-toc-section-end\"><\/span><\/h6>\n\n\n\n<p>Il est possible de cr\u00e9er un bridge via une interface graphique. Nous allons utiliser la commande \u00ab\u00a0nm-connection-editor\u00a0\u00bb.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">:~$ nm-connection-editor &amp;<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">[7] 351950\n[6]   Fini                    nm-connection-editor<\/mark><\/code><\/pre>\n\n\n\n<p>Ainsi la fen\u00eatre suivante appara\u00eet :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_0-1.png\" alt=\"\" class=\"wp-image-3666\" width=\"370\" height=\"300\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_0-1.png 622w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_0-1-300x244.png 300w\" sizes=\"auto, (max-width: 370px) 100vw, 370px\" \/><\/figure>\n\n\n\n<p>Nous pouvons voir l&rsquo;existence de bridge (pont) d\u00e9j\u00e0 pr\u00e9sents (qui ont \u00e9t\u00e9 cr\u00e9\u00e9s avec virsh ici). Nous allons maintenant cr\u00e9er notre propre pont externe \u00e0 KVM.<\/p>\n\n\n\n<p>Pour cela cliquer sur le bouton \u00ab\u00a0+\u00a0\u00bb en bas \u00e0 gauche :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_1.png\" alt=\"\" class=\"wp-image-3667\" width=\"503\" height=\"357\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_1.png 719w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_1-300x213.png 300w\" sizes=\"auto, (max-width: 503px) 100vw, 503px\" \/><\/figure>\n\n\n\n<p>Dans la boite d\u00e9roulante, choisir \u00ab\u00a0Pont\u00a0\u00bb puis cliquer sur le bouton \u00ab\u00a0Cr\u00e9er\u00a0\u00bb :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_2.png\" alt=\"\" class=\"wp-image-3668\" width=\"596\" height=\"546\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_2.png 774w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_2-300x275.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_2-768x704.png 768w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/figure>\n\n\n\n<p>A ce stade, le pont est cr\u00e9\u00e9. Nous allons maintenant ajouter une interface physique qui permettra de faire le lien vers l&rsquo;ext\u00e9rieur.<\/p>\n\n\n\n<p>Sous \u00ab\u00a0Pont entre connexions\u00a0\u00bb, cliquer sur le bouton \u00ab\u00a0Ajouter\u00a0\u00bb :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_3.png\" alt=\"\" class=\"wp-image-3669\" width=\"517\" height=\"240\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_3.png 708w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_3-300x139.png 300w\" sizes=\"auto, (max-width: 517px) 100vw, 517px\" \/><\/figure>\n\n\n\n<p>Selectionner \u00ab\u00a0Ethernet\u00a0\u00bb puis cliquer sur le bouton \u00ab\u00a0Cr\u00e9er\u00a0\u00bb :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_4.png\" alt=\"\" class=\"wp-image-3671\" width=\"577\" height=\"420\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_4.png 755w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_4-300x219.png 300w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><\/figure>\n\n\n\n<p>On va laisser le nom donn\u00e9 par l&rsquo;outil graphique. Pour rappel en ligne de commande le nom \u00e9tait \u00ab\u00a0<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">bridge-slave-enp0s31f6<\/mark>\u00ab\u00a0.<\/p>\n\n\n\n<p>A ce stade il n&rsquo;est pas neccessaire de d\u00e9finir manuellement une interface physique dans la liste &lsquo;P\u00e9riph\u00e9rique\u00a0\u00bb. Ce sera fait automatiquement.<\/p>\n\n\n\n<p>Cliquer sur le bouton \u00ab\u00a0Enregistrer\u00a0\u00bb pour retrouver la fen\u00eatre suivante :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_5.png\" alt=\"\" class=\"wp-image-3673\" width=\"535\" height=\"518\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_5.png 735w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_5-300x290.png 300w\" sizes=\"auto, (max-width: 535px) 100vw, 535px\" \/><\/figure>\n\n\n\n<p>On remarque que l&rsquo;interface physique \u00ab\u00a0Esclave bridge0 1\u00a0\u00bb est pr\u00e9sente dans la liste \u00ab\u00a0Pont entre connexions\u00a0\u00bb.<\/p>\n\n\n\n<p>Nous allons maintenant faire en sorte que le bridge communique vers l&rsquo;ext\u00e9rieur. Pour cela cliquer sur l&rsquo;onglet \u00ab\u00a0Param\u00e8tres IPv4\u00a0\u00bb :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_6.png\" alt=\"\" class=\"wp-image-3674\" width=\"518\" height=\"501\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_6.png 731w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_6-300x290.png 300w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/figure>\n\n\n\n<p>Dans la liste \u00ab\u00a0M\u00e9thode\u00a0\u00bb, s\u00e9lectionner le mode \u00ab\u00a0<strong>Partag\u00e9 avec d&rsquo;autres ordinateurs<\/strong>\u00ab\u00a0. A ce stade le bridge communiquera vers l&rsquo;ext\u00e9rieur et un r\u00e9seau DHCP est activ\u00e9.<\/p>\n\n\n\n<p>Pour sp\u00e9cifier la plage IP du DHCP il faut l&rsquo;indiquer dans \u00ab\u00a0Adresse (optionnel)\u00a0\u00bb. Pour cela cliquer sur le bouton \u00ab\u00a0Ajouter\u00a0\u00bb et renseigner comme suivant :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_7.png\" alt=\"\" class=\"wp-image-3675\" width=\"497\" height=\"485\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_7.png 724w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_7-300x293.png 300w\" sizes=\"auto, (max-width: 497px) 100vw, 497px\" \/><\/figure>\n\n\n\n<p>Une fois fait cliquer sur le bouton \u00ab\u00a0Enregistrer\u00a0\u00bb. L&rsquo;\u00e9cran suivant fait appara\u00eetre le nom bridge :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_8-1.png\" alt=\"\" class=\"wp-image-3677\" width=\"409\" height=\"379\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_8-1.png 609w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_8-1-300x278.png 300w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><\/figure>\n\n\n\n<p>Ainsi nous avons notre bridge \u00ab\u00a0Connexion pont 1\u00a0\u00bb (\u00ab\u00a0br0&Prime; quand il a \u00e9t\u00e9 cr\u00e9\u00e9 manuellement) et l&rsquo;association \u00e0 la carte physique &lsquo;Esclave bridge0 1\u00a0\u00bb.<\/p>\n\n\n\n<p>A ce stade la configuration est termin\u00e9e.<\/p>\n\n\n\n<p>Mais il va falloir activer manuellement ce pont :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection up <strong>\"Connexion pont 1\"<\/strong><\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Connexion activ\u00e9e (master waiting for slaves) (Chemin D-Bus actif : \/org\/freedesktop\/NetworkManager\/ActiveConnection\/93)<\/mark>\nxavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection up <strong>\"Esclave bridge0 1\"<\/strong><\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Connexion activ\u00e9e (chemin D-Bus actif&nbsp;: \/org\/freedesktop\/NetworkManager\/ActiveConnection\/95)<\/mark><\/pre>\n\n\n\n<p>V\u00e9rification :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_PC:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection show<\/mark>\nNAME                 UUID                                  TYPE      DEVICE    \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>Connexion pont 1     74e84b60-8e9b-4499-a04b-ede32c150ad3  bridge    bridge0<\/strong>   \nxavior               6652228b-eb27-4dc4-8ac2-47ae71436486  wifi      wlp2s0    \nvirbr0               3e8e35b6-6a63-494a-863f-25e9737a62f5  bridge    virbr0    \nvirbr1               39874e38-0033-49da-9032-a637055e8142  bridge    virbr1    \nvirbr2               e46b7321-eb5d-40f8-9338-a2c9c87ec639  bridge    virbr2    \nvirbr3               ec16a556-92bb-4c37-9cb6-ada06a254bb3  bridge    virbr3    \nvirbr4               c28f2679-0cd3-4241-bcfe-eb7fdb8b882c  bridge    virbr4    \nvirbr5               8eeeb4d8-9075-47f3-bc10-9ac8a97d91d9  bridge    virbr5    \n<strong>Esclave bridge0 1    3c356e22-93b2-445b-95e8-ac0f5eaf6b58  ethernet  enp0s31f6<\/strong> <\/mark>\nConnexion filaire 1  57aebe66-000e-3a04-a5cd-d90f02846365  ethernet  --        \nPif_Paf_Pouf_5G      f6293849-a986-46d6-b051-c262b755ad9a  wifi      --        \nxavchrys2            acf9fb68-84e6-442e-9aca-5831ff0a268b  wifi      --        <\/code><\/pre>\n\n\n\n<p>A ce stade le pont est cr\u00e9\u00e9 et utilisable.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II2144_Association_du_bridge_au_reseau_KVM\"><\/span>II.2.1.4.4 Association du bridge au r\u00e9seau KVM :<span class=\"ez-toc-section-end\"><\/span><\/h6>\n\n\n\n<p>Nous allons maintenant indiquer \u00e0 KVM d&rsquo;utiliser le bridge (et ainsi de ne pas le faire cr\u00e9\u00e9r).<\/p>\n\n\n\n<p>Ainsi on cr\u00e9e un fichier XML nomm\u00e9 \u00ab\u00a0mon_reseau_pont1\u00a0\u00bb qui contiendra les donn\u00e9es suivantes :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"xml\" class=\"language-xml\">&lt;network &gt;\n  &lt;name&gt;Connexion_pont_1&lt;\/name&gt;\n  <strong>&lt;forward mode=\"bridge\"\/&gt;<\/strong>\n  <strong>&lt;bridge name=\"Connexion pont 1\"\/&gt;<\/strong>\n&lt;\/network&gt;<\/code><\/pre>\n\n\n\n<p>Ainsi on sp\u00e9cifie le mode \u00ab\u00a0<strong>bridge<\/strong>\u00a0\u00bb pour indiquer qu&rsquo;il faut utiliser un bridge d\u00e9j\u00e0 existant ainsi que le nom du bridge \u00e0 utiliser (\u00ab\u00a0connexion pont 1\u00a0\u00bb)<\/p>\n\n\n\n<p>Maintenant on l&rsquo;enregistre dans KVM :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-define --file <strong>mon_reseau_pont1<\/strong> <\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network Connexion_pont_1 defined from mon_reseau_pont1<\/mark>\n\nxavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-start --network <strong>Connexion_pont_1 <\/strong><\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network Connexion_pont_1 started<\/mark>\n\nxavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-autostart --network Connexion_pont_1<\/mark> \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network Connexion_pont_1 marked as autostarted<\/mark><\/code><\/pre>\n\n\n\n<p>Et pour bien s&rsquo;assurer que ce pont est pris en compte avec KVM :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-list <\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"> Name                State    Autostart   Persistent\n------------------------------------------------------\n <strong>Connexion_pont_1    active   yes         yes<\/strong>\n default             active   yes         yes\n mon_reseau_br0      active   yes         yes\n mon_reseau_nat      active   yes         yes\n mon_reseau_NAT2     active   yes         yes\n mon_reseau_route1   active   yes         yes\n mon_reseau_virt     active   yes         yes\n reseau_isole        active   yes         yes<\/mark><\/pre>\n\n\n\n<p>A ce stade c&rsquo;est termin\u00e9. <\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II2145_Tests\"><\/span>II.2.1.4.5 Tests<span class=\"ez-toc-section-end\"><\/span><\/h6>\n\n\n\n<p>Nous allons voir au sein d&rsquo;un VM si cela fonctionne. Pour cela on choisit une VM d\u00e9j\u00e0 install\u00e9e et on d\u00e9finit le r\u00e9seau virtuel avec ce pont :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_9-1024x583.png\" alt=\"\" class=\"wp-image-3688\" width=\"799\" height=\"455\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_9-1024x583.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_9-300x171.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_9-768x438.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_9.png 1362w\" sizes=\"auto, (max-width: 799px) 100vw, 799px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<p>Puis apr\u00e8s avoir lanc\u00e9 la VM, on v\u00e9rifie bien que cela marche : et bien non \ud83d\ude41<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_10-1024x528.png\" alt=\"\" class=\"wp-image-3690\" width=\"661\" height=\"341\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_10-1024x528.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_10-300x155.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_10-768x396.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_10.png 1356w\" sizes=\"auto, (max-width: 661px) 100vw, 661px\" \/><\/figure>\n\n\n\n<p>Le nom du pont est trop long &#8230;<\/p>\n\n\n\n<p>Apr\u00e8s avoir renommer le nom du brigde et refait la laison kvm :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-list<\/mark> \n <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Name                State    Autostart   Persistent\n------------------------------------------------------\n default             active   yes         yes\n mon_reseau_nat      active   yes         yes\n mon_reseau_NAT2     active   yes         yes\n mon_reseau_route1   active   yes         yes\n mon_reseau_virt     active   yes         yes\n<strong> Pont_1              active   yes         yes<\/strong>\n reseau_isole        active   yes         yes<\/mark>\n\nxavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">nmcli connection show<\/mark> \nNAME                 UUID                                  TYPE      DEVICE    \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Pont1                e235568f-8857-47ec-a83f-51290d1f74d0  bridge    Pont1 <\/mark>    \nxavior               6652228b-eb27-4dc4-8ac2-47ae71436486  wifi      wlp2s0    \nvirbr0               53c8ad8f-e8d4-4ac5-bafb-9d73f8de34eb  bridge    virbr0    \nvirbr1               24b475b2-dfde-4a63-ae88-5673f3a44482  bridge    virbr1    \nvirbr2               23e7bcfd-0ba7-4271-9541-e7bce4f672f3  bridge    virbr2    \nvirbr3               69ef9a3b-7c1c-4346-931e-ac07a6bed648  bridge    virbr3    \nvirbr4               ec3ee72d-7a23-4b20-b513-efbee061f02e  bridge    virbr4    \nvirbr5               60a82af1-fed5-4497-beb3-c135ee7952af  bridge    virbr5    \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Esclave Pont1 1      d5d39a4d-edd6-40b7-9d10-039893f6ae33  ethernet  enp0s31f6<\/mark> \nConnexion filaire 1  57aebe66-000e-3a04-a5cd-d90f02846365  ethernet  --        \nPif_Paf_Pouf_5G      f6293849-a986-46d6-b051-c262b755ad9a  wifi      --        \nxavchrys2            acf9fb68-84e6-442e-9aca-5831ff0a268b  wifi      --        \n<\/pre>\n\n\n\n<p>Et maintenant en image :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_11-1-1024x650.png\" alt=\"\" class=\"wp-image-3697\" width=\"724\" height=\"460\" srcset=\"https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_11-1-1024x650.png 1024w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_11-1-300x190.png 300w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_11-1-768x487.png 768w, https:\/\/blogperso.union31.fr\/wp-content\/uploads\/2022\/04\/nm_connection_bridge_11-1.png 1253w\" sizes=\"auto, (max-width: 724px) 100vw, 724px\" \/><\/figure>\n\n\n\n<p>\ud83d\ude42<\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II2146_Pourquoi_utiliser_ce_mode\"><\/span>II.2.1.4.6 Pourquoi utiliser ce mode<span class=\"ez-toc-section-end\"><\/span><\/h6>\n\n\n\n<p>Pemi\u00e8rement pour des raisons de performances et ne pas passer par la gestion du module libvirt (virsh). En revanche les options avanc\u00e9es comme le DHCP ou le DNS g\u00e9r\u00e9 par libvirt ne seront pas utilisables.<\/p>\n\n\n\n<p>Ce mode est \u00e9galement utilis\u00e9 pour utiliser d&rsquo;autres switchs virtuels tel que \u00ab\u00a0OpenVSwitch\u00a0\u00bb par exemple, ou ceux comme nous l&rsquo;avons int\u00e9gr\u00e9s au noyau Linux.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"II22_Suppression_dun_reseau\"><\/span>II.2.2 Suppression d&rsquo;un r\u00e9seau <span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Apr\u00e8s avoir cr\u00e9\u00e9 un r\u00e9seau avec virsh, nous allons maintenant voir comment le supprimer :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-destroy --network reseau_NAT1<\/mark> \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network reseau_NAT1 destroyed<\/mark><\/code><\/pre>\n\n\n\n<p>A ce stade le r\u00e9seau \u00ab\u00a0reseau_NAT1\u00a0\u00bb est <span style=\"text-decoration: underline;\">juste<\/span> d\u00e9sactiv\u00e9 &#8230;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-list --all<\/mark>\n Name              State      Autostart   Persistent\n------------------------------------------------------\n default           active     yes         yes\n mon_reseau_nat    active     yes         yes\n mon_reseau_virt   active     yes         yes\n <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">reseau_NAT1       <strong>inactive<\/strong>   yes         yes<\/mark><\/code><\/pre>\n\n\n\n<p>Il faut maintenant utiliser cette commande pour enlever d\u00e9finitivement ce r\u00e9seau :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-undefine --network reseau_NAT1 <\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">Network reseau_NAT1 has been undefined<\/mark><\/code><\/pre>\n\n\n\n<p>et en v\u00e9rifiant en listant les r\u00e9seaux virtuels, le r\u00e9seau \u00ab\u00a0reseau_NAT1\u00a0\u00bb a bien disparu :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">xavior@mon_pc:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">virsh net-list --all<\/mark>\n Name              State    Autostart   Persistent\n----------------------------------------------------\n default           active   yes         yes\n mon_reseau_nat    active   yes         yes\n mon_reseau_virt   active   yes         yes<\/code><\/pre>\n\n\n\n<p>Et c\u00f4t\u00e9 VM, l&rsquo;acc\u00e8s r\u00e9seau est coup\u00e9. Il faudra associ\u00e9 sur la carte r\u00e9seau de la VM un autre r\u00e9seau.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"III_Aller_plus_loin_et_ressources\"><\/span>III Aller plus loin et ressources<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Nous avons vu une introduction globale au r\u00e9seaux virtuels sous KVM et Linux.<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\">Pour aller plus loin :<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>cr\u00e9er une VM avec plusieurs cartes r\u00e9seaux virtuelles associ\u00e9es \u00e0 des switchs virtuels diff\u00e9rents ;<\/li><li>mettre en oeuvre le mode \u00ab\u00a0routed\u00a0\u00bb ;<\/li><li>utiliser un switch virtuel de type OpenVSwitch ;<\/li><li>r\u00e9seau commun antre 2 hyperviseurs KVM ;<\/li><li>vision des r\u00e9seaux c\u00f4t\u00e9 \u00ab\u00a0IPATBLES\u00a0\u00bb et voir diff\u00e9rence quand manag\u00e9 par KVM(libvirt) ou par linux(nmcli) ;<\/li><li>etc.<\/li><\/ul>\n\n\n\n<p><span style=\"text-decoration: underline;\">Ressources internet :<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>vmnet &#8211;> cartes virtuelles (nomm\u00e9e \u00e9galement TAP) des VM branch\u00e9es sur un bridge<ul><li><a href=\"https:\/\/unix.stackexchange.com\/questions\/52855\/what-is-the-difference-between-virbr-and-vnet\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/unix.stackexchange.com\/questions\/52855\/what-is-the-difference-between-virbr-and-vnet<\/a><\/li><\/ul><\/li><li>Ressources KVM (libvirt) :<ul><li><a href=\"https:\/\/libvirt.org\/formatnetwork.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/libvirt.org\/formatnetwork.html<\/a><br><a href=\"https:\/\/wiki.libvirt.org\/page\/Networking\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/wiki.libvirt.org\/page\/Networking<\/a><br><\/li><\/ul><\/li><li>Gestion bridge (Linux) <ul><li>nmcli : <a href=\"https:\/\/developer-old.gnome.org\/NetworkManager\/stable\/nmcli-examples.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/developer-old.gnome.org\/NetworkManager\/stable\/nmcli-examples.html<\/a><\/li><li>ip link et autres : <a href=\"https:\/\/developers.redhat.com\/blog\/2018\/10\/22\/introduction-to-linux-interfaces-for-virtual-networking#bridge\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/developers.redhat.com\/blog\/2018\/10\/22\/introduction-to-linux-interfaces-for-virtual-networking#bridge<\/a><\/li><\/ul><\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I Pr\u00e9sentation Nous allons voir la partie r\u00e9seau dans KVM. Il va \u00eatre abord\u00e9 les bridges qui sont \u00e9galement nomm\u00e9s \u00ab\u00a0ponts\u00a0\u00bb ou \u00ab\u00a0r\u00e9seaux virtuels\u00a0\u00bb (virtual network) dans KVM. Un bridge est un switch virtuel. Pr\u00e9sent depuis longtemps dans le noyaux<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-3538","post","type-post","status-publish","format-standard","hentry","category-_systeme"],"_links":{"self":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts\/3538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3538"}],"version-history":[{"count":149,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts\/3538\/revisions"}],"predecessor-version":[{"id":3752,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=\/wp\/v2\/posts\/3538\/revisions\/3752"}],"wp:attachment":[{"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogperso.union31.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}