Project

General

Profile

Actions

Task #7242

open

Test active-active IPv6/IPv4 configurations on routers

Added by Nico Schottelius about 2 years ago. Updated about 2 years ago.

Status:
In Progress
Priority:
Normal
Target version:
-
Start date:
10/20/2019
Due date:
% Done:

0%

Estimated time:
PM Check date:

Description

  • To be able to run w/o keepalived
Actions #1

Updated by Nico Schottelius about 2 years ago

  • Status changed from New to In Progress
  • Set IP "185.203.114.50" to hold in opennebula -> can use it for testing
router1:~# ip addr add 185.203.114.50/24 dev bond0.12
[16:39:59] router2.place6:~# ip addr add 185.203.114.50/24 dev bond0.12

pinging from 185.203.114.245

root@devuan:~# ping -c3 185.203.114.50   
PING 185.203.114.50 (185.203.114.50) 56(84) bytes of data.
64 bytes from 185.203.114.50: icmp_seq=1 ttl=64 time=0.994 ms
64 bytes from 185.203.114.50: icmp_seq=2 ttl=64 time=0.377 ms
64 bytes from 185.203.114.50: icmp_seq=3 ttl=64 time=0.317 ms

--- 185.203.114.50 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 10ms
rtt min/avg/max/mdev = 0.317/0.562/0.994/0.307 ms
root@devuan:~# ip neigh show | grep 185.203.114.50 
185.203.114.50 dev eth1 lladdr 00:1b:21:bc:7c:7a REACHABLE
root@devuan:~# 

Removing the IP address from the router that is in the cache and then checking how long it takes until failover

64 bytes from 185.203.114.50: icmp_seq=9 ttl=64 time=0.526 ms
64 bytes from 185.203.114.50: icmp_seq=10 ttl=64 time=0.824 ms
64 bytes from 185.203.114.50: icmp_seq=11 ttl=64 time=0.421 ms
64 bytes from 185.203.114.50: icmp_seq=12 ttl=64 time=0.316 ms
64 bytes from 185.203.114.50: icmp_seq=13 ttl=64 time=0.619 ms
From 185.203.114.10: icmp_seq=14 Redirect Host(New nexthop: 185.203.114.50)
64 bytes from 185.203.114.50: icmp_seq=14 ttl=64 time=1.07 ms
From 185.203.114.10: icmp_seq=15 Redirect Host(New nexthop: 185.203.114.50)

Practically seen no packet loss on failover in IPv4 -> assignment on both works.

Actions #2

Updated by Nico Schottelius about 2 years ago

v6 based test w/ dad ignorance on:

[17:03:48] router2.place6:~# cat /proc/sys/net/ipv6/conf/bond0.12/accept_dad 
1
[17:04:49] router2.place6:~# echo 0 > /proc/sys/net/ipv6/conf/bond0.12/accept_dad
[17:05:03] router2.place6:~# 

router1:~# cat /proc/sys/net/ipv6/conf/bond0.12/accept_dad 
1
router1:~# echo 0 > /proc/sys/net/ipv6/conf/bond0.12/accept_dad
router1:~# 

[17:04:49] router2.place6:~# echo 0 > /proc/sys/net/ipv6/conf/bond0.12/accept_dad
[17:05:03] router2.place6:~# ip addr add 2a0a:e5c0:2:2::53/64 dev bond0.12
[17:08:53] router2.place6:~# ip addr del 2a0a:e5c0:2:2::53/64 dev bond0.12
[17:09:15] router2.place6:~# ip addr add 2a0a:e5c0:2:2::53/64 dev bond0.12
[17:09:26] router2.place6:~# ip addr del 2a0a:e5c0:2:2::53/64 dev bond0.12
[17:09:46] router2.place6:~# ip addr del 2a0a:e5c0:2:2::53/64 dev bond0.12

router1:~# ip addr add 2a0a:e5c0:2:2::53/64 dev bond0.12
router1:~# ip addr del 2a0a:e5c0:2:2::53/64 dev bond0.12
router1:~# ip addr add 2a0a:e5c0:2:2::53/64 dev bond0.12
router1:~# 

Also works fine. Now we only need to automate it.

Actions

Also available in: Atom PDF