Page MenuHomeVyOS Platform

Show prefix received via IA_PD in interface info
Open, Requires assessmentPublic

Description

  • My DSL provider allocates /56 IPv6 network via PPPoE using IA_PD allocation
  • The PPPoE client receives the allocation but information about the prefix is not available in the output of show interfaces command.
  • The only way I managed to find it is in the dhcp6c log.

Here are examples:

r2# show interfaces
 ethernet eth1 {
     description WAN
     duplex auto
     hw-id 00:0d:b9:44:54:31
     speed auto
     vif 35 {
         description DSL-1
     }
 }
 pppoe pppoe0 {
     authentication {
         password <password>
         user <user>
     }
     default-route auto
     description PPPOE-1
     dhcpv6-options {
         pd 0 {
             length 56
         }
         rapid-commit
     }
     ipv6 {
         address {
             autoconf
         }
     }
     source-interface eth1.35
 }
r2:~$ show interfaces pppoe pppoe0 statistics
      IN   PACK VJCOMP  VJUNC  VJERR  |      OUT   PACK VJCOMP  VJUNC NON-VJ
 3564706  34837      0      0      0  |  1753660  22451      0      0  22451
dtoubelis@r2:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
eth1             -                                 u/u  WAN
eth1.35          -                                 u/u  EBOX-DSL-INET

lo               127.0.0.1/8                       u/u
                 ::1/128
pppoe0           74.116.186.154/32                 u/u  EBOX-PPPOE
                 2606:6d00:15:5ce1:d0c4:8fac:b2e4:c5ad/64
r2:~$ show interfaces pppoe pppoe0
pppoe0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 74.116.186.154 peer 96.127.249.100/32 scope global pppoe0
       valid_lft forever preferred_lft forever
    inet6 2606:6d00:15:5ce1:d0c4:8fac:b2e4:c5ad/64 scope global dynamic mngtmpaddr
       valid_lft 2591821sec preferred_lft 604621sec
    inet6 fe80::d0c4:8fac:b2e4:c5ad/10 scope link
       valid_lft forever preferred_lft forever
    Description: EBOX-PPPOE

    RX:    bytes  packets  errors  dropped  overrun       mcast
         3608289    35299       0        0        0           0
    TX:    bytes  packets  errors  dropped  carrier  collisions
         1780875    22793       0        0        0           0

And this is the only place I managed to find this info:

