OVN: Set sysctl value 'net.ipv4.ip_nonlocal_bind' to 1

When OVN DBs pacemaker bundle is started on the controller nodes,
all the ovsdb-servers are configured to listen on the virtual ip
(on ports 6641/6642). But only master node is configured with virtual ip.
On the other nodes, we see the below error messages

ovsdb_jsonrpc_server|ERR|ptcp:6641:172.17.1.18: listen failed: Cannot assign
requested address.

The commit [1] addressed this issue in puppet-tripleo by setting the
sysctl value 'net.ipv4.ip_nonlocal_bind' to 1 using puppet's sysctl::value.
But the ovn-dbs.yaml service file is missing this puppet tag when the
container 'ovn_dbs_init_bundle' is started.

We can fix the issue by defining this tag, but this also requires setting
'privileged=true' when starting the docker container.

Instead, this patch makes use of the t-h-t param 'KernelIpNonLocalBind'
which was introduced in this commit [2].

[1] - I6f762534350a3f96696c87ccd2d14545dccc8a0b
[2] - Idd3d432b8f7eb573d94cd56be8e05614510ebddf

Change-Id: I5ae8cd368bcd58810b18e172ee685fdbf0e48d98
Closes-bug: #1781585
This commit is contained in:
Numan Siddique 2018-07-17 23:47:17 +05:30
parent d8b7b192ae
commit 5ed628f353
4 changed files with 4 additions and 1 deletions

View File

@ -26,4 +26,5 @@ parameter_defaults:
NeutronServicePlugins: 'qos,ovn-router,trunk'
NeutronVniRanges: ['1:65536', ]
NeutronEnableDVR: true
KernelIpNonLocalBind: 1

View File

@ -29,4 +29,4 @@ parameter_defaults:
NeutronBridgeMappings: ""
NetworkerParameters:
OVNCMSOptions: "enable-chassis-as-gw"
KernelIpNonLocalBind: 1

View File

@ -30,3 +30,4 @@ parameter_defaults:
ControllerParameters:
OVNCMSOptions: "enable-chassis-as-gw"
OVNDnsServers: []
KernelIpNonLocalBind: 1

View File

@ -32,3 +32,4 @@ parameter_defaults:
NetworkerParameters:
OVNCMSOptions: "enable-chassis-as-gw"
OVNDnsServers: []
KernelIpNonLocalBind: 1