


 



<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://docwiki.cisco.com/w/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://docwiki.cisco.com/w/index.php?title=Special:Contributions/Lakafosi&amp;feed=atom&amp;limit=50&amp;target=Lakafosi&amp;year=&amp;month=</id>
		<title>DocWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://docwiki.cisco.com/w/index.php?title=Special:Contributions/Lakafosi&amp;feed=atom&amp;limit=50&amp;target=Lakafosi&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Special:Contributions/Lakafosi"/>
		<updated>2013-06-18T22:32:48Z</updated>
		<subtitle>From DocWiki</subtitle>
		<generator>MediaWiki 1.16.0</generator>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2013-03-20T23:17:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: Moving to docwiki-dev&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-06T01:20:29Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  10.10.10.10       |   |   10.10.11.10  |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp root/src/lispmob-ovs/lisp_mod/Module.symvers root/src/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi root/src/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp and reboot!&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd root/src/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please retry the above in case you get the following message:&lt;br /&gt;
&amp;quot;WARNING: &amp;quot;eid_locator4&amp;quot; [/root/src/ovs-lisp/datapath/linux/openvswitch.ko] undefined!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo root/src/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=root/src/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db root/src/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq &lt;br /&gt;
 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Demo video &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a copy of the video, please contact lakafosi@cisco.com.&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-06T01:19:02Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  10.10.10.10       |   |   10.10.11.10  |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp root/src/lispmob-ovs/lisp_mod/Module.symvers root/src/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi root/src/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd root/src/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please try the above in case you get the following message:&lt;br /&gt;
&amp;quot;WARNING: &amp;quot;eid_locator4&amp;quot; [/root/src/ovs-lisp/datapath/linux/openvswitch.ko] undefined!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo root/src/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=root/src/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db root/src/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq &lt;br /&gt;
 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Demo video &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a copy of the video, please contact lakafosi@cisco.com.&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-06T01:17:46Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  10.10.10.10       |   |   10.10.11.10  |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp root/src/lispmob-ovs/lisp_mod/Module.symvers root/src/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi root/src/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd root/src/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd root/src/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please try the above in case you get the following message:&lt;br /&gt;