vyos@r2:~$ sudo -i
root@r2:~# journalctl -u dhcp6c@pppoe0.service
-- Logs begin at Mon 2021-03-22 20:03:16 EDT, end at Tue 2021-03-23 23:10:28 EDT. --
...
Mar 23 12:48:27 r2 systemd[1]: Starting WIDE DHCPv6 client on pppoe0...
Mar 23 12:48:27 r2 dhcp6c[16976]: get_duid: extracted an existing DUID from /var/lib/dhcpv6/dhcp6c_duid: 00:01:00:01:27:ea:d3:18:00:0d:b9:44:54:30
Mar 23 12:48:27 r2 dhcp6c[16976]: dhcp6_ctl_authinit: failed to open /run/dhcp6c/dhcp6c.pppoe0.sock: No such file or directory
Mar 23 12:48:27 r2 dhcp6c[16976]: client6_init: failed initialize control message authentication
Mar 23 12:48:27 r2 dhcp6c[16976]: client6_init: skip opening control port
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>comment [### Autogenerated by interface.py ###] (37)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>comment [# man https://www.unix.com/man-page/debian/5/dhcp6c.conf/] (57)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>[interface] (9)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <5>[pppoe0] (6)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>begin of closure [{] (1)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>[send] (4)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>[ia-pd] (5)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>[0] (1)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>end of sentence [;] (1)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>comment [# prefix delegation #0] (22)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>end of closure [}] (1)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>end of sentence [;] (1)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>[id-assoc] (8)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <15>[pd] (2)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <15>[0] (1)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <15>begin of closure [{] (1)
Mar 23 12:48:27 r2 systemd[1]: dhcp6c@pppoe0.service: Can't open PID file /run/dhcp6c/dhcp6c.pppoe0.pid (yet?) after start: No such file or directory
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>[prefix] (6)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>[::] (2)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>[/] (1)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>[56] (2)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>[infinity] (8)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>end of sentence [;] (1)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>end of closure [}] (1)
Mar 23 12:48:27 r2 dhcp6c[16976]: cfdebug_print: <3>end of sentence [;] (1)
Mar 23 12:48:27 r2 dhcp6c[16976]: configure_pool: called
Mar 23 12:48:27 r2 dhcp6c[16976]: clear_poolconf: called
Mar 23 12:48:27 r2 dhcp6c[16982]: dhcp6_reset_timer: reset a timer on pppoe0, state=INIT, timeo=0, retrans=347
Mar 23 12:48:27 r2 systemd[1]: Started WIDE DHCPv6 client on pppoe0.
Mar 23 12:48:28 r2 dhcp6c[16982]: client6_send: a new XID (4fd33a) is generated
Mar 23 12:48:28 r2 dhcp6c[16982]: copy_option: set client ID (len 14)
Mar 23 12:48:28 r2 dhcp6c[16982]: copy_option: set elapsed time (len 2)
Mar 23 12:48:28 r2 dhcp6c[16982]: copyout_option: set IA_PD prefix
Mar 23 12:48:28 r2 dhcp6c[16982]: copyout_option: set IA_PD
Mar 23 12:48:28 r2 dhcp6c[16982]: client6_send: send solicit to ff02::1:2%pppoe0
Mar 23 12:48:28 r2 dhcp6c[16982]: dhcp6_reset_timer: reset a timer on pppoe0, state=SOLICIT, timeo=0, retrans=1083
Mar 23 12:48:28 r2 dhcp6c[16982]: client6_recv: receive advertise from fe80::2a0:a510:88:8ea4%pppoe0 on pppoe0
Mar 23 12:48:28 r2 dhcp6c[16982]: dhcp6_get_options: get DHCP option client ID, len 14
Mar 23 12:48:28 r2 dhcp6c[16982]:   DUID: 00:01:00:01:27:ea:d3:18:00:0d:b9:44:54:30
Mar 23 12:48:28 r2 dhcp6c[16982]: dhcp6_get_options: get DHCP option server ID, len 26
Mar 23 12:48:28 r2 dhcp6c[16982]:   DUID: 00:02:00:00:05:83:4a:4e:31:32:35:45:41:39:38:41:46:43:00:00:00:00:00:00:00:00
Mar 23 12:48:28 r2 dhcp6c[16982]: dhcp6_get_options: get DHCP option IA_PD, len 41
Mar 23 12:48:28 r2 dhcp6c[16982]:   IA_PD: ID=0, T1=43200, T2=69120
Mar 23 12:48:28 r2 dhcp6c[16982]: copyin_option: get DHCP option IA_PD prefix, len 25
Mar 23 12:48:28 r2 dhcp6c[16982]: copyin_option:   IA_PD prefix: 2606:6d00:19f:a800::/56 pltime=86400 vltime=86400
Mar 23 12:48:28 r2 dhcp6c[16982]: client6_recvadvert: server ID: 00:02:00:00:05:83:4a:4e:31:32:35:45:41:39:38:41:46:43:00:00:00:00:00:00:00:00, pref=-1
Mar 23 12:48:28 r2 dhcp6c[16982]: client6_recvadvert: reset timer for pppoe0 to 0.767146
Mar 23 12:48:29 r2 dhcp6c[16982]: select_server: picked a server (ID: 00:02:00:00:05:83:4a:4e:31:32:35:45:41:39:38:41:46:43:00:00:00:00:00:00:00:00)
Mar 23 12:48:29 r2 dhcp6c[16982]: client6_send: a new XID (55eaf7) is generated
Mar 23 12:48:29 r2 dhcp6c[16982]: copy_option: set client ID (len 14)
Mar 23 12:48:29 r2 dhcp6c[16982]: copy_option: set server ID (len 26)
Mar 23 12:48:29 r2 dhcp6c[16982]: copy_option: set elapsed time (len 2)
Mar 23 12:48:29 r2 dhcp6c[16982]: copyout_option: set IA_PD prefix
Mar 23 12:48:29 r2 dhcp6c[16982]: copyout_option: set IA_PD
Mar 23 12:48:29 r2 dhcp6c[16982]: client6_send: send request to ff02::1:2%pppoe0
Mar 23 12:48:29 r2 dhcp6c[16982]: dhcp6_reset_timer: reset a timer on pppoe0, state=REQUEST, timeo=0, retrans=946
Mar 23 12:48:29 r2 dhcp6c[16982]: client6_recv: receive reply from fe80::2a0:a510:88:8ea4%pppoe0 on pppoe0
Mar 23 12:48:29 r2 dhcp6c[16982]: dhcp6_get_options: get DHCP option client ID, len 14
Mar 23 12:48:29 r2 dhcp6c[16982]:   DUID: 00:01:00:01:27:ea:d3:18:00:0d:b9:44:54:30
Mar 23 12:48:29 r2 dhcp6c[16982]: dhcp6_get_options: get DHCP option server ID, len 26
Mar 23 12:48:29 r2 dhcp6c[16982]:   DUID: 00:02:00:00:05:83:4a:4e:31:32:35:45:41:39:38:41:46:43:00:00:00:00:00:00:00:00
Mar 23 12:48:29 r2 dhcp6c[16982]: dhcp6_get_options: get DHCP option IA_PD, len 41
Mar 23 12:48:29 r2 dhcp6c[16982]:   IA_PD: ID=0, T1=43200, T2=69120
Mar 23 12:48:29 r2 dhcp6c[16982]: copyin_option: get DHCP option IA_PD prefix, len 25
Mar 23 12:48:29 r2 dhcp6c[16982]: copyin_option:   IA_PD prefix: 2606:6d00:19f:a800::/56 pltime=86400 vltime=86400
Mar 23 12:48:29 r2 dhcp6c[16982]: get_ia: make an IA: PD-0
Mar 23 12:48:29 r2 dhcp6c[16982]: update_prefix: create a prefix 2606:6d00:19f:a800::/56 pltime=86400, vltime=86400
Mar 23 12:48:29 r2 dhcp6c[16982]: dhcp6_remove_event: removing an event on pppoe0, state=REQUEST
Mar 23 12:48:29 r2 dhcp6c[16982]: dhcp6_remove_event: removing server (ID: 00:02:00:00:05:83:4a:4e:31:32:35:45:41:39:38:41:46:43:00:00:00:00:00:00:00:00)
Mar 23 12:48:29 r2 dhcp6c[16982]: client6_recvreply: got an expected reply, sleeping.

(the prefix in question is 2606:6d00:19f:a800::/56)

Could you please add IA_PD prefix to the output of show intefaces command?

Details

Difficulty level
Unknown (require assessment)
Version
VyOS 1.4-rolling-202103220217
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)

Event Timeline

dtoux created this object in space S1 VyOS Public.

@dtoux could you provide us with a mocked up output what you would like to see?

Sorry for the late reply, I've dismantled the setup as I needed to put the PPP link back in use, I will look into it again tonight. In essence, it would be good to see something like this on terse view:

...
10.0.0.1/31
2001:a:b:c::2/64
2001:a.b::/56

The first address (if any) is IPv4 one received via PPP protocol
The second one (if any) is once received via DHCP6 IA_NA mechanism
And the third one is the network received via DHCP6 IA_PD (note that it is a network and not an address)

...or you could move the IA_PD network info to the detailed view and keep the brief view tidy and clean.