# Network down after upgrade to FreeBSD 10.0-BETA3



## mahashakti89 (Nov 10, 2013)

Hello,

I used freebsd-update to upgrade to 10.0-BETA3. Some ports need to be reinstalled, but the problem is that now the network is down. On start I get this: 
	
	



```
dhclient failed to start
```
 If I try to start it by hand I get this: 
	
	



```
dhclient 
chroot
exiting
```

Extract from /etc/rc.conf: 
	
	



```
ifconfig_em0="DHCP"
ifconfig_re0="DHCP"
dhcp_program="/sbin/dhclient"
```

I also used bsdinstall to reinstall dhclient but it didn't work.

Any help will be welcome.

mahashakti89


----------



## Juanitou (Nov 10, 2013)

I got the same problem here after the first reboot, but after issuing a `service netif restart` the network came alive. Iâ€™m just using FreeBSD as a desktop, so maybe disregard my observations, but I've never seen chroot associated with dhclient, neither the line 
	
	



```
dhcp_program="/sbin/dhclient"
```
 Why is it needed?


----------



## mahashakti89 (Nov 10, 2013)

Hello!

I tried it with  `service netif restart` but had no success, I got the following error message:


```
Stopping Network: lo0 em0 re0.
lo0: flags=8048<LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
	inet6 ::1 prefixlen 128 
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
em0: flags=8c02<BROADCAST,OACTIVE,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
	ether f4:6d:04:99:c9:db
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
re0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
	ether f4:6d:04:99:dd:d1
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
Starting dhclient.
Starting dhclient.
Starting Network: lo0 em0 re0.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
	inet6 ::1 prefixlen 128 
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 
	inet 127.0.0.1 netmask 0xff000000 
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
	ether f4:6d:04:99:c9:db
	inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
	ether f4:6d:04:99:dd:d1
	inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
```

and after that:
	
	



```
WARNING dhclient failed to start
chroot
exiting
```

I also have no idea what chroot is doing here.

Regards

mahashakti89


----------



## cpm@ (Nov 10, 2013)

Per rc.conf(5)() manpage, you can note that the dhcp_program variable was changed: `% man rc.conf | less -p dhclient_program`

So you are using the dhcp_program variable which was replaced for the newest dhclient_program variable some time ago.

http://lists.freebsd.org/pipermail/freebsd-doc/2008-October/014851.html.

From /usr/src/sbin/dhclient/dhclient.c

```
/* set up the interface */
        discover_interfaces(ifi);

        if (chroot(_PATH_VAREMPTY) == -1)
                error("chroot");
        if (chdir("/") == -1)
                error("chdir(\"/\")");

        if (setgroups(1, &pw->pw_gid) ||
            setegid(pw->pw_gid) || setgid(pw->pw_gid) ||
            seteuid(pw->pw_uid) || setuid(pw->pw_uid))
                error("can't drop privileges: %m");

        endpwent();

        setproctitle("%s", ifi->name);

        if (immediate_daemon)
                go_daemon();

        ifi->client->state = S_INIT;
        state_reboot(ifi);

        bootp_packet_handler = do_packet;

        dispatch();
```

Be sure you have created the /var/empty directory to make go away chroot message. FYI the directory is used as a chroot(2)() directory by sshd and is supposed to exist and be empty.


----------



## mahashakti89 (Nov 10, 2013)

Thanks for that. It works now. I didn't dig further enough. Both interfaces are working.

Regards.

mahashakti89


----------

