dhcpcd-discuss

Re: dhcpcd and consumer broadband connections

Roy Marples

Fri Dec 27 14:56:42 2019

Hi Daniel

On 22/12/2019 07:11, Daniel Corbe wrote:
I've got a bit of a situation I'm stuck on and I'd appreciate any
guidance anyone has to offer on this.

I have a Comcast cable modem.  eth1 is my connection to the cable
modem and eth2 is my LAN.

When I let dhcpcd do its thing without specifying any
interface-specific configuration, I get an auto-configured address on
my outside interface:

router:~# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 18:E8:29:4C:4C:52
           inet addr:73.57.99.182  Bcast:255.255.255.255  Mask:255.255.254.0
           inet6 addr: 2001:558:6030:7c:38e8:d8d8:7e9e:730a/128 Scope:Global
           inet6 addr: fe80::1ae8:29ff:fe4c:4c52/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:2385 errors:0 dropped:0 overruns:0 frame:0
           TX packets:2539 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:894141 (873.1 KiB)  TX bytes:650792 (635.5 KiB)

However, the moment I add any interface-specific configuration, the
autoconfigure address on the outside interface goes away.  However, I
do actually get my prefix and it gets put on the correct interface:

router:~# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 18:E8:29:4C:4C:52
           inet addr:73.57.99.182  Bcast:255.255.255.255  Mask:255.255.254.0
           inet6 addr: fe80::1ae8:29ff:fe4c:4c52/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:19299 errors:0 dropped:0 overruns:0 frame:0
           TX packets:17034 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:7641535 (7.2 MiB)  TX bytes:4799347 (4.5 MiB)

router:~# ifconfig eth2
eth2      Link encap:Ethernet  HWaddr 18:E8:29:4C:4C:53
           inet addr:10.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.0
           inet6 addr: 2601:588:c000:3a9::1/64 Scope:Global
           inet6 addr: fe80::1ae8:29ff:fe4c:4c53/64 Scope:Link
           inet6 addr: fe80::b35f:254c:58af:66e1/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:18210 errors:0 dropped:0 overruns:0 frame:0
           TX packets:18612 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:5040165 (4.8 MiB)  TX bytes:7602467 (7.2 MiB)

This unfortunately causes IPv6 to stop working completely:

router:~# ping6 www.google.com
PING www.google.com (2607:f8b0:4008:803::2004): 56 data bytes
ping6: sendto: Network unreachable

I'm pretty sure the problem is Comcast doesn't use link-local
addresses for routing and are expecting me to continue to carry the
autoconfigured address.

Here's my running config:

router:~# cat /etc/dhcpcd.conf
# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.

# Allow users of this group to interact with dhcpcd via the control socket.
#controlgroup wheel

# Inform the DHCP server of our hostname for DDNS.
hostname

# Use the hardware address of the interface for the Client ID.
#clientid
# or
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
# Some non-RFC compliant DHCP servers do not reply with this set.
# In this case, comment out duid and enable clientid above.
duid

# Persist interface configuration when dhcpcd exits.
persistent

# Rapid commit support.
# Safe to enable by default because it requires the equivalent option set
# on the server to actually work.
option rapid_commit

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Respect the network MTU. This is applied to DHCP routes.
option interface_mtu

# Most distributions have NTP support.
#option ntp_servers

# A ServerID is required by RFC2131.
require dhcp_server_identifier

# Generate SLAAC address using the Hardware Address of the interface
#slaac hwaddr
# OR generate Stable Private IPv6 Addresses based from the DUID
slaac private

# IPv6 Only
#ipv6only

# Wait for IP before forking to background
waitip 6

# Use the interface connected to WAN
interface eth1
     ipv6rs # enable routing solicitation get the default IPv6 route
     ipv6ra_autoconf
     iaid 1
     ia_pd 1/::/62 eth2/0/64

The issue is with your configuartion :)
Because you have specificall requested a DHCP6 address, it overrides any default as suggested by dhcpcd or the IPv6 router.

Try this:

interface eth1
     ipv6rs # enable routing solicitation get the default IPv6 route
     ipv6ra_autoconf
     ia_pd 1/::/62 eth2/0/64
     ia_na 1

Note that the first two entries are on by default and you haven't disabled them in the config so you could remove them.

Roy

Follow-Ups:
Re: dhcpcd and consumer broadband connectionsDaniel Corbe
References:
dhcpcd and consumer broadband connectionsDaniel Corbe
Archive administrator: postmaster@marples.name