First configure two neutron server's. Let that be network and network1 .
http://www.adminz.in/2014/10/openstack-juno-part-5-neutron.html
Then install Keepalived in both the neutron server's.
#Added Following entries in both neutron server
#in /etc/neutron/neutron.conf
l3_ha = True
#And the HA Scheduler has to be used :
router_scheduler_driver = neutron.scheduler.l3_agent_scheduler.ChanceScheduler
network_scheduler_driver = neutron.scheduler.dhcp_agent_scheduler.ChanceScheduler
In Controller Server Database update
neutron-db-manage --config-file=/etc/neutron/neutron.conf --config-file=/etc/neutron/plugins/ml2/ml2_conf.ini upgrade head
mkdir /etc/neutron/rootwrap.d
cp /usr/share/neutron/rootwrap/l3.filters /etc/neutron/rootwrap.d/
Now restart the Openstack Services in all the controller and neutron nodes.
On Controller Server Create a new set of Network setting
source admin-openrc.sh
neutron net-create ext-net --shared --router:external True --provider:physical_network external --provider:network_type flat
neutron subnet-create ext-net --name ext-subnet --allocation-pool start=10.1.0.101,end=10.1.0.200 --disable-dhcp --gateway 10.1.0.42 10.1.0.0/24
To create the tenant network
neutron net-create cli-net
neutron subnet-create cli-net --name cli-subnet --gateway 192.168.1.1 192.168.1.0/24
neutron router-create cli-router
neutron router-interface-add cli-router cli-subnet
neutron router-gateway-set cli-router ext-net
Now if we check both the neutron node we can see the router's.
[root@network ~]# ip netns
qrouter-26aed9ea-b9d5-4427-a3e4-9e75be3e1bfa
[root@network ~]#
[root@network2 ~]# ip netns
qrouter-26aed9ea-b9d5-4427-a3e4-9e75be3e1bfa
[root@network2 ~]#
[root@network ~]# ip netns exec qrouter-26aed9ea-b9d5-4427-a3e4-9e75be3e1bfa ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
10: ha-224b2c85-81: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether fa:16:3e:42:4d:52 brd ff:ff:ff:ff:ff:ff
inet 169.254.192.8/18 brd 169.254.255.255 scope global ha-224b2c85-81
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe42:4d52/64 scope link
valid_lft forever preferred_lft forever
11: qr-842e3e41-3a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether fa:16:3e:13:bc:63 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 scope global qr-842e3e41-3a
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe13:bc63/64 scope link
valid_lft forever preferred_lft forever
12: qg-04d4c06e-49: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether fa:16:3e:b7:19:b8 brd ff:ff:ff:ff:ff:ff
inet 10.1.0.101/24 scope global qg-04d4c06e-49
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:feb7:19b8/64 scope link
valid_lft forever preferred_lft forever
[root@network ~]#
[root@network ~]#
[root@network2 ~]# ip netns exec qrouter-26aed9ea-b9d5-4427-a3e4-9e75be3e1bfa ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
16: ha-37517361-ec: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether fa:16:3e:6f:a0:11 brd ff:ff:ff:ff:ff:ff
inet 169.254.192.7/18 brd 169.254.255.255 scope global ha-37517361-ec
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe6f:a011/64 scope link
valid_lft forever preferred_lft forever
17: qr-842e3e41-3a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether fa:16:3e:13:bc:63 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 scope global qr-842e3e41-3a
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe13:bc63/64 scope link
valid_lft forever preferred_lft forever
18: qg-04d4c06e-49: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether fa:16:3e:b7:19:b8 brd ff:ff:ff:ff:ff:ff
inet 10.1.0.101/24 scope global qg-04d4c06e-49
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:feb7:19b8/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
[root@network2 ~]#
In above output you can see the device qg-04d4c06e-49 and qr-842e3e41-3a has been created in both the server.