Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
Add information for topology and NCTU
  • Loading branch information
Yi-Tseng committed Apr 12, 2016
1 parent 3d0eb8b commit 0fc1ce0
Showing 1 changed file with 9 additions and 114 deletions.
123 changes: 9 additions & 114 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,121 +17,16 @@ Basic requirements:
- 8GB memory or higher.
- 10 GB space or higher.

How to install demo vm:
Topology:

- Clone submodules
```bash
$ git submodule update --init
```
Basically, we emulate SDN-IP topology from [Taiwan NCTU](http://www.nctu.edu.tw/en) peering site.

- Start VM
```bash
$ vagrant up
```
More information, see our [intro video](https://www.youtube.com/watch?v=a8LR1DyzGY4) or [slide](http://www.slideshare.net/FeiJiSiao/global-sdnip-deployment-at-nctu-taiwan)
![SDN-IP topology](https://raw.githubusercontent.com/sdnds-tw/SDN-IP-Example-VM/master/screenshots/SDNIP-Topology.jpg)

To use:
Getting started:
See [Getting Started](https://github.com/sdnds-tw/SDN-IP-Example-VM/wiki/Getting-started)

- Connect to vm via ssh
```bash
$ vagrant ssh
```

- Switch user to root
```bash
$ sudo su
```

- Check cell settings
```bash
$ cell
```

- Start ONOS
```bash
$ ok clean
```

- In ONOS console, start proxyarp and fwd app
```
onos> app activate org.onosproject.proxyarp
onos> app activate org.onosproject.sdnip
```

- Push SDN-IP network config
```bash
$ onos-netcfg $OC1 sdndstw-sdnip.json
```

- Start demo mininet, let routers exchange their information
```bash
$ # For Quagga version
$ ./sdnip_quagga.py

$ # For GoBGP version
$ ./sdnip_gobgp.py
```

- Use ```routes``` command in ONOS console, should get all network routes (might be different between Quagga and GobGP version)
```bash
onos> routes
Network Next Hop
192.168.4.0/24 192.168.3.11
192.168.5.0/24 192.168.2.11
Total IPv4 routes = 2

Network Next Hop
Total IPv6 routes = 0
```

- In mininet, we can use ```hostname ip route``` command to get routing table in router.
```bash
mininet> quagga1 ip route
192.168.1.0/24 dev quagga1-eth0 proto kernel scope link src 192.168.1.11
192.168.2.0/24 dev quagga1-eth1 proto kernel scope link src 192.168.2.10
192.168.4.0/24 via 192.168.1.12 dev quagga1-eth0 proto zebra
192.168.5.0/24 via 192.168.2.11 dev quagga1-eth1 proto zebra
mininet> quagga2 ip route
192.168.1.0/24 dev quagga2-eth0 proto kernel scope link src 192.168.1.12
192.168.3.0/24 dev quagga2-eth1 proto kernel scope link src 192.168.3.10
192.168.4.0/24 via 192.168.3.11 dev quagga2-eth1 proto zebra
192.168.5.0/24 via 192.168.1.11 dev quagga2-eth0 proto zebra
mininet> kreonet ip route
192.168.2.0/24 dev kreonet-eth1 proto kernel scope link src 192.168.2.11
192.168.4.0/24 via 192.168.2.10 dev kreonet-eth1 proto zebra
192.168.5.0/24 dev kreonet-eth0 proto kernel scope link src 192.168.5.1
mininet> amlight ip route
192.168.3.0/24 dev amlight-eth1 proto kernel scope link src 192.168.3.11
192.168.4.0/24 dev amlight-eth0 proto kernel scope link src 192.168.4.1
192.168.5.0/24 via 192.168.3.10 dev amlight-eth1 proto zebra
```

- In mininet, we can use host ```khost``` from kreonet to ping ```ahost``` from amlight.
```bash
mininet> khost ping -c4 ahost
PING 192.168.4.10 (192.168.4.10) 56(84) bytes of data.
64 bytes from 192.168.4.10: icmp_seq=1 ttl=62 time=0.906 ms
64 bytes from 192.168.4.10: icmp_seq=2 ttl=62 time=0.077 ms
64 bytes from 192.168.4.10: icmp_seq=3 ttl=62 time=0.452 ms
64 bytes from 192.168.4.10: icmp_seq=4 ttl=62 time=0.089 ms

--- 192.168.4.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.077/0.381/0.906/0.338 ms
```

- Also, we can use iperf to test network.
```bash
mininet> ahost iperf -s&
mininet> khost iperf -c ahost
------------------------------------------------------------
Client connecting to 192.168.4.10, TCP port 5001
TCP window size: 264 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.5.10 port 34400 connected with 192.168.4.10 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 15.8 GBytes 13.6 Gbits/sec
```

And we can see traffic generated by iperf, from kreonet to amlight

![screenshot1](https://raw.githubusercontent.com/sdnds-tw/SDN-IP-Example-VM/master/screenshots/screenshot1.png)
Reference:
- [SDN-IP Global Deployment, ONS 2016](http://events.linuxfoundation.org/sites/events/files/slides/ONS%202016%20-%20S3%20Global%20deployment%20-%20mini-summit%20PDF.pdf)
- [Official wiki page](https://wiki.onosproject.org/display/ONOS/SDN-IP)

0 comments on commit 0fc1ce0

Please sign in to comment.