You are not logged in.

#1 2017-09-12 08:25:16

MountainX
Member
Registered: 2016-02-08
Posts: 74

[SOLVED] network not starting after boot, but comes up manually

My arch linux box is connected directly to a Comcast cable internet modem. Immediately after booting up, I have no internet.

# ping google.com
ping: google.com: Name or service not known

logs show these issues:

Sep 12 03:38:26 arch2 network[358]: Duplicate Address Detection is taking too long on interface 'eth0'
Sep 12 03:38:27 arch2 network[358]: Failed to bring the network up for profile 'eth0-profile'
Sep 12 03:38:27 arch2 dhcpcd[588]: script_runreason: /usr/lib/dhcpcd/dhcpcd-run-hooks: Terminated

I can bring the network up like this:

# netctl restart eth0-profile

after that, everything is working. However, I'd like to find and resolve the underlying issue.

[root@arch2 computeruser]# systemctl status "netctl@eth0\\x2dprofile.service"
● netctl@eth0\x2dprofile.service - ETH0
   Loaded: loaded (/etc/systemd/system/netctl@eth0\x2dprofile.service; enabled; vendor preset: disabled)
   Active: active (exited) since Tue 2017-09-12 03:47:54 EDT; 36s ago
     Docs: man:netctl.profile(5)
  Process: 870 ExecStart=/usr/lib/netctl/network start eth0-profile (code=exited, status=0/SUCCESS)
 Main PID: 870 (code=exited, status=0/SUCCESS)
   Status: "online"
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/system-netctl.slice/netctl@eth0\x2dprofile.service
           ├─ 963 dhcpcd -4 -q -t 30 -L eth0
           └─1070 dhcpcd -6 -q -t 30 eth0

Sep 12 03:47:59 arch2 dhcpcd[1050]: eth0: soliciting an IPv6 router
Sep 12 03:47:59 arch2 dhcpcd[1050]: eth0: Router Advertisement from ff00::bbda:ffff:fe44:2dee
Sep 12 03:47:59 arch2 dhcpcd[1050]: eth0: adding address 2001:333:300:1c6:dd09:189b:cf5b:bbbb/64
Sep 12 03:47:59 arch2 dhcpcd[1050]: eth0: adding route to 2601:343:380:1f6::/64
Sep 12 03:47:59 arch2 dhcpcd[1050]: eth0: adding default route via ff00::bbda:ffff:fe44:2dee
Sep 12 03:47:59 arch2 dhcpcd[1050]: forked to background, child pid 1070
Sep 12 03:47:59 arch2 dhcpcd[1070]: eth0: confirming prior DHCPv6 lease
Sep 12 03:47:59 arch2 network[870]: Started network profile 'eth0-profile'
Sep 12 03:48:09 arch2 dhcpcd[1070]: eth0: failed to confirm prior address
Sep 12 03:48:09 arch2 dhcpcd[1070]: eth0: soliciting a DHCPv6 lease

Why won't the network start automatically?

Last edited by MountainX (2017-09-13 00:51:09)

Offline

#2 2017-09-12 12:53:24

seth
Member
Registered: 2012-09-03
Posts: 4,636

Re: [SOLVED] network not starting after boot, but comes up manually

Name collision? Any reason you're not using the predictable interface name?
Please paste the actual udev rule to turn this down.

Offline

#3 2017-09-12 19:43:56

MountainX
Member
Registered: 2016-02-08
Posts: 74

Re: [SOLVED] network not starting after boot, but comes up manually

seth wrote:

Name collision?

Can you explain that or tell me where I can learn more about how to resolve it? Why do you think it could be an issue here? Thanks.

Any reason you're not using the predictable interface name?.

Lot's of reasons, including that the box is a router with complex iptables rules built around specific interface names. These rules and the interface names were designed by someone a lot more knowledgeable than me, but I have to maintain the system now. It worked fine until 3 months ago when I had to restore from a backup. I cannot find anything that has changed. In particular, the configuration itself has not changed. Only the motherboard was changed and the mac addresses of the interfaces were updated.

Please paste the actual udev rule to turn this down

    # cat /etc/udev/rules.d/10-network.rules
    SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:1b:21:26:a2:24", NAME="eth3"
    SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:1b:21:26:a2:25", NAME="eth1"
    SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:1b:21:26:a2:26", NAME="eth2"
    SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:1b:21:26:a2:27", NAME="eth4"
    SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="2c:4d:54:e4:b7:29", NAME="eth0"

These mac addresses are appropriate for the new motherboard.

