Unable to trigger IPv6 Prefix Delegation

Bug #1844123 reported by Kevin Zhao
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Invalid
Undecided
Unassigned

Bug Description

Follow the guide:
https://docs.openstack.org/neutron/pike/admin/config-ipv6.html#configuring-the-dibbler-server

I run devstack and configure Dibber server. But I've checked I could not trigger the PD process.

Base OS: Ubuntu 18.04

The devstack local conf:
======================
ADMIN_PASSWORD=****
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

HOST_IP=192.168.100.19
HOST_IPV6=2604:1380:4111:3e00::13
SERVICE_HOST=$HOST_IP
MYSQL_HOST=$HOST_IP
RABBIT_HOST=$HOST_IP
GLANCE_HOSTPORT=$HOST_IP:9292

## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="139.178.86.48/28"
IPV4_ADDRS_SAFE_TO_USE="11.100.0.0/24"
Q_FLOATING_ALLOCATION_POOL=start=139.178.86.51,end=139.178.86.62
PUBLIC_NETWORK_GATEWAY="139.178.86.49"
PUBLIC_INTERFACE=bond0

disable_service tempest

# Open vSwitch provider networking configuration
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex

LOGFILE=/opt/stack/logs/stack.sh.log
====================================
While my ip addr output:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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 2604:1380:4111:3e08::1/61 scope global deprecated
       valid_lft forever preferred_lft 0sec
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enaqcom8070i0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 8c:fd:f0:0c:71:79 brd ff:ff:ff:ff:ff:ff
3: enp1s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether 98:03:9b:9c:b9:4c brd ff:ff:ff:ff:ff:ff
4: enp1s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 98:03:9b:9c:b9:4d brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.19/24 brd 192.168.100.255 scope global enp1s0f1
       valid_lft forever preferred_lft forever
    inet6 fe80::9a03:9bff:fe9c:b94d/64 scope link
       valid_lft forever preferred_lft forever
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether 98:03:9b:9c:b9:4c brd ff:ff:ff:ff:ff:ff
    inet 10.32.36.34/28 brd 10.32.36.47 scope global bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::9a03:9bff:fe9c:b94c/64 scope link
       valid_lft forever preferred_lft forever
6: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:d2:50:fd brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
7: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:d2:50:fd brd ff:ff:ff:ff:ff:ff
23: tap0a3e1687-4b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether fe:16:3e:17:69:19 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc16:3eff:fe17:6919/64 scope link
       valid_lft forever preferred_lft forever
27: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether f2:04:a9:6f:6c:65 brd ff:ff:ff:ff:ff:ff
28: br-int: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN group default qlen 1000
    link/ether 72:49:08:66:d2:42 brd ff:ff:ff:ff:ff:ff
29: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 98:03:9b:9c:b9:4c brd ff:ff:ff:ff:ff:ff
    inet 139.178.86.50/28 brd 139.178.86.63 scope global br-ex
       valid_lft forever preferred_lft forever
    inet 139.178.86.49/28 scope global secondary br-ex
       valid_lft forever preferred_lft forever
    inet6 2604:1380:4111:3e08::2/61 scope global
       valid_lft forever preferred_lft forever
    inet6 2001:db8::2/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2604:1380:4111:3e00::13/127 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::346f:5aff:fee5:f145/64 scope link
       valid_lft forever preferred_lft forever
30: br-tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 42:2e:13:28:eb:47 brd ff:ff:ff:ff:ff:ff
35: tap3ba8f9d3-8f: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc fq_codel master ovs-system state UNKNOWN group default qlen 1000
    link/ether fe:16:3e:ae:0d:28 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc16:3eff:feae:d28/64 scope link
       valid_lft forever preferred_lft forever
==================================================================

I setup dibbler server 1.0.1 and install the dibbler-client.

cat /etc/dibbler/server.conf
#
# Example server configuration file
#
# This config. file is considered all-purpose as it instructs server
# to provide almost every configuratio
#

# Logging level range: 1(Emergency)-8(Debug)
log-level 8

# Don't log full date
log-mode short

# Uncomment this line to call script every time a response is sent
script "/var/lib/dibbler/pd-server.sh"

# set preference of this server to 0 (higher = more prefered)
preference 0

iface "br-ex" {
    pd-class {
        pd-pool 2604:1380:4111:3e08::/61
        pd-length 64
        T1 11111
        T2 22222
    }
}

/var/lib/dibbler/pd-server.sh content:
==============================================
LOGFILE=/var/lib/dibbler/server-notify.log
echo "---$1---------" >> $LOGFILE
date >> $LOGFILE

if [ "$ADDR1" != "" ]; then
    echo "Address ${ADDR1} (operation $1) to client $REMOTE_ADDR on interface $IFACE/$IFINDEX" >> $LOGFILE
fi

if [ "$PREFIX1" != "" ]; then
    echo "Prefix ${PREFIX1} (operation $1) to client $REMOTE_ADDR on interface $IFACE/$IFINDEX" >> $LOGFILE
    if [ "$1" == "add" ]; then
        sudo ip -6 route add ${PREFIX1}/64 via $REMOTE_ADDR dev $IFACE
    fi
    if [ "$1" == "delete" ]; then
        sudo ip -6 route del ${PREFIX1}/64 via $REMOTE_ADDR dev $IFACE
    fi
