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
Archive administrator: postmaster@marples.name