&amp;quot;WARNING: &amp;quot;eid_locator4&amp;quot; [/root/src/ovs-lisp/datapath/linux/openvswitch.ko] undefined!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo root/src/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=root/src/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db root/src/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Demo video &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a copy of the video, please contact lakafosi@cisco.com.&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-06T00:40:39Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  10.10.10.10       |   |   10.10.11.10  |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please try the above in case you get the following message:&lt;br /&gt;
&amp;quot;WARNING: &amp;quot;eid_locator4&amp;quot; [/root/src/ovs-lisp/datapath/linux/openvswitch.ko] undefined!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/user/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/user/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Demo video &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a copy of the video, please contact lakafosi@cisco.com.&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-06T00:38:59Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  10.10.10.10       |   |   10.10.11.10  |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please try the above in case you get the following message:&lt;br /&gt;
&amp;quot;WARNING: &amp;quot;eid_locator4&amp;quot; [/root/src/ovs-lisp/datapath/linux/openvswitch.ko] undefined!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Demo video &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a copy of the video, please contact lakafosi@cisco.com.&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:15:06Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  10.10.10.10       |   |   10.10.11.10  |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Demo video &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a copy of the video, please contact lakafosi@cisco.com.&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:13:37Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
10.10.10.10                10.10.11.10&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Demo video &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a copy of the video, please contact lakafosi@cisco.com.&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:12:20Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Demo video &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a copy of the video, please contact lakafosi@cisco.com.&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:11:43Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt; Demo video &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a copy of the video, please contact [[lakafosi@cisco.com]].&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:09:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:08:25Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:07:43Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|630px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|850px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:06:35Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|650px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:05:53Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[Image:OpenstackandLISP_Testbed.png|800px|middle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:03:53Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[File:OpenstackandLISP Testbed.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|400px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T19:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
[[File:OpenstackandLISP Testbed.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/File:OpenstackandLISP_Testbed.png</id>
		<title>File:OpenstackandLISP Testbed.png</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/File:OpenstackandLISP_Testbed.png"/>
				<updated>2012-12-05T18:57:54Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-05T18:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openwrt</id>
		<title>Openwrt</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openwrt"/>
				<updated>2012-12-03T18:44:12Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: Created page with &amp;quot;The following notes are based on x86 and AR71xx (on [http://wiki.openwrt.org/toh/linksys/wrt160nl Linksys WRT160NL]) architecture-based images of Attitude Adjustment and Backfire...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following notes are based on x86 and AR71xx (on [http://wiki.openwrt.org/toh/linksys/wrt160nl Linksys WRT160NL]) architecture-based images of Attitude Adjustment and Backfire versions of [https://openwrt.org/ Openwrt], but should hold for all Openwrt images.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Debugging =&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:37:26Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;amp;quot;public&amp;amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|800px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:36:46Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;amp;quot;public&amp;amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|900px|frame|left]]&lt;br /&gt;
&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|900px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:35:42Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;amp;quot;public&amp;amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|900px|thumb|left]]&lt;br /&gt;
&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|900px|thumb|middle]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:34:58Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;amp;quot;public&amp;amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|200px|thumb|middle]]&lt;br /&gt;
&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|200px|thumb|middle]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:32:31Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;amp;quot;public&amp;amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:28:41Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: /* Bringing up a guest VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;This wiki describes all the steps necessary to setup a testbed of &amp;lt;a href=&amp;quot;http://www.openstack.org/software/folsom/&amp;quot;&amp;gt;Openstack Folsom&amp;lt;/a&amp;gt; nodes (All-in-one node and Compute nodes), which rely on a &amp;lt;a href=&amp;quot;http://lisp.cisco.com/&amp;quot;&amp;gt;LISP-enabled&amp;lt;/a&amp;gt; &amp;lt;a href=&amp;quot;http://openvswitch.org/&amp;quot;&amp;gt;OpenVSwitch (OVS)&amp;lt;/a&amp;gt; bridge. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;amp;quot;public&amp;amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;__TOC__&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Testbed Setup &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Dependencies &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Openstack nodes are considered hereafter to be &amp;lt;a href=&amp;quot;http://releases.ubuntu.com/precise/&amp;quot;&amp;gt;Ubuntu 12.04.1 LTS (Precise Pangolin)&amp;lt;/a&amp;gt; machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; 1.8GB for the All-In-One Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt; 1.2GB for the Compute Node &lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Network &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If instead of physical machines you plan on setting this testbed up with &amp;lt;b&amp;gt;VMware Fusion&amp;lt;/b&amp;gt;, make sure the network is configured as &amp;lt;i&amp;gt;Bridged (Ethernet).&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Map Server (MS) &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;ISO-8859-1&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;db&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;0.0.0.0/3&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;128.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;171.0.0.0/8&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;224.0.0.0/4&amp;amp;quot; act=&amp;amp;quot;2&amp;amp;quot; ttl=&amp;amp;quot;5&amp;amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.3/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.10.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;eid prefix=&amp;amp;quot;192.168.127.4/32&amp;amp;quot; ttl=&amp;amp;quot;1440&amp;amp;quot; A=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;rloc&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;address&amp;amp;gt;10.10.11.10&amp;amp;lt;/address&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;priority&amp;amp;gt;1&amp;amp;lt;/priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;weight&amp;amp;gt;100&amp;amp;lt;/weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_priority&amp;amp;gt;255&amp;amp;lt;/m_priority&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;m_weight&amp;amp;gt;0&amp;amp;lt;/m_weight&amp;amp;gt;&lt;br /&gt;
      &amp;amp;lt;reachable&amp;amp;gt;true&amp;amp;lt;/reachable&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/rloc&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;/eid&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/db&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt; Installing the LISP-enabled OVS bridge &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First install lispmob:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which includes:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404&amp;amp;nbsp;?        00:00:00 ovs_workq 1406&amp;amp;nbsp;?        00:00:00 ovsdb-server&lt;br /&gt;
 1409&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410&amp;amp;nbsp;?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;  Openstack &amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;amp;quot; &amp;amp;gt;&amp;amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Openstack installation is based on &amp;lt;a href=&amp;quot;http://devstack.org/&amp;quot;&amp;gt;Devstack&amp;lt;/a&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Alternatively,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny &amp;lt;a href=&amp;quot;https://launchpad.net/cirros/+download&amp;quot;&amp;gt;CirrOS cloud guest&amp;lt;/a&amp;gt;).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; All-In-One Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is the script run right after &amp;lt;i&amp;gt;stack.sh&amp;lt;/i&amp;gt;, i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;amp;quot;$0&amp;amp;quot;) &amp;amp;amp;&amp;amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; Bringing up a guest VM &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;/w/images/6/6e/Instances_-_OpenStack_Dashboard1.png&amp;quot; _fck_mw_filename=&amp;quot;Instances - OpenStack Dashboard1.png&amp;quot; _fck_mw_width=&amp;quot;900&amp;quot; _fck_mw_type=&amp;quot;thumb&amp;quot; alt=&amp;quot;Instances - OpenStack Dashboard1.png&amp;quot; class=&amp;quot;fck_mw_frame fck_mw_right&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;/w/images/thumb/c/ca/Instance_Detail_-_OpenStack_Dashboard.png/900px-Instance_Detail_-_OpenStack_Dashboard.png&amp;quot; _fck_mw_filename=&amp;quot;Instance Detail - OpenStack Dashboard.png&amp;quot; _fck_mw_width=&amp;quot;900&amp;quot; _fck_mw_type=&amp;quot;thumb&amp;quot; alt=&amp;quot;Instance Detail - OpenStack Dashboard.png&amp;quot; class=&amp;quot;fck_mw_frame fck_mw_right&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt; Compute Openstack Node &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; localrc &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; local.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; lispd.conf &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LISP is run with &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; ovs-lisp-openstask-scenario.sh &amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Fixing the bridges... ===&amp;amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;amp;quot;MAC address of guest VM: $VM_mac&amp;amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Bridge Status: ===&amp;amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: Go and START lisp...! ===&amp;amp;quot;&lt;br /&gt;
#echo &amp;amp;quot;lakafosi: Starting lisp...&amp;amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;amp;&lt;br /&gt;
echo &amp;amp;quot;=== lakafosi: lisp status: ===&amp;amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To run it:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:28:18Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: /* Bringing up a guest VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;quot;public&amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testbed Setup =&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
The Openstack nodes are considered hereafter to be [http://releases.ubuntu.com/precise/ Ubuntu 12.04.1 LTS (Precise Pangolin)] machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
* 1.8GB for the All-In-One Node &lt;br /&gt;
* 1.2GB for the Compute Node &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If instead of physical machines you plan on setting this testbed up with '''VMware Fusion''', make sure the network is configured as ''Bridged (Ethernet).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Server (MS) ==&lt;br /&gt;
&lt;br /&gt;
Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&lt;br /&gt;
Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;db&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;0.0.0.0/3&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;128.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;171.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;224.0.0.0/4&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.3/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.10.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.4/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.11.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/db&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing the LISP-enabled OVS bridge =&lt;br /&gt;
&lt;br /&gt;
On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First install lispmob:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which includes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404 ?        00:00:00 ovs_workq 1406 ?        00:00:00 ovsdb-server&lt;br /&gt;
 1409 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Openstack =&lt;br /&gt;
&lt;br /&gt;
First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Openstack installation is based on [http://devstack.org/ Devstack].&lt;br /&gt;
&lt;br /&gt;
It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternatively,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny [https://launchpad.net/cirros/+download CirrOS cloud guest]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All-In-One Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
This is the script run right after ''stack.sh'', i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;quot;$0&amp;quot;) &amp;amp;&amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bringing up a guest VM ===&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|900px|thumb|frame|middle]]&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|900px|thumb|middle]]&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compute Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:28:06Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: /* Bringing up a guest VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;quot;public&amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testbed Setup =&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
The Openstack nodes are considered hereafter to be [http://releases.ubuntu.com/precise/ Ubuntu 12.04.1 LTS (Precise Pangolin)] machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
* 1.8GB for the All-In-One Node &lt;br /&gt;
* 1.2GB for the Compute Node &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If instead of physical machines you plan on setting this testbed up with '''VMware Fusion''', make sure the network is configured as ''Bridged (Ethernet).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Server (MS) ==&lt;br /&gt;
&lt;br /&gt;
Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&lt;br /&gt;
Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;db&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;0.0.0.0/3&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;128.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;171.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;224.0.0.0/4&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.3/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.10.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.4/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.11.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/db&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing the LISP-enabled OVS bridge =&lt;br /&gt;
&lt;br /&gt;
On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First install lispmob:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which includes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404 ?        00:00:00 ovs_workq 1406 ?        00:00:00 ovsdb-server&lt;br /&gt;
 1409 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Openstack =&lt;br /&gt;
&lt;br /&gt;
First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Openstack installation is based on [http://devstack.org/ Devstack].&lt;br /&gt;
&lt;br /&gt;
It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternatively,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny [https://launchpad.net/cirros/+download CirrOS cloud guest]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All-In-One Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
This is the script run right after ''stack.sh'', i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;quot;$0&amp;quot;) &amp;amp;&amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bringing up a guest VM ===&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|900px|thumb|middle]]&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|900px|thumb|middle]]&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compute Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:27:39Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: /* Bringing up a guest VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;quot;public&amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testbed Setup =&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
The Openstack nodes are considered hereafter to be [http://releases.ubuntu.com/precise/ Ubuntu 12.04.1 LTS (Precise Pangolin)] machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
* 1.8GB for the All-In-One Node &lt;br /&gt;
* 1.2GB for the Compute Node &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If instead of physical machines you plan on setting this testbed up with '''VMware Fusion''', make sure the network is configured as ''Bridged (Ethernet).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Server (MS) ==&lt;br /&gt;
&lt;br /&gt;
Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&lt;br /&gt;
Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;db&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;0.0.0.0/3&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;128.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;171.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;224.0.0.0/4&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.3/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.10.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.4/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.11.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/db&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing the LISP-enabled OVS bridge =&lt;br /&gt;
&lt;br /&gt;
On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First install lispmob:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which includes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404 ?        00:00:00 ovs_workq 1406 ?        00:00:00 ovsdb-server&lt;br /&gt;
 1409 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Openstack =&lt;br /&gt;
&lt;br /&gt;
First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Openstack installation is based on [http://devstack.org/ Devstack].&lt;br /&gt;
&lt;br /&gt;
It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternatively,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny [https://launchpad.net/cirros/+download CirrOS cloud guest]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All-In-One Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
This is the script run right after ''stack.sh'', i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;quot;$0&amp;quot;) &amp;amp;&amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bringing up a guest VM ===&lt;br /&gt;
&lt;br /&gt;
[[File:Instances_-_OpenStack_Dashboard1.png|900px|frame|none]]&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|900px|frame|none]]&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compute Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:27:07Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: /* Bringing up a guest VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;quot;public&amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testbed Setup =&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
The Openstack nodes are considered hereafter to be [http://releases.ubuntu.com/precise/ Ubuntu 12.04.1 LTS (Precise Pangolin)] machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
* 1.8GB for the All-In-One Node &lt;br /&gt;
* 1.2GB for the Compute Node &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If instead of physical machines you plan on setting this testbed up with '''VMware Fusion''', make sure the network is configured as ''Bridged (Ethernet).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Server (MS) ==&lt;br /&gt;
&lt;br /&gt;
Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&lt;br /&gt;
Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;db&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;0.0.0.0/3&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;128.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;171.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;224.0.0.0/4&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.3/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.10.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.4/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.11.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/db&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing the LISP-enabled OVS bridge =&lt;br /&gt;
&lt;br /&gt;
On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First install lispmob:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which includes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404 ?        00:00:00 ovs_workq 1406 ?        00:00:00 ovsdb-server&lt;br /&gt;
 1409 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Openstack =&lt;br /&gt;
&lt;br /&gt;
First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Openstack installation is based on [http://devstack.org/ Devstack].&lt;br /&gt;
&lt;br /&gt;
It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternatively,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny [https://launchpad.net/cirros/+download CirrOS cloud guest]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All-In-One Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
This is the script run right after ''stack.sh'', i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;quot;$0&amp;quot;) &amp;amp;&amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bringing up a guest VM ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|600px|frame|none]]&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|600px|frame|none]]&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compute Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:26:47Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: /* Bringing up a guest VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;quot;public&amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testbed Setup =&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
The Openstack nodes are considered hereafter to be [http://releases.ubuntu.com/precise/ Ubuntu 12.04.1 LTS (Precise Pangolin)] machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
* 1.8GB for the All-In-One Node &lt;br /&gt;
* 1.2GB for the Compute Node &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If instead of physical machines you plan on setting this testbed up with '''VMware Fusion''', make sure the network is configured as ''Bridged (Ethernet).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Server (MS) ==&lt;br /&gt;
&lt;br /&gt;
Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&lt;br /&gt;
Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;db&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;0.0.0.0/3&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;128.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;171.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;224.0.0.0/4&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.3/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.10.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.4/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.11.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/db&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing the LISP-enabled OVS bridge =&lt;br /&gt;
&lt;br /&gt;
On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First install lispmob:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which includes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404 ?        00:00:00 ovs_workq 1406 ?        00:00:00 ovsdb-server&lt;br /&gt;
 1409 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Openstack =&lt;br /&gt;
&lt;br /&gt;
First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Openstack installation is based on [http://devstack.org/ Devstack].&lt;br /&gt;
&lt;br /&gt;
It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternatively,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny [https://launchpad.net/cirros/+download CirrOS cloud guest]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All-In-One Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
This is the script run right after ''stack.sh'', i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;quot;$0&amp;quot;) &amp;amp;&amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bringing up a guest VM ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|900px|frame|none]]&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|900px|frame|none]]&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compute Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:26:08Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: /* Bringing up a guest VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;quot;public&amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testbed Setup =&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
The Openstack nodes are considered hereafter to be [http://releases.ubuntu.com/precise/ Ubuntu 12.04.1 LTS (Precise Pangolin)] machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
* 1.8GB for the All-In-One Node &lt;br /&gt;
* 1.2GB for the Compute Node &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If instead of physical machines you plan on setting this testbed up with '''VMware Fusion''', make sure the network is configured as ''Bridged (Ethernet).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Server (MS) ==&lt;br /&gt;
&lt;br /&gt;
Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&lt;br /&gt;
Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;db&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;0.0.0.0/3&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;128.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;171.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;224.0.0.0/4&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.3/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.10.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.4/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.11.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/db&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing the LISP-enabled OVS bridge =&lt;br /&gt;
&lt;br /&gt;
On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First install lispmob:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which includes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404 ?        00:00:00 ovs_workq 1406 ?        00:00:00 ovsdb-server&lt;br /&gt;
 1409 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Openstack =&lt;br /&gt;
&lt;br /&gt;
First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Openstack installation is based on [http://devstack.org/ Devstack].&lt;br /&gt;
&lt;br /&gt;
It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternatively,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny [https://launchpad.net/cirros/+download CirrOS cloud guest]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All-In-One Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
This is the script run right after ''stack.sh'', i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;quot;$0&amp;quot;) &amp;amp;&amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bringing up a guest VM ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|900px|thumb|middle]]&lt;br /&gt;
[[Image:Instance_Detail_-_OpenStack_Dashboard.png|900px|thumb|middle]]&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compute Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:24:39Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: /* Bringing up a guest VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;quot;public&amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testbed Setup =&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
The Openstack nodes are considered hereafter to be [http://releases.ubuntu.com/precise/ Ubuntu 12.04.1 LTS (Precise Pangolin)] machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
* 1.8GB for the All-In-One Node &lt;br /&gt;
* 1.2GB for the Compute Node &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If instead of physical machines you plan on setting this testbed up with '''VMware Fusion''', make sure the network is configured as ''Bridged (Ethernet).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Server (MS) ==&lt;br /&gt;
&lt;br /&gt;
Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&lt;br /&gt;
Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;db&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;0.0.0.0/3&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;128.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;171.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;224.0.0.0/4&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.3/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.10.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.4/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.11.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/db&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing the LISP-enabled OVS bridge =&lt;br /&gt;
&lt;br /&gt;
On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First install lispmob:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which includes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404 ?        00:00:00 ovs_workq 1406 ?        00:00:00 ovsdb-server&lt;br /&gt;
 1409 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Openstack =&lt;br /&gt;
&lt;br /&gt;
First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Openstack installation is based on [http://devstack.org/ Devstack].&lt;br /&gt;
&lt;br /&gt;
It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternatively,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny [https://launchpad.net/cirros/+download CirrOS cloud guest]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All-In-One Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
This is the script run right after ''stack.sh'', i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;quot;$0&amp;quot;) &amp;amp;&amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bringing up a guest VM ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Instances_-_OpenStack_Dashboard1.png|frame|none]]&lt;br /&gt;
[[File:Instance_Detail_-_OpenStack_Dashboard.png|900px|thumb|left|alt text]]&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compute Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/File:Instances_-_OpenStack_Dashboard1.png</id>
		<title>File:Instances - OpenStack Dashboard1.png</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/File:Instances_-_OpenStack_Dashboard1.png"/>
				<updated>2012-12-02T12:22:24Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/File:Instance_Detail_-_OpenStack_Dashboard.png</id>
		<title>File:Instance Detail - OpenStack Dashboard.png</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/File:Instance_Detail_-_OpenStack_Dashboard.png"/>
				<updated>2012-12-02T12:21:46Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:20:06Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: /* All-In-One Openstack Node */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;quot;public&amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testbed Setup =&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
