Bug 18521

Summary: 4.0-STABLE: problem in rc.network (with patch)
Product: Base System Reporter: larse <larse>
Component: confAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.0-STABLE   
Hardware: Any   
OS: Any   

Description larse 2000-05-13 03:40:01 UTC
I've finally tracked down a strange problem that I've also seen under
3.X before. It seems that setting the NIS domain name in rc.network
before ipfw is initialized causes ipfw rule adds later on in 
the boot process to be extremely slow. (I see about a minute delay 
per rule).

Fix: Set the NIS domain name after ipfw is initialized.

Note: I've no idea why this fixes it, or why setting the NIS
      domain name would slow down ipfw to a crawl...

Fix: 

--- rc.network  2000/03/31 01:54:16     1.3
+++ rc.network  2000/05/13 02:25:27
@@ -20,17 +20,6 @@
                echo -n ' hostname'
        fi
 
-       # Set the domainname if we're using NIS
-       #
-       case ${nisdomainname} in
-       [Nn][Oo] | '')
-               ;;
-       *)
-               domainname ${nisdomainname}
-               echo -n ' domain'
-               ;;
-       esac
-
        echo '.'
 
        # Initial ATM interface configuration
@@ -404,6 +393,17 @@
        case ${portmap_enable} in
        [Yy][Ee][Ss])
                echo -n ' portmap';     ${portmap_program:-/usr/sbin/portmap} ${portmap_flags}
+               ;;
+       esac
+
+       # Set the domainname if we're using NIS
+       #
+       case ${nisdomainname} in
+       [Nn][Oo] | '')
+               ;;
+       *)
+               domainname ${nisdomainname}
+               echo -n ' domain'
                ;;
        esac
How-To-Repeat: Include these lines in /etc/rc.conf:

firewall_enable="client"
firewall_type="/etc/rc.firewall.local"

nisdomainname="mydomain"
nis_client_enable="YES"

Reboot.
Comment 1 dd freebsd_committer freebsd_triage 2001-07-22 16:35:14 UTC
State Changed
From-To: open->closed

If this is still a problem, the right fix is to fix ipfw.  The proposed patch 
is wrong not only because it masks the problem, but because NIS may be 
needed before ipfw is initialized: ipfw allows one to use DNS names instead 
of IP addresses on the command line, and NIS may be needed to resolve those 
names.