fanatic remote host test fails when using non-default subnet sizes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubuntu-fan (Ubuntu) |
Fix Released
|
Critical
|
Andy Whitcroft | ||
Xenial |
Fix Released
|
Critical
|
Andy Whitcroft |
Bug Description
When conducting the remote host testing, fanatic incorrectly calculates the ip for the remote test host on the Fan.
My remote host ip's are 192.168.1.3 and 192.168.1.10. I'm using non-default subnet sizes for the overlay/underlays (ie -o 250.99.0.0/16 and -u 192.168.1.0/24). Both LXD and Docker tests pass, but, as noted, the remote host testing fails:
test slave: ping test (250.99.1.4) ...
test slave: ping test ... FAIL
You'll notice the ip is incorrect, 250.99.1.4. It should be 250.99.3.1 in this example.
Raw output of failing fanatic test run is below:
$ sudo fanatic
Welcome to the fanatic fan networking wizard. This will help you set
up an example fan network and optionally configure docker and/or LXD to
use this network. See fanatic(1) for more details.
Configure fan underlay (hit return to accept, or specify alternative) [192.168.0.0/16]: 192.168.1.0/24
Configure fan overlay (hit return to accept, or specify alternative) [250.0.0.0/8]: 250.99.0.0/16
Create LXD networking for underlay:
Profile fan-250-99 created
Create docker networking for underlay:
Test LXD networking for underlay:
(NOTE: potentially triggers large image downloads) [Yn]: Y
local lxd test: creating test container (Ubuntu:16.04) ...
Creating fanatic-test
Starting fanatic-test
lxd test: Waiting for addresses on eth0 ...
lxd test: Waiting for addresses on eth0 ...
lxd test: Waiting for addresses on eth0 ...
lxd test: Waiting for addresses on eth0 ...
test master: ping test (250.99.10.166) ...
test slave: ping test (250.99.10.1) ...
test master: ping test ... PASS
test master: short data test (250.99.10.1 -> 250.99.10.166) ...
test slave: ping test ... PASS
test slave: short data test (250.99.10.166 -> 250.99.10.1) ...
test slave: short data ... PASS
test master: short data ... PASS
test slave: long data test (250.99.10.166 -> 250.99.10.1) ...
test master: long data test (250.99.10.1 -> 250.99.10.166) ...
test master: long data ... PASS
test slave: long data ... PASS
local lxd test: destroying test container ...
local lxd test: test complete PASS (master=0 slave=0)
Test docker networking for underlay:
(NOTE: potentially triggers large image downloads) [Yn]: Y
local docker test: creating test container ...
e47583ee4f18c95
test master: ping test (250.99.10.0) ...
test slave: ping test (250.99.10.1) ...
test master: ping test ... PASS
test master: short data test (250.99.10.1 -> 250.99.10.0) ...
test slave: ping test ... PASS
test slave: short data test (250.99.10.0 -> 250.99.10.1) ...
test slave: short data ... PASS
test master: short data ... PASS
test slave: long data test (250.99.10.0 -> 250.99.10.1) ...
test master: long data test (250.99.10.1 -> 250.99.10.0) ...
test master: long data ... PASS
test slave: long data ... PASS
local docker test: destroying test container ...
fanatic-test
fanatic-test
local docker test: test complete PASS (master=0 slave=0)
This host IP address: 192.168.1.10
Remote test host IP address (none to skip): 192.168.1.3
host test: starting ...
test slave: ping test (250.99.1.4) ...
test slave: ping test ... FAIL
--- transcript start ---
PING 250.99.1.4 (250.99.1.4) 56(84) bytes of data.
From 250.99.10.1 icmp_seq=1 Destination Host Unreachable
From 250.99.10.1 icmp_seq=2 Destination Host Unreachable
From 250.99.10.1 icmp_seq=3 Destination Host Unreachable
From 250.99.10.1 icmp_seq=4 Destination Host Unreachable
From 250.99.10.1 icmp_seq=5 Destination Host Unreachable
--- 250.99.1.4 ping statistics ---
5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 3998ms
pipe 3
--- transcript end ---
test slave: short data test (250.99.10.1 -> 250.99.1.4) ...
===
[Impact]
Remote host testing does not function correctly with non-default overlay/underlay combinations.
[Test Case]
As above.
[Regression Potential]
Low, this is only used during initial setup.
Changed in ubuntu-fan (Ubuntu): | |
status: | New → In Progress |
importance: | Undecided → Critical |
assignee: | nobody → Andy Whitcroft (apw) |
Changed in ubuntu-fan (Ubuntu Xenial): | |
status: | New → In Progress |
importance: | Undecided → Critical |
assignee: | nobody → Andy Whitcroft (apw) |
description: | updated |
We are incorrectly using a fix width of /16 when calculating the remote IP address to remote Fan slice address. We need to use the selected width for this calculation.