Offline

#4 2017-09-12 19:57:23

seth
Member
Registered: 2012-09-03
Posts: 4,636

Re: [SOLVED] network not starting after boot, but comes up manually

You're probably providing a static IPv6 address?
add "nodad" to the Address6 field of this (and possibly other interfaces) and read up https://lists.archlinux.org/pipermail/a … 03599.html

Otherwise try to add

TimeoutDAD=60

to the eth0 profile (this simply raises the Duplicate Address Detection timeout)

Offline

#5 2017-09-12 20:26:58

MountainX
Member
Registered: 2016-02-08
Posts: 74

Re: [SOLVED] network not starting after boot, but comes up manually

Thanks, seth. Awesome info. Where (e.g., which config file) would I add the nodad?

The way to prevent your interface from entering the 'tentative' state is by specifying addresses as follows:

Address6=('1234:bcd::11/64 nodad')

I located another suggestion. The last post at https://github.com/joukewitteveen/netctl/issues/91 suggests adding "SkipDAD=yes to your profile". Is that the netctl profile? If so, I'd like to try that.

My plan is to try things in this order:

1. use "SkipDAD=yes" when I determine where to add it. Do you know?
2. if needed, add nodad to address when I determine where to add it.
3. if still needed increase TimeoutDAD. However, I prefer to disable DAD because there is only ever one single device connected to the Comcast modem, so there will never be a duplicate address active.
4. if still needed, use `sudo sysctl net.ipv6.conf.eth0.accept_dad=0` -- is this needed on each boot? In which config file should this be placed?

Offline

#6 2017-09-12 20:57:19

seth
Member
Registered: 2012-09-03
Posts: 4,636

Re: [SOLVED] network not starting after boot, but comes up manually

You're netctl profiles reside in /etc/netctl/

I doubt the sysctl will help here, but you can fix those values in /etc/sysctl.d/

Offline

#7 2017-09-12 21:19:07

MountainX
Member
Registered: 2016-02-08
Posts: 74

Re: [SOLVED] network not starting after boot, but comes up manually

seth wrote:

You're netctl profiles reside in /etc/netctl/

I doubt the sysctl will help here, but you can fix those values in /etc/sysctl.d/

Thanks again. I did not know where to permanently set the sysctl values.

I am very familiar with netctl profiles. I just wasn't sure if all those options are set in a netctl profile. For example, is Address6=('1234:bcd::11/64 nodad') specified in a netctl profile?

And "TimeoutDAD=60" or "SkipDAD=yes" would also be specified in the netctl profile?

I really appreciate your replies. :-)

Offline

#8 2017-09-12 21:22:12

seth
Member
Registered: 2012-09-03
Posts: 4,636

Re: [SOLVED] network not starting after boot, but comes up manually

If you don't have an Address6 field in the netctl profile, DO NOT ADD ONE (especially not with random values)
You can try to other two options in the netctl profile definitions, yes. Also see "man netctl.profile" on the matter.

Offline

#9 2017-09-12 23:07:28

MountainX
Member
Registered: 2016-02-08
Posts: 74

Re: [SOLVED] network not starting after boot, but comes up manually

Adding "SkipDAD=yes" to the netctl profile appears to have solved it. The interface comes right up (very quickly) after booting.

However, I see the following in the logs:

	Sep 12 18:42:44 archfire2 network[359]: The interface of network profile 'eth0-profile' is already up
	Sep 12 18:42:44 archfire2 systemd[1]: Failed to start ETH0.
	Sep 12 18:42:49 archfire2 network[624]: The interface of network profile 'eth0-profile' is already up
	Sep 12 18:42:49 archfire2 systemd[1]: Failed to start ETH0.

I believe something I attempted previously in my efforts to resolve this is now redundant. What is the best way to track down everything related to this interface that is being run during the boot process so I can find the source of the above errors?

Thanks

Last edited by MountainX (2017-09-12 23:07:58)

Offline

#10 2017-09-13 00:49:27

MountainX
Member
Registered: 2016-02-08
Posts: 74

Re: [SOLVED] network not starting after boot, but comes up manually

All fixed! There was a systemd unit for netctl.service as well as instantiated units for each profile. Running this:

 systemctl disable netctl.service 

resolved the errors. I can't believe how much faster the system boots now. And no errors of any type!

I just used "systemctl list-units" and looked through each item manually to find the redundant unit.

Last edited by MountainX (2017-09-13 00:50:36)

Offline

Board footer

Powered by FluxBB