fi

exit 1
==============================================

Dibbler server output:
| Authors : Tomasz Mrugalski<thomson(at)klub.com.pl>,Marek Senderski<msend(at)o2.pl>
| Licence : GNU GPL v2 only. Developed at Gdansk University of Technology.
| Homepage: http://klub.com.pl/dhcpv6/
2019.09.16 10:46:13 Server Notice My pid (2651) is stored in /var/lib/dibbler/server.pid
2019.09.16 10:46:13 Server Notice Detected iface tap3ba8f9d3-8f/35, MAC=fe:16:3e:ae:0d:28.
2019.09.16 10:46:13 Server Notice Detected iface br-tun/30, MAC=42:2e:13:28:eb:47.
2019.09.16 10:46:13 Server Notice Detected iface br-ex/29, MAC=98:03:9b:9c:b9:4c.
2019.09.16 10:46:13 Server Notice Detected iface br-int/28, MAC=72:49:08:66:d2:42.
2019.09.16 10:46:13 Server Notice Detected iface ovs-system/27, MAC=f2:04:a9:6f:6c:65.
2019.09.16 10:46:13 Server Notice Detected iface tap0a3e1687-4b/23, MAC=fe:16:3e:17:69:19.
2019.09.16 10:46:13 Server Notice Detected iface virbr0-nic/7, MAC=52:54:00:d2:50:fd.
2019.09.16 10:46:13 Server Notice Detected iface virbr0/6, MAC=52:54:00:d2:50:fd.
2019.09.16 10:46:13 Server Notice Detected iface bond0/5, MAC=98:03:9b:9c:b9:4c.
2019.09.16 10:46:13 Server Notice Detected iface enp1s0f1/4, MAC=98:03:9b:9c:b9:4d.
2019.09.16 10:46:13 Server Notice Detected iface enp1s0f0/3, MAC=98:03:9b:9c:b9:4c.
2019.09.16 10:46:13 Server Notice Detected iface enaqcom8070i0/2, MAC=8c:fd:f0:0c:71:79.
2019.09.16 10:46:13 Server Notice Detected iface lo/1, MAC=00:00:00:00:00:00.
2019.09.16 10:46:13 Server Notice Parsing /etc/dibbler/server.conf config file...
46:13 Server Debug PD: Client will receive /64 prefixes (T1=11111..11111, T2=22222..22222).
46:13 Server Debug PD: Pool 2604:1380:4111:3e08:: - 2604:1380:4111:3e0f:ffff:ffff:ffff:ffff, pool length: 61, 8 prefix(es) total.
46:13 Server Debug PD: Up to 8 prefixes may be assigned.
46:13 Server Debug 0 per-client configurations (exceptions) added.
46:13 Server Debug Parsing /etc/dibbler/server.conf done.
46:13 Server Info 0 client class(es) defined.
46:13 Server Debug 1 interface(s) specified in /etc/dibbler/server.conf
46:13 Server Info Mapping allow, deny list to PD 0
46:13 Server Info Interface br-ex/29 configuration has been loaded.
46:13 Server Notice Running in stateful mode.
46:13 Server Debug Bulk-leasequery: enabled=no, TCP port=547, max conns=10, timeout=300
46:13 Server Debug DUID's value = 00:01:00:01:24:d5:55:d7:fe:16:3e:93:20:1a was loaded from server-duid file.
46:13 Server Info My DUID is 00:01:00:01:24:d5:55:d7:fe:16:3e:93:20:1a.
46:13 Server Info Loading old address database (server-AddrMgr.xml), using built-in routines.
46:13 Server Info DB timestamp:1568630765, now()=1568630773, db is 8 second(s) old.
46:13 Server Debug Auth: Replay detection value loaded 0
46:13 Server Debug Cache:server-cache.xml file: parsing started, expecting 0 entries.
46:13 Server Notice Creating multicast (ff02::1:2) socket on br-ex/29 (br-ex/29) interface.
46:13 Server Notice Creating link-local (fe80::346f:5aff:fee5:f145) socket on br-ex/29 interface.
46:13 Server Info Reconfigure support was not enabled.
46:13 Server Debug Cache: size set to 1048576 bytes, 1 cache entry size is 147 bytes, so maximum 7133 address-client pair(s) may be cached.
46:13 Server Debug Increased pools usage: currently 0 address(es) and 0 prefix(es) are leased.
46:13 Server Notice Server begins operation.
46:13 Server Notice Accepting connections. Next event in 4294967295 second(s).

Run cmd:
openstack router add subnet router1 ipv6-pd-1

The output is in attachments.

Tags: ipv6
Revision history for this message
Kevin Zhao (kevin-zhao) wrote :
tags: added: ipv6
Revision history for this message
YAMAMOTO Takashi (yamamoto) wrote :

can you provide the whole neutron-l3 log from its beginning?

Changed in neutron:
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for neutron because there has been no activity for 60 days.]

Changed in neutron:
status: Incomplete → Expired
Revision history for this message
Kevin Zhao (kevin-zhao) wrote :

Fixed. Due to configuration issue.

Changed in neutron:
status: Expired → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.