Use lang en-US for samples
This commit is contained in:
parent
f2f93440a7
commit
13dadd8c59
33 changed files with 318 additions and 0 deletions
|
|
@ -12,11 +12,13 @@ règles de filtrage, etc.
|
|||
En entrant dans un nouvel espace de nom `network`, on se retrouve dans un
|
||||
environnement qui n'a plus que l'interface de loopback :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh# unshare -n ip a
|
||||
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1
|
||||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||
```
|
||||
</div>
|
||||
|
||||
Qui dit nouvelle pile réseau, dit également que les ports qui étaient assignés
|
||||
dans l'espace principal, ne le sont plus dans le conteneur : il est donc
|
||||
|
|
@ -31,9 +33,11 @@ La suite d'outils `iproute2` propose une interface simplifiée pour utiliser le
|
|||
|
||||
Tout d'abord, nous allons créer un nouvel espace de nom :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh$ ip netns add virli
|
||||
```
|
||||
</div>
|
||||
|
||||
La technique utilisée ici pour avoir des *namespaces* nommés est la même que
|
||||
celle que nous avons vu dans la première partie sur les *namespaces* : via un
|
||||
|
|
@ -42,9 +46,11 @@ persister le namespace malgré le fait que plus aucun processus ne s'y exécute.
|
|||
|
||||
Maintenant que notre *namespace* est créé, voyons s'il contient des interfaces :
|
||||
|
||||
<div lang="en-US">
|
||||
```sh
|
||||
42sh$ ip netns exec virli ip link
|
||||
```
|
||||
</div>
|
||||
|
||||
Cette commande ne devrait vous montrer que l'interface de *loopback*, car nous
|
||||
n'avons pour l'instant pas encore attaché la moindre interface.
|
||||
|
|
@ -52,16 +58,20 @@ n'avons pour l'instant pas encore attaché la moindre interface.
|
|||
D'ailleurs, cette interface est rapportée comme étant désactivée, activons-là
|
||||
via la commande :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh$ ip netns exec virli ip link set dev lo up
|
||||
```
|
||||
</div>
|
||||
|
||||
Si tout se passe bien, vous devriez maintenant pouvoir lancer un `ping` sur
|
||||
cette interface :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh$ ip netns exec virli ping 127.0.0.1
|
||||
```
|
||||
</div>
|
||||
|
||||
|
||||
## *Virtual Ethernet*
|
||||
|
|
@ -74,9 +84,11 @@ centaines de conteneurs à gérer.
|
|||
Une technique couramment employée consiste à créer une interface virtuelle de
|
||||
type `veth` :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ip link add veth0 type veth peer name veth1
|
||||
```
|
||||
</div>
|
||||
|
||||
Une interface `veth` se comporte comme un tube bidirectionnel : tout ce qui
|
||||
entre d'un côté sort de l'autre et inversement. La commande précédente a donc
|
||||
|
|
@ -89,24 +101,30 @@ devient alors possible de réaliser un échange de paquet entre les deux.
|
|||
|
||||
Pour déplacer `veth1` dans notre *namespace* `virli` :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh# ip link set veth1 netns virli
|
||||
```
|
||||
</div>
|
||||
|
||||
Il ne reste plus maintenant qu'à assigner une IP à chacune des interfaces :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh# ip netns exec virli ip a add 10.10.10.42/24 dev veth1
|
||||
42sh# ip a add 10.10.10.41/24 dev veth0
|
||||
```
|
||||
</div>
|
||||
|
||||
Testons maintenant que la communication entre les deux passe bient :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh# ping 10.10.10.42
|
||||
- et -
|
||||
42sh# ip netns exec virli ping 10.10.10.41
|
||||
```
|
||||
</div>
|
||||
|
||||
Il ne reste donc pas grand chose à faire pour fournir Internet à notre
|
||||
conteneur, via un peu de NAT ou grâce à un pont Ethernet.
|
||||
|
|
@ -125,11 +143,13 @@ gourmande.
|
|||
Il est possible d'attribuer juste une interface de VLAN, si l'on a switch les
|
||||
supportant.
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
42sh# ip link add link eth0 name eth0.100 type vlan id 100
|
||||
42sh# ip link set dev eth0.100 up
|
||||
42sh# ip link set eth0.100 netns virli
|
||||
```
|
||||
</div>
|
||||
|
||||
|
||||
### MACVLAN
|
||||
|
|
@ -149,9 +169,11 @@ l'équipement réseau derrière la machine de rerouter le paquet vers la machine
|
|||
|
||||
Pour construire une nouvelle interface de ce type :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ip link add link eth0 mac0 type macvlan mode vepa
|
||||
```
|
||||
</div>
|
||||
|
||||
|
||||
#### *Bridge*
|
||||
|
|
@ -163,9 +185,11 @@ sortie.
|
|||
|
||||
Pour construire une nouvelle interface de ce type :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
ip link add link eth0 mac1 type macvlan mode bridge
|
||||
```
|
||||
</div>
|
||||
|
||||
|
||||
## Aller plus loin
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue