ooooo        ooooo ooooo      ooo ooooo     ooo ooooooo  ooooo   .oooooo.   ooooooooo.   
     `888'        `888' `888b.     `8' `888'     `8'  `8888    d8'   d8P'  `Y8b  `888   `Y88. 
      888          888   8 `88b.    8   888       8     Y888..8P    888      888  888   .d88' 
      888          888   8   `88b.  8   888       8      `8888'     888      888  888ooo88P'  
      888          888   8     `88b.8   888       8     .8PY888.    888      888  888`88b.    
      888       o  888   8       `888   `88.    .8'    d8'  `888b   `88b    d88'  888  `88b.  
     o888ooooood8 o888o o8o        `8     `YbodP'    o888o  o88888o  `Y8bood8P'  o888o  o888o 

2016 - Linux NET Namespace - Prepojenie dvoch sieťových menných priestorov (ns1, ns2) - pomocou páru veth adaptérov

FILE: 2016-linuxnamespace-net-ns-veth-veth-ns.md
DATE: 11/2016
UPDATED:
AUTHOR: Ladislav Hajzer -> lala (at) linuxor (dot) sk
VERSION: 1

1 Schéma

                        +--------------------+                       +--------------------+
    (PID = 12112)       | ns1          veth1 |=========kabel=========| veth2          ns2 |     (PID = 12130)
                        +--------------------+                       +--------------------+
                           namespace "ns1"                               namespace "ns2"

2 Vytvorenie sieťových menných priestorov

Vytvoríme dva ("ns1" a "ns2") sieťové (NET) menné priestory.

# ip netns add ns1
# ip netns add ns2

3 Spustenie procesov v menných priestoroch

  • [1]TERM1 - V sieťovom mennom priestore "ns1" spustíme (exec) príkaz "bash". PID = 12112
  • [2]TERM1 - Zistíme PID BASH procesu.
  • [3]TERM2 - V sieťovom mennom priestore "ns2" spustíme (exec) príkaz "bash". PID = 12130
  • [4]TERM2 - Zistíme PID BASH procesu.
[1]TERM1# ip netns exec ns1 bash
[2]TERM1# echo $$
----------------------------------------------------------------------------------------------------------------
12112
----------------------------------------------------------------------------------------------------------------
[3]TERM2# ip netns exec ns2 bash
[4]TERM2# echo $$
----------------------------------------------------------------------------------------------------------------
12130

4 Vytvorenie páru virtuálnych Ethernet zariadení

  • [1] - Vytvorime par virtualnych Ethernet zariadeni, ktore budu predstavovat sietovy kabel s dvoma RJ45 koncovkami, pricom nasledne jednu stranu (veth1) umiestnime do menneho priestoru "ns1" a druhu stranu (veth2) umiestnime do menneho priestoru "ns2".
  • [2] - Virtualny ethernet adapter "veth1" umiestnime do sietoveho menneho "ns1".
  • [3] - Virtualny ethernet adapter "veth1" umiestnime do sietoveho menneho "ns2".
[1]# ip link add veth1 type veth peer name veth2
[2]# ip link set veth1 netns ns1
[3]# ip link set veth2 netns ns2

5 Zapnutie virtuálnych Ethernet zariadení v menných priestoroch a otestovanie komunikácie

  • [1] - Zapneme sieťový adaptér "veth1" v mennom priestore "ns1" a nastavíme na ňom IP adresu "10.0.0.1".
  • [2] - Zapneme sieťový adaptér "veth2" v mennom priestore "ns2" a nastavíme na ňom IP adresu "10.0.0.2".
  • [3] - Zo sieťového menného priestoru "ns1" otestujeme sieťovú komunikáciu so sieťovým menným priestorom "ns2".
  • [4] - Zo sieťového menného priestoru "ns2" otestujeme sieťovú komunikáciu so sieťovým menným priestorom "ns1".
[1] # ip netns exec ns1 ifconfig veth1 10.0.0.1/24 up 
[2]# ip netns exec ns2 ifconfig veth2 10.0.0.2/24 up 
[3]# ip netns exec ns1 ping 10.0.0.2
----------------------------------------------------------------------------------------------------------------
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.022 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.036 ms
...
----------------------------------------------------------------------------------------------------------------
[4]# ip netns exec ns2 ping 10.0.0.1
----------------------------------------------------------------------------------------------------------------
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.069 ms
...