The Openstack nodes are considered hereafter to be [http://releases.ubuntu.com/precise/ Ubuntu 12.04.1 LTS (Precise Pangolin)] machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
* 1.8GB for the All-In-One Node &lt;br /&gt;
* 1.2GB for the Compute Node &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If instead of physical machines you plan on setting this testbed up with '''VMware Fusion''', make sure the network is configured as ''Bridged (Ethernet).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Server (MS) ==&lt;br /&gt;
&lt;br /&gt;
Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&lt;br /&gt;
Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;db&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;0.0.0.0/3&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;128.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;171.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;224.0.0.0/4&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.3/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.10.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.4/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.11.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/db&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing the LISP-enabled OVS bridge =&lt;br /&gt;
&lt;br /&gt;
On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First install lispmob:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which includes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404 ?        00:00:00 ovs_workq 1406 ?        00:00:00 ovsdb-server&lt;br /&gt;
 1409 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Openstack =&lt;br /&gt;
&lt;br /&gt;
First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Openstack installation is based on [http://devstack.org/ Devstack].&lt;br /&gt;
&lt;br /&gt;
It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternatively,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny [https://launchpad.net/cirros/+download CirrOS cloud guest]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All-In-One Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
This is the script run right after ''stack.sh'', i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;quot;$0&amp;quot;) &amp;amp;&amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bringing up a guest VM ===&lt;br /&gt;
&lt;br /&gt;
[[Image:901CVPSIPDeployment.png|frame|none]] &lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compute Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#Compute&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.10.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#Compute&lt;br /&gt;
ifconfig br-lisp 10.10.11.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lakafosi</name></author>	</entry>

	<entry>
		<id>http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch</id>
		<title>Openstack with LISP-enabled OpenVSwitch</title>
		<link rel="alternate" type="text/html" href="http://docwiki.cisco.com/wiki/Openstack_with_LISP-enabled_OpenVSwitch"/>
				<updated>2012-12-02T12:14:23Z</updated>
		
		<summary type="html">&lt;p&gt;Lakafosi: /* ovs-lisp-openstask-scenario.sh */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki describes all the steps necessary to setup a testbed of [http://www.openstack.org/software/folsom/ Openstack Folsom] nodes (All-in-one node and Compute nodes), which rely on a [http://lisp.cisco.com/ LISP-enabled] [http://openvswitch.org/ OpenVSwitch (OVS)] bridge. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                   cisco (&amp;quot;public&amp;quot;) Network&lt;br /&gt;
           ----+----------------------+-----&lt;br /&gt;
               |                      |&lt;br /&gt;
      +--------+--------+     +-------+--------+&lt;br /&gt;
      | All-In-One Node |     | Compute Node   |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |                 |     |                |&lt;br /&gt;
      |  Nova           |     |  Nova -agent   |&lt;br /&gt;
      |  Keystone       |     |  Nova-compute  |&lt;br /&gt;
      |  Glance         |     |  Nova-Network  |&lt;br /&gt;
      |  Nova-Network   |     +----------------+&lt;br /&gt;
      |  Cinder         |&lt;br /&gt;
      |  Horizon        |&lt;br /&gt;
      +-----------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testbed Setup =&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
The Openstack nodes are considered hereafter to be [http://releases.ubuntu.com/precise/ Ubuntu 12.04.1 LTS (Precise Pangolin)] machines (running the 3.2.0-29 kernel version). &lt;br /&gt;
The following dependencies need to be met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade (NOT dist-upgrade)&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install openssh-server vim git openssh-server bridge-utils build-essential git-core libssl-dev libconfuse-dev pkg-config autoconf libtool pkg-config gengetopt \&lt;br /&gt;
 clang mosh cscope vim-gtk htop subversion tmux iotop dpatch automake1.9 python-support uml-utilities farpd&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install linux-headers-3.2.0-29-generic&lt;br /&gt;
&lt;br /&gt;
# For KVM&lt;br /&gt;
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virtinst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case you wish to also use Wireshark (with LISP dissector included):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get build-dep wireshark&lt;br /&gt;
$ sudo apt-get install autoconf bison flex libtool libgtk2.0-dev libpcap-dev libc-ares-dev libsmi2-dev libgnutls-dev libgcrypt11-dev libkrb5-dev libcap2-bin libgeoip-dev libortp-dev libportaudio-dev&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/Downloads; cd ~/Downloads; wget http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-1.8.3.tar.bz2&lt;br /&gt;
$ tar -xvf wireshark-1.8.3.tar.bz2 -C /tmp&lt;br /&gt;
$ cd /tmp/wireshark-1.8.3/&lt;br /&gt;
$ ./autogen.sh&lt;br /&gt;
$ ./configure --enable-setcap-install&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
$ sudo ldconfig&lt;br /&gt;
$ wireshark &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this is simply a recommendation, the testbed has been successfully run with the following memory settings:&lt;br /&gt;
* 1.8GB for the All-In-One Node &lt;br /&gt;
* 1.2GB for the Compute Node &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         Public + Management Network&lt;br /&gt;
     --+--------------------------+----- &lt;br /&gt;
       |                          |&lt;br /&gt;
       |                          |&lt;br /&gt;
  10.10.10.10                10.10.11.10&lt;br /&gt;
       |                          |&lt;br /&gt;
+------|-------------+   +--------|-------+&lt;br /&gt;
|    (eth0)          |   |      (eth0)    |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|      |             |   |        |       |&lt;br /&gt;
|  [ br-lisp ]       |   |     [br-lisp]  |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
| (vnet0) (vnet1)    |   |     (vnet0)    |&lt;br /&gt;
|    |       |       |   |        |       |&lt;br /&gt;
|    VM      VM      |   |        VM      |&lt;br /&gt;
| 192.168. 192.168.  |   |     192.168.   |&lt;br /&gt;
|   127.2   127.4    |   |       127.3    |&lt;br /&gt;
+--------------------+   +----------------+&lt;br /&gt;
   All-In-One Node          Compute Node&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[] OVS-LISP bridge&lt;br /&gt;
() Network interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If instead of physical machines you plan on setting this testbed up with '''VMware Fusion''', make sure the network is configured as ''Bridged (Ethernet).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Server (MS) ==&lt;br /&gt;
&lt;br /&gt;
Just to get an idea of how the EID addresses are supposed to be associated with their corresponding RLOCs, you can have a look at the following MS configuration, which makes static assignments.&lt;br /&gt;
&lt;br /&gt;
Under regular LISP operation you will not have to impose the following configuration. Rather, it is formed automatically and dynamically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;db&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;0.0.0.0/3&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;128.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;171.0.0.0/8&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;224.0.0.0/4&amp;quot; act=&amp;quot;2&amp;quot; ttl=&amp;quot;5&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.3/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.10.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;eid prefix=&amp;quot;192.168.127.4/32&amp;quot; ttl=&amp;quot;1440&amp;quot; A=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rloc&amp;gt;&lt;br /&gt;
      &amp;lt;address&amp;gt;10.10.11.10&amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;lt;priority&amp;gt;1&amp;lt;/priority&amp;gt;&lt;br /&gt;
      &amp;lt;weight&amp;gt;100&amp;lt;/weight&amp;gt;&lt;br /&gt;
      &amp;lt;m_priority&amp;gt;255&amp;lt;/m_priority&amp;gt;&lt;br /&gt;
      &amp;lt;m_weight&amp;gt;0&amp;lt;/m_weight&amp;gt;&lt;br /&gt;
      &amp;lt;reachable&amp;gt;true&amp;lt;/reachable&amp;gt;&lt;br /&gt;
    &amp;lt;/rloc&amp;gt;&lt;br /&gt;
  &amp;lt;/eid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/db&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing the LISP-enabled OVS bridge =&lt;br /&gt;
&lt;br /&gt;
On both machines do the following.&lt;br /&gt;
First download the corresponding code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/&lt;br /&gt;
git clone https://&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First install lispmob:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/lispmob-ovs/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterward install the modified LISP-enabled OpenVswitch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/user/ovs-lisp/&lt;br /&gt;
./boot.sh&lt;br /&gt;
./configure --with-linux=/lib/modules/`uname -r`/build&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /home/user/lispmob-ovs/lisp_mod/Module.symvers /home/user/ovs-lisp/datapath/linux/&lt;br /&gt;
sudo vi /home/user/ovs-lisp/datapath/linux/Makefile.main.in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
...and remove 'Module.symvers' from the 'clean' target (on line 33)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you will need to REMAKE and REINSTALL lisp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/lakafosi/lispmob-ovs&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
cd /home/lakafosi/ovs-lisp/&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo depmod -a&lt;br /&gt;
&lt;br /&gt;
sudo dmesg -c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to bring up the OVS bridge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /home/user/ovs-scripts/ovs-start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which includes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
BUILD_DIR=/home/lakafosi/ovs-lisp&lt;br /&gt;
OVS_PATH=/usr/local&lt;br /&gt;
&lt;br /&gt;
rmmod -s openvswitch&lt;br /&gt;
modprobe lisp&lt;br /&gt;
insmod ${BUILD_DIR}/datapath/linux/openvswitch.ko&lt;br /&gt;
mkdir -p ${OVS_PATH}/etc/openvswitch&lt;br /&gt;
rm ${OVS_PATH}/etc/openvswitch/conf.db&lt;br /&gt;
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/lakafosi/ovs-lisp/vswitchd/vswitch.ovsschema&lt;br /&gt;
${OVS_PATH}/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \&lt;br /&gt;
                     --remote=db:Open_vSwitch,manager_options \&lt;br /&gt;
                     --private-key=db:SSL,private_key \&lt;br /&gt;
                     --certificate=db:SSL,certificate \&lt;br /&gt;
                     --bootstrap-ca-cert=db:SSL,ca_cert \&lt;br /&gt;
                     --pidfile --detach&lt;br /&gt;
${OVS_PATH}/bin/ovs-vsctl --no-wait init&lt;br /&gt;
${OVS_PATH}/sbin/ovs-vswitchd --pidfile --detach&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify everything is setup correctly by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps -ea | grep ovs; ps -ea | grep lisp; lsmod | grep lisp; lsmod | grep ovs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which should yield an output similar to the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 1404 ?        00:00:00 ovs_workq 1406 ?        00:00:00 ovsdb-server&lt;br /&gt;
 1409 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
 1410 ?        00:00:00 ovs-vswitchd&lt;br /&gt;
lisp                   41286  1 openvswitch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Openstack =&lt;br /&gt;
&lt;br /&gt;
First create the stack user in order to install and run Openstack without any passwords requested.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
useradd -U -G sudo -s /bin/bash -m stack; echo &amp;quot;stack ALL=(ALL) NOPASSWD: ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
su stack&lt;br /&gt;
cd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Openstack installation is based on [http://devstack.org/ Devstack].&lt;br /&gt;
&lt;br /&gt;
It is important you stick with the stable Folsom version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom https://github.com/openstack-dev/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternatively,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b stable/folsom git://git.cisco.com/lakafosi/devstack.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, you will have to download one more script for setting up the OVS-bridge and attaching the vnetX ports of the instantiated VMs, the lispd.conf control plane configuration file of LISP and a few cloud qcow2 (Ubuntu and Fedora) images (to use in addition to the preloaded tiny [https://launchpad.net/cirros/+download CirrOS cloud guest]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /home/stack/Downloads&lt;br /&gt;
mv /* /home/stack/devstack/Downloads/* /home/stack/Downloads&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== All-In-One Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#HOST_NAME=$(hostname)&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.10.10&lt;br /&gt;
&lt;br /&gt;
FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
SCHEDULER=nova.scheduler.simple.SimpleScheduler&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
This is the script run right after ''stack.sh'', i.e. the Openstack installation. It is located in /home/stack/devstack/ .&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
# Sample ``local.sh`` for user-configurable tasks to run automatically&lt;br /&gt;
# at the sucessful conclusion of ``stack.sh``.&lt;br /&gt;
&lt;br /&gt;
# Keep track of the devstack directory&lt;br /&gt;
TOP_DIR=$(cd $(dirname &amp;quot;$0&amp;quot;) &amp;amp;&amp;amp; pwd)&lt;br /&gt;
# Import common functions&lt;br /&gt;
source $TOP_DIR/functions&lt;br /&gt;
# Use openrc + stackrc + localrc for settings&lt;br /&gt;
source $TOP_DIR/stackrc&lt;br /&gt;
# Destination path for installation ``DEST``&lt;br /&gt;
DEST=${DEST:-/opt/stack}&lt;br /&gt;
&lt;br /&gt;
# lakafosi&lt;br /&gt;
for i in `seq 2 5`; do /opt/stack/nova/bin/nova-manage fixed reserve 192.168.127.$i; done&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
# nova-manage floating create --ip_range=192.168.127.6/31&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack demo auth&lt;br /&gt;
source $TOP_DIR/openrc demo demo&lt;br /&gt;
glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/cirros-0.3.0-x86_64-disk.img&lt;br /&gt;
glance add name=Ubuntu-12.04 is_public=true container_format=ovf disk_format=qcow2 &amp;lt; ~/Downloads/precise-server-cloudimg-amd64-disk1.img&lt;br /&gt;
glance add name=f16-jeos is_public=true disk_format=qcow2 container_format=bare &amp;lt; ~/Downloads/f16-x86_64-openstack-sda.qcow2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Import keys from the current user into the default OpenStack user (usually&lt;br /&gt;
# ``demo``)&lt;br /&gt;
&lt;br /&gt;
# Get OpenStack auth&lt;br /&gt;
source $TOP_DIR/openrc&lt;br /&gt;
# Add first keypair found in localhost:$HOME/.ssh&lt;br /&gt;
for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do&lt;br /&gt;
    if [[ -r $i ]]; then&lt;br /&gt;
        nova keypair-add --pub_key=$i `hostname`&lt;br /&gt;
        break&lt;br /&gt;
    fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create my Flavor&lt;br /&gt;
# ---------------&lt;br /&gt;
# Get OpenStack admin auth&lt;br /&gt;
source $TOP_DIR/openrc admin admin&lt;br /&gt;
# Name of new flavor&lt;br /&gt;
# set in ``localrc`` with ``DEFAULT_INSTANCE_TYPE=m1.micro``&lt;br /&gt;
MI_NAME=m1.cirrOS&lt;br /&gt;
# Create micro flavor if not present&lt;br /&gt;
if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then&lt;br /&gt;
	nova-manage instance_type create m1.cirrOS 256 1 0 0 0 0 &lt;br /&gt;
#    nova flavor-create $MI_NAME 6 128 0 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Other Uses&lt;br /&gt;
# ----------&lt;br /&gt;
&lt;br /&gt;
# Add tcp/22 and icmp to default security group&lt;br /&gt;
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0&lt;br /&gt;
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.3/32		# for Openstack AllInOne Node       &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        198.6.255.37,           # asp-pxtr&lt;br /&gt;
        129.250.1.63,           # ntt-amer-pxtr&lt;br /&gt;
        217.8.98.33,            # intouch-pxtr-1&lt;br /&gt;
        217.8.98.35,            # intouch-pxtr-2&lt;br /&gt;
        193.162.145.46,         # tdc-pxtr&lt;br /&gt;
        158.38.1.92,            # uninett-pxtr&lt;br /&gt;
        203.181.249.172         # apan-pxtr&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ovs-lisp-openstask-scenario.sh ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su -&lt;br /&gt;
vi /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== lakafosi: Stopping firewall and allowing everyone... ===&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
echo &amp;quot;=== lakafosi: Fixing the bridges... ===&amp;quot;&lt;br /&gt;
VM_mac=fa:16:$(ifconfig vnet0 | grep HWaddr | awk '{print $5}'i | awk '{print substr($0,7)}')&lt;br /&gt;
#Alternatively:&lt;br /&gt;
#VM_mac=$(brctl showmacs br100 | grep fa:16: |awk '{print $2}'i)&lt;br /&gt;
echo &amp;quot;MAC address of guest VM: $VM_mac&amp;quot;&lt;br /&gt;
brctl delif br100 vnet0&lt;br /&gt;
brctl delif br100 eth0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 0.0.0.0&lt;br /&gt;
#ifconfig br100 192.168.127.1 netmask 255.255.255.0&lt;br /&gt;
ifconfig br100 down&lt;br /&gt;
brctl delbr br100&lt;br /&gt;
ovs-vsctl -- --if-exists del-br br-lisp&lt;br /&gt;
ovs-vsctl add-br br-lisp&lt;br /&gt;
ovs-vsctl add-port br-lisp vnet0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ovs-vsctl add-port br-lisp lisp0 -- set Interface lisp0 type=lisp options:remote_ip=10.10.11.10&lt;br /&gt;
ovs-vsctl add-port br-lisp eth0&lt;br /&gt;
ovs-ofctl del-flows br-lisp&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=3,dl_dst=00:11:22:ee:ee:ee,action=mod_dl_dst:$VM_mac,NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=2,in_port=1,dl_type=0x0806,action=NORMAL&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=1,in_port=1,dl_type=0x0800,vlan_tci=0,nw_src=192.168.127.0/24,action=output:2&lt;br /&gt;
ovs-ofctl add-flow br-lisp priority=0,action=NORMAL&lt;br /&gt;
ifconfig vnet0 up&lt;br /&gt;
ifconfig eth0 0.0.0.0&lt;br /&gt;
#AllInOne&lt;br /&gt;
ifconfig br-lisp 10.10.10.10 netmask 255.255.255.192&lt;br /&gt;
route add default gw 10.10.1.1&lt;br /&gt;
killall farpd&lt;br /&gt;
farpd -i br-lisp 192.168.127.0/24&lt;br /&gt;
echo &amp;quot;=== lakafosi: Bridge Status: ===&amp;quot;&lt;br /&gt;
brctl show&lt;br /&gt;
ovs-vsctl show&lt;br /&gt;
ovs-appctl fdb/show br-lisp&lt;br /&gt;
ovs-dpctl show&lt;br /&gt;
ovs-ofctl dump-flows br-lisp&lt;br /&gt;
echo &amp;quot;=== lakafosi: Go and START lisp...! ===&amp;quot;&lt;br /&gt;
#echo &amp;quot;lakafosi: Starting lisp...&amp;quot;&lt;br /&gt;
#lispd -f /etc/lispd.conf &amp;amp;&lt;br /&gt;
echo &amp;quot;=== lakafosi: lisp status: ===&amp;quot;&lt;br /&gt;
ps -ea | grep lisp; lsmod | grep lisp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x /home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
/home/stack/Downloads/ovs-lisp-openstask-scenario.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compute Openstack Node ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== localrc ===&lt;br /&gt;
Located in /home/stack/devstack/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SERVICE_HOST_NAME=lakafosi-server-1&lt;br /&gt;
SERVICE_HOST=10.10.10.10&lt;br /&gt;
HOST_IP=10.10.11.10&lt;br /&gt;
&lt;br /&gt;
MULTI_HOST=True&lt;br /&gt;
&lt;br /&gt;
#FIXED_RANGE=192.168.127.0/24&lt;br /&gt;
&lt;br /&gt;
# compute node&lt;br /&gt;
ENABLED_SERVICES=n-cpu,n-net,n-api,n-vol,rabbit&lt;br /&gt;
#disable_all_services&lt;br /&gt;
#enable_service rabbit n-cpu quantum q-agt n-vol n-api&lt;br /&gt;
&lt;br /&gt;
Q_HOST=$SERVICE_HOST&lt;br /&gt;
MYSQL_HOST=$SERVICE_HOST&lt;br /&gt;
RABBIT_HOST=$SERVICE_HOST&lt;br /&gt;
GLANCE_HOSTPORT=$SERVICE_HOST:9292&lt;br /&gt;
KEYSTONE_AUTH_HOST=$SERVICE_HOST&lt;br /&gt;
KEYSTONE_SERVICE_HOST=$SERVICE_HOST&lt;br /&gt;
&lt;br /&gt;
CINDER_BRANCH=stable/folsom&lt;br /&gt;
NOVA_BRANCH=stable/folsom&lt;br /&gt;
SWIFT_BRANCH=stable/folsom&lt;br /&gt;
GLANCE_BRANCH=stable/folsom&lt;br /&gt;
KEYSTONE_BRANCH=stable/folsom&lt;br /&gt;
HORIZON_BRANCH=stable/folsom&lt;br /&gt;
#QUANTUM_BRANCH=stable/folsom&lt;br /&gt;
&lt;br /&gt;
# password&lt;br /&gt;
MYSQL_PASSWORD=mysql&lt;br /&gt;
RABBIT_PASSWORD=rabbit&lt;br /&gt;
SERVICE_TOKEN=service&lt;br /&gt;
SERVICE_PASSWORD=admin&lt;br /&gt;
ADMIN_PASSWORD=admin&lt;br /&gt;
&lt;br /&gt;
# Uncomment the following line to save time by skipping checking of packages that need to be installed&lt;br /&gt;
#OFFLINE=True&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== local.sh ===&lt;br /&gt;
Make sure no local.sh exists under /home/stack/devstack&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/stack/devstack/local.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lispd.conf ===&lt;br /&gt;
LISP is run with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo lispd -f /etc/lispd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its configuration file is located in /etc/ and contains: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#       lispd example config file&lt;br /&gt;
&lt;br /&gt;
debug                = on&lt;br /&gt;
map-request-retries  = 2                        # send 2 before giving up&lt;br /&gt;
&lt;br /&gt;
# Encapsulated Map-Requests are sent to this map resolver&lt;br /&gt;
map-resolver        = 10.32.164.141&lt;br /&gt;
&lt;br /&gt;
# Register to this map server&lt;br /&gt;
map-server {&lt;br /&gt;
        address     = 10.32.164.141&lt;br /&gt;
        key-type    = 1                         # SHA1&lt;br /&gt;
        key         = foo%bar&lt;br /&gt;
        verify      = off                       # on --&amp;gt; lig(self)&lt;br /&gt;
        proxy-reply = on                        # ask ms to proxy reply&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Encapsulate packets for non-LISP sites to this Proxy-ETR&lt;br /&gt;
proxy-etr {&lt;br /&gt;
        address     = 149.20.48.60&lt;br /&gt;
        priority    = 1&lt;br /&gt;
        weight      = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# IPv4 EID of the mobile node&lt;br /&gt;
database-mapping {&lt;br /&gt;
         eid-prefix = 192.168.127.4/32		# for Openstack Compute Node         &lt;br /&gt;
#         iid        = 0&lt;br /&gt;
         interface  = br-lisp&lt;br /&gt;
         priority   = 1&lt;br /&gt;
         weight     = 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# List of PITRs to SMR on handover&lt;br /&gt;
proxy-itrs = {&lt;br /&gt;
        69.31.31.98,            # eqx-ash-pxtr&lt;br /&gt;
        149.20.48.60,           # isc-pxtr&lt;br /&gt;
        