I have two Raspberry Pis with their serial ports connected to each other. I have established a PPP link between the two of them and successfully ICMPV6 pinged and opened TCP sockets between them. But I can't work out how to get the 'client' pppd to accept the link-local IPv6 address provided by the 'server' pppd. I am trying to use static addresses so I know the link-local IP address of the remote peer.
On the 'server' I am running:
pppd file ./ppp-options ipv6 ::1,::2 /dev/ttyAMA0 115200
And on the 'client', I am running:
pppd file ./ppp-options ipv6cp-accept-local /dev/ttyAMA0 115200
However the ipv6cp-accept-local
option doesn't seem to work as the man page describes:
With this option, pppd will accept the peer's idea of our local IPv6 interface identifier, even if the local IPv6 interface identifier was specified in an option.
The 'client' machine is instead using a randomly assigned link local address:
Using interface ppp0
Connect: ppp0 <--> /dev/ttyAMA0
Deflate (15) compression enabled
local LL address fe80::fd28:565e:1186:02ff
remote LL address fe80::0000:0000:0000:0001
The full output with debug turned on the client is here: https://gist.github.com/njh/ab3282f43c72dcf6932b3693eb7dfca4
And this is my configuration file (used by both):
nodetach
noauth
persist
local
noip
+ipv6
I am running Raspberry Pi OS, which has pppd version 2.4.7 installed on both devices.