Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:linux:ip [2023/11/20 13:42] benoit [Network Name Space] |
informatique:linux:ip [2023/11/21 06:32] (Version actuelle) benoit [Création d'une bridge] |
||
---|---|---|---|
Ligne 53: | Ligne 53: | ||
Un namespace réseau fournit un environnement réseau isolé, ce qui signifie que les interfaces réseau, les tables de routage, les règles de pare-feu, etc., peuvent être spécifiques à ce namespace sans affecter les autres parties du système. | Un namespace réseau fournit un environnement réseau isolé, ce qui signifie que les interfaces réseau, les tables de routage, les règles de pare-feu, etc., peuvent être spécifiques à ce namespace sans affecter les autres parties du système. | ||
+ | |||
+ | ==== Création d'un premier réseau isolé ==== | ||
Pour lister les namespaces : | Pour lister les namespaces : | ||
Ligne 75: | Ligne 77: | ||
exit | exit | ||
- | Pour ajouter une interface Ethernet virtuelle | + | Pour ajouter une paire d'interfaces Ethernet virtuelle en capacité de communiquer entre elles : |
ip link add xeth0 type veth | ip link add xeth0 type veth | ||
ip a | ip a | ||
- | On peut constater la création de deux interfaces ''veth0@xeth0'' et ''xeth0@veth0'' : | + | On peut constater la création des deux interfaces **veth0@xeth0** et **xeth0@veth0** : |
- | 14: veth0@xeth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default qlen 1000 | + | 7: veth0@xeth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default qlen 1000 |
link/ether 4e:c3:ad:3d:c9:98 brd ff:ff:ff:ff:ff:ff | link/ether 4e:c3:ad:3d:c9:98 brd ff:ff:ff:ff:ff:ff | ||
- | 15: xeth0@veth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default qlen 1000 | + | 8: xeth0@veth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default qlen 1000 |
link/ether 02:48:50:e3:54:f3 brd ff:ff:ff:ff:ff:ff | link/ether 02:48:50:e3:54:f3 brd ff:ff:ff:ff:ff:ff | ||
- | On ajoute l'interface Ethernet virtuelle ''veth0'' à l'espace ''netns01'': | + | |
+ | On affecte l'une des interfaces Ethernet virtuelle à l'espace **netns01**, par exemple **veth0** : | ||
ip link set veth0 netns netns01 | ip link set veth0 netns netns01 | ||
- | ip a | ||
- | On peut constater que l'interface N°15 à disparu et que l'interface 14 a été modifiée : | + | Par la commande ''ip a'', on constate qu'il ne reste plus qu'une interface : |
- | 14: veth0@if15: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 | + | 8: xeth0@if7: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 |
+ | link/ether 02:48:50:e3:54:f3 brd ff:ff:ff:ff:ff:ff link-netns netns01 | ||
+ | |||
+ | Par la commande ''ip --netns netns01 a'', on constate l'interface basculée sur le namespace **netns01** : | ||
+ | 7: veth0@if8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 | ||
link/ether 4e:c3:ad:3d:c9:98 brd ff:ff:ff:ff:ff:ff link-netnsid 0 | link/ether 4e:c3:ad:3d:c9:98 brd ff:ff:ff:ff:ff:ff link-netnsid 0 | ||
- | Par la commande suivante : | + | On active chacune des interfaces, celle de base et celle qui est dans le namespace : |
- | ip netns exec netns01 ip a | + | ip link set xeth0 up |
+ | ip netns exec netns01 ip link set veth0 up | ||
- | L'interface N°15 est dans le namespace : | + | On affecte une adresse IP dans un même réseau à chacune des interfaces |
- | 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 | + | ip addr add 192.168.0.1/24 dev xeth0 |
- | link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 | + | ip netns exec netns01 ip addr add 192.168.0.2/24 dev veth0 |
- | 14: veth0@if15: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 | + | |
- | link/ether 4e:c3:ad:3d:c9:98 brd ff:ff:ff:ff:ff:ff link-netnsid 0 | + | Pour tester on lancer un ping depuis le namespace **netns01** : |
+ | ip netns exec netns01 ping 192.168.0.1 | ||
+ | |||
+ | ==== Création d'un second réseau isolé ==== | ||
+ | |||
+ | On applique les mêmes commandes que le tuto ci-dessus : | ||
+ | |||
+ | # Création namespace | ||
+ | ip netns add netns02 | ||
+ | # Création d'une paire d'interfaces | ||
+ | ip link add xeth1 type veth peer name veth1 | ||
+ | # Affectation d'une des interfaces au namespace | ||
+ | ip link set veth1 netns netns02 | ||
+ | # Activation de interfaces | ||
+ | ip link set xeth1 up | ||
+ | ip netns exec netns02 ip link set veth1 up | ||
+ | # Configuration des adresses IP | ||
+ | ip addr add 192.168.1.1/24 dev xeth1 | ||
+ | ip netns exec netns02 ip addr add 192.168.1.2/24 dev veth1 | ||
+ | |||
+ | ==== Création d'un bridge ==== | ||
+ | |||
+ | :!: A revoir :!: | ||
+ | |||
+ | L'objectif est de permettre les réseaux de communiquer vers l'extérieur. | ||
+ | |||
+ | Création d'une interface bridge nommée **br0** : | ||
+ | ip link add br0 type bridge | ||
+ | |||
+ | Activation de l'interface : | ||
+ | ip link set br0 up | ||
+ | |||
+ | On affecte au bridge des adresses IP dans les mêmes réseaux que nos réseau isolé : | ||
+ | ip addr add 192.168.0.254/24 dev br0 | ||
+ | ip addr add 192.168.1.254/24 dev br0 | ||
+ | Attachement des interface Ethernet virtuelle au bridge : | ||
+ | ip link set xeth0 master br0 | ||
+ | ip link set xeth1 master br0 | ||
+ | Ajouter les passerelles par défaut pour chacun de nos réseau isolés : | ||
+ | ip netns exec netns01 ip route add default via 192.168.0.254 | ||
+ | ip netns exec netns02 ip route add default via 192.168.1.254 |