Skip to content

Instantly share code, notes, and snippets.

@tsub
Last active January 8, 2016 06:44
Show Gist options
  • Save tsub/a658524734538efa686a to your computer and use it in GitHub Desktop.
Save tsub/a658524734538efa686a to your computer and use it in GitHub Desktop.

ccn-router getting started

Host Machine Required

  • Vagrant
  • Virtualbox

VMs

  • of-controller
  • of-switch
    • NODE1-1
    • NODE1-2

How to Setup

of-controller

$ cd ccn/of-controller
$ vagrant up
$ vagrant ssh
$ cd /vagrant/ccn-router
$ ifconfig
write down eth0 ipv4 address
$ bundle
$ bundle exec rake db:migrate
$ bundle exec rake trema:run

of-switch

$ cd ccn/of-switch
$ vagrant up
$ vagrant ssh
$ sudo ovs-vsctl add-br ovsbr1
$ sudo ovs-vsctl set-controller ovsbr1 tcp:192.168.xxx.xxx:6653
$ sudo ovs-vsctl set bridge ovsbr1 protocols=OpenFlow10
$ sudo ovs-vsctl set-fail-mode ovsbr1 secure

NODE1

at of-switch

$ cd ccn/of-switch
$ vagrant ssh
$ sudo mkdir -p /etc/lxc/ovs_if{up, down}
$ sudo vi /etc/lxc/ovs_ifup/ovsbr1
--------
#!/bin/bash
ifconfig $5 0.0.0.0 up
ovs-vsctl add-port ovsbr1 $5
--------

$ sudo vi /etc/lxc/ovs_ifdown/ovsbr1
--------
#!/bin/bash
ifdown $5
ovs-vsctl del-port ovsbr1 $5
--------

$ sudo chmod +x /etc/lxc/ovs_if*/ovsbr1
$ vi /tmp/lxc_config
--------
lxc.network.type=veth
lxc.network.name=eth0
lxc.network.link=lxcbr0
lxc.network.flags=up
lxc.network.script.up=/etc/lxc/ovs_ifup/ovsbr1
lxc.network.script.down=/etc/lxc/ovs_ifdown/ovsbr1
--------

$ sudo lxc-create -n NODE1 -t ubuntu -f /tmp/lxc_config
$ sudo lxc-start -n NODE1

at NODE1

$ sudo lxc-console -n NODE1
login: ubuntu
password: ubuntu
$ sudo apt-get update
$ sudo apt-get install -y git ruby-dev vim
$ sudo gem i parallel
$ git clone https://github.com/tsub/ccn_client_server.git -b master
$ exit

at of-switch

$ sudo lxc-stop -n NODE1
$ sudo lxc-clone NODE1 NODE1-1
$ sudo lxc-clone NODE1 NODE1-2
$ sudo su
$ vi /var/lib/lxc/NODE1-1/config
--------
- lxc.network.link=lxcbr0
+ lxc.network.ipv4=192.168.11.2
--------

$ vi /var/lib/lxc/NODE1-1/rootfs/etc/network/interfaces
--------
- iface eth0 inet dhcp
+ iface eth0 inet static
+     address 192.168.11.2
+     netmask 255.255.255.0
--------

$ vi /var/lib/lxc/NODE1-2/config
--------
- lxc.network.link=lxcbr0
+ lxc.network.ipv4=192.168.11.3
--------

$ vi /var/lib/lxc/NODE1-2/rootfs/etc/network/interfaces
--------
- iface eth0 inet dhcp
+ iface eth0 inet static
+     address 192.168.11.3
+     netmask 255.255.255.0
--------

$ exit
$ sudo lxc-start -n NODE1-1
$ sudo lxc-start -n NODE1-2

NODE1-1

$ sudo lxc-console -n NODE1-1
login: ubuntu
password: ubuntu
$ cd ccn_client_server
$ echo hogehoge >> public/hoge.txt
$ ruby udp_server.rb

NODE1-2

$ sudo lxc-console -n NODE1-2
login: ubuntu
password: ubuntu
$ cd ccn_client_server
$ mkdir downloads
$ ruby udp_client.rb <content_name>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment