2018-11-21 00:32:40 -06:00
|
|
|
HOWTO Use Virtual Switch (Docker)
|
2017-10-24 00:01:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
1. Create a docker with 32 front panel port
|
|
|
|
|
|
|
|
```
|
2017-11-03 19:13:39 -05:00
|
|
|
$ docker run -id --name sw debian bash
|
|
|
|
$ sudo ./create_vnet.sh sw
|
|
|
|
$ ip netns list
|
|
|
|
sw-srv31 (id: 37)
|
|
|
|
sw-srv30 (id: 35)
|
|
|
|
sw-srv29 (id: 34)
|
|
|
|
sw-srv28 (id: 33)
|
|
|
|
sw-srv27 (id: 32)
|
|
|
|
sw-srv26 (id: 31)
|
|
|
|
sw-srv25 (id: 30)
|
|
|
|
sw-srv24 (id: 29)
|
|
|
|
sw-srv23 (id: 28)
|
|
|
|
sw-srv22 (id: 27)
|
|
|
|
sw-srv21 (id: 26)
|
|
|
|
sw-srv20 (id: 25)
|
|
|
|
sw-srv19 (id: 24)
|
|
|
|
sw-srv18 (id: 23)
|
|
|
|
sw-srv17 (id: 22)
|
|
|
|
sw-srv16 (id: 21)
|
|
|
|
sw-srv15 (id: 20)
|
|
|
|
sw-srv14 (id: 19)
|
|
|
|
sw-srv13 (id: 18)
|
|
|
|
sw-srv12 (id: 17)
|
|
|
|
sw-srv11 (id: 16)
|
|
|
|
sw-srv10 (id: 15)
|
|
|
|
sw-srv9 (id: 14)
|
|
|
|
sw-srv8 (id: 13)
|
|
|
|
sw-srv7 (id: 12)
|
|
|
|
sw-srv6 (id: 11)
|
|
|
|
sw-srv5 (id: 10)
|
|
|
|
sw-srv4 (id: 9)
|
|
|
|
sw-srv3 (id: 8)
|
|
|
|
sw-srv2 (id: 7)
|
|
|
|
sw-srv1 (id: 6)
|
|
|
|
sw-srv0 (id: 5)
|
2017-10-24 00:01:42 -05:00
|
|
|
```
|
|
|
|
|
2017-11-03 19:13:39 -05:00
|
|
|
2. Start sonic virtual switch docker
|
2017-10-24 00:01:42 -05:00
|
|
|
|
|
|
|
```
|
2018-05-11 16:02:10 -05:00
|
|
|
$ docker run --privileged --network container:sw --name vs -d docker-sonic-vs
|
2017-10-24 00:01:42 -05:00
|
|
|
```
|
|
|
|
|
2017-11-03 19:13:39 -05:00
|
|
|
3. Setup IP in the virtual switch docker
|
|
|
|
|
|
|
|
```
|
|
|
|
$ docker exec -it vs bash
|
|
|
|
root@2e9b5c2dc2a2:/# ifconfig Ethernet0 10.0.0.0/31 up
|
|
|
|
root@2e9b5c2dc2a2:/# ifconfig Ethernet4 10.0.0.2/31 up
|
|
|
|
```
|
|
|
|
|
|
|
|
4. Setup IP in the server network namespace
|
|
|
|
|
|
|
|
```
|
|
|
|
$ sudo ip netns exec sw-srv0 ifconfig eth0 10.0.0.1/31
|
|
|
|
$ sudo ip netns exec sw-srv0 ip route add default via 10.0.0.0
|
|
|
|
$ sudo ip netns exec sw-srv1 ifconfig eth0 10.0.0.3/31
|
|
|
|
$ sudo ip netns exec sw-srv1 ip route add default via 10.0.0.2
|
|
|
|
```
|
|
|
|
|
|
|
|
5. Ping from sw-srv0 to sw-srv1
|
|
|
|
|
|
|
|
```
|
|
|
|
$ sudo ip netns exec sw-srv0 ping 10.0.0.3
|
|
|
|
PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.
|
|
|
|
64 bytes from 10.0.0.3: icmp_seq=1 ttl=63 time=0.137 ms
|
|
|
|
64 bytes from 10.0.0.3: icmp_seq=2 ttl=63 time=0.148 ms
|
|
|
|
64 bytes from 10.0.0.3: icmp_seq=3 ttl=63 time=0.149 ms
|
|
|
|
```
|