I'll be honest, I have absolutely no idea what's going on here.
I noticed the Internet would be fine for about 20 seconds, then the next link I clicked it would just be like I wasn't connected. Looking at the log, I found:
Feb 28 02:12:06 kernel: dc0: link state changed to UP
Feb 28 02:12:06 kernel: dc0: link state changed to DOWN
Feb 28 02:12:09 kernel: dc0: link state changed to UP
Feb 28 02:12:09 kernel: dc0: link state changed to DOWN
Feb 28 02:12:11 kernel: dc0: link state changed to UP
Feb 28 02:12:11 kernel: dc0: link state changed to DOWN
Feb 28 02:12:14 kernel: dc0: link state changed to UP
Feb 28 02:12:14 kernel: dc0: link state changed to DOWN
Feb 28 02:12:17 kernel: dc0: 2 link states coalesced
Feb 28 02:12:17 kernel: dc0: link state changed to DOWN
Feb 28 02:12:20 kernel: dc0: link state changed to UP
Feb 28 02:12:20 kernel: dc0: link state changed to DOWN
Feb 28 02:12:22 kernel: dc0: link state changed to UP
Feb 28 02:13:21 kernel: dc0: link state changed to DOWN
Feb 28 02:13:24 kernel: dc0: link state changed to UP
Feb 28 02:13:24 kernel: dc0: link state changed to DOWN
Feb 28 02:13:26 kernel: dc0: link state changed to UP
Feb 28 02:13:26 kernel: dc0: link state changed to DOWN
Feb 28 02:13:29 kernel: dc0: link state changed to UP
Feb 28 02:15:28 kernel: dc0: link state changed to DOWN
Feb 28 02:15:30 kernel: dc0: link state changed to UP
Feb 28 02:15:30 kernel: dc0: link state changed to DOWN
Feb 28 02:15:33 kernel: dc0: link state changed to UP
Feb 28 02:15:33 kernel: dc0: link state changed to DOWN
Feb 28 02:15:35 kernel: dc0: link state changed to UP
Feb 28 02:15:35 kernel: dc0: link state changed to DOWN
Feb 28 02:15:38 kernel: dc0: link state changed to UP
Feb 28 02:15:47 kernel: dc0: link state changed to DOWN
Feb 28 02:15:48 kernel: dc0: link state changed to UP
Feb 28 02:15:48 kernel: dc0: link state changed to DOWN
Feb 28 02:15:52 kernel: dc0: link state changed to UP
Feb 28 02:15:52 kernel: dc0: link state changed to DOWN
Feb 28 02:15:54 kernel: dc0: link state changed to UP
Feb 28 02:15:54 kernel: dc0: link state changed to DOWN
Feb 28 02:15:57 kernel: dc0: link state changed to UP
Feb 28 02:15:57 kernel: dc0: link state changed to DOWN
Feb 28 02:16:00 kernel: dc0: link state changed to UP
Feb 28 02:16:00 kernel: dc0: link state changed to DOWN
Feb 28 02:16:03 kernel: dc0: link state changed to UP
Which I'm sure isn't quite right. My hardware is a Nokia IP440 with a 4-port Zylex NIC, where dc0 is one of those ports.
My config file is as follows:
<?xml version="1.0"?>
<m0n0wall>
<version>1.8</version>
<lastchange>1267323118</lastchange>
<system>
<hostname>border</hostname>
<domain>shiftout.com</domain>
<username>adapa</username>
<password>*******</password>
<timezone>Europe/London</timezone>
<time-update-interval>300</time-update-interval>
<timeservers>0.m0n0wall.pool.ntp.org</timeservers>
<webgui>
<protocol>https</protocol>
<port/>
<certificate>*******</certificate>
<private-key>*******</private-key>
</webgui>
<dnsserver>194.73.82.242</dnsserver>
<dnsserver>194.72.6.57</dnsserver>
</system>
<interfaces>
<lan>
<if>re0</if>
<ipaddr>192.168.0.1</ipaddr>
<subnet>24</subnet>
<media/>
<mediaopt/>
</lan>
<wan>
<if>dc0</if>
<media/>
<mediaopt/>
<spoofmac>00:22:5f:a7:f7:a4</spoofmac>
<ipaddr>10.64.40.108</ipaddr>
<subnet>24</subnet>
<gateway>10.64.40.254</gateway>
</wan>
<opt1>
<if>dc1</if>
<descr>Storage</descr>
<ipaddr>192.168.1.1</ipaddr>
<subnet>24</subnet>
<bridge/>
<enable/>
</opt1>
<opt2>
<if>dc2</if>
<descr>Telephony</descr>
<ipaddr>192.168.2.1</ipaddr>
<subnet>24</subnet>
<bridge/>
<enable/>
</opt2>
</interfaces>
<staticroutes/>
<pppoe/>
<pptp/>
<dyndns>
<type>dyndns</type>
<username/>
<password/>
<host/>
<mx/>
<server/>
<port/>
</dyndns>
<dnsupdate/>
<dhcpd>
<lan>
<enable/>
<range>
<from>192.168.0.50</from>
<to>192.168.0.254</to>
</range>
</lan>
</dhcpd>
<pptpd>
<mode/>
<nunits>16</nunits>
<redir/>
<localip/>
<remoteip/>
</pptpd>
<dnsmasq>
<enable/>
<hosts>
<host>cabinet</host>
<domain>shiftout.com</domain>
<ip>192.168.1.2</ip>
<descr/>
</hosts>
</dnsmasq>
<snmpd>
<syslocation/>
<syscontact/>
<rocommunity>public</rocommunity>
</snmpd>
<diag/>
<bridge/>
<syslog/>
<nat>
<onetoone>
<external>10.64.40.108</external>
<internal>192.168.0.254</internal>
<subnet>32</subnet>
<descr/>
<interface>wan</interface>
</onetoone>
</nat>
<filter>
<rule>
<type>pass</type>
<interface>wan</interface>
<protocol>tcp</protocol>
<source>
<any/>
<port>10000-60000</port>
</source>
<destination>
<address>192.168.0.254</address>
<port>10000-60000</port>
</destination>
<descr>NAT </descr>
</rule>
<rule>
<type>pass</type>
<interface>opt1</interface>
<protocol>tcp</protocol>
<source>
<network>lan</network>
</source>
<destination>
<address>192.168.1.2</address>
<port>80</port>
</destination>
<descr/>
</rule>
<rule>
<type>pass</type>
<interface>opt1</interface>
<source>
<network>opt1</network>
</source>
<destination>
<any/>
</destination>
<descr>Storage -> any</descr>
</rule>
<rule>
<type>pass</type>
<descr>Default LAN -> any</descr>
<interface>lan</interface>
<source>
<network>lan</network>
</source>
<destination>
<any/>
</destination>
</rule>
<rule>
<type>pass</type>
<descr>Default IPsec VPN</descr>
<interface>ipsec</interface>
<source>
<any/>
</source>
<destination>
<any/>
</destination>
</rule>
</filter>
<shaper/>
<ipsec/>
<aliases/>
<proxyarp>
<proxyarpnet>
<interface>wan</interface>
<network>10.64.40.108/32</network>
<descr>NAT </descr>
</proxyarpnet>
</proxyarp>
<wol/>
</m0n0wall>
Any suggestions? It may be related to a bug in FreeBSD, although the bug was filed for the re* interface with a different driver:
http://lists.freebsd.org/pipermail/freebsd-bugs/2005-April/012562.htmlFeb 28 03:06:52 kernel: dc0: link state changed to DOWN
Feb 28 03:06:55 kernel: dc0: link state changed to UP
Feb 28 03:06:55 kernel: dc0: link state changed to DOWN
Feb 28 03:06:58 kernel: dc0: link state changed to UP
Feb 28 03:07:36 kernel: dc0: link state changed to DOWN
Feb 28 03:07:39 kernel: dc0: link state changed to UP
Feb 28 03:07:39 kernel: dc0: link state changed to DOWN
Feb 28 03:07:41 kernel: dc0: link state changed to UP
Feb 28 03:07:41 kernel: dc0: link state changed to DOWN
Feb 28 03:07:44 kernel: dc0: link state changed to UP
Feb 28 03:07:44 kernel: dc0: link state changed to DOWN
Feb 28 03:07:46 kernel: dc0: link state changed to UP
Feb 28 03:07:46 kernel: dc0: link state changed to DOWN
Feb 28 03:07:49 kernel: dc0: link state changed to UP
Feb 28 03:07:49 kernel: dc0: link state changed to DOWN
Feb 28 03:07:51 kernel: dc0: link state changed to UP
Feb 28 03:07:51 kernel: dc0: link state changed to DOWN
Feb 28 03:07:55 kernel: dc0: link state changed to UP
Feb 28 03:07:55 kernel: dc0: link state changed to DOWN
Feb 28 03:07:57 kernel: dc0: link state changed to UP
Feb 28 03:07:57 kernel: dc0: link state changed to DOWN
Feb 28 03:08:00 kernel: dc0: link state changed to UP
Feb 28 03:08:00 kernel: dc0: link state changed to DOWN
Feb 28 03:08:03 kernel: dc0: link state changed to UP
Feb 28 03:08:03 kernel: dc0: link state changed to DOWN
Feb 28 03:08:06 kernel: dc0: link state changed to UP
Feb 28 03:08:06 kernel: dc0: link state changed to DOWN
Feb 28 03:08:08 kernel: dc0: link state changed to UP
Feb 28 03:08:08 kernel: dc0: link state changed to DOWN
Feb 28 03:08:11 kernel: dc0: link state changed to UP
Feb 28 03:08:11 kernel: dc0: link state changed to DOWN
Feb 28 03:08:13 kernel: dc0: link state changed to UP
Feb 28 03:08:13 kernel: dc0: link state changed to DOWN
Feb 28 03:08:16 kernel: dc0: link state changed to UP
Feb 28 03:08:16 kernel: dc0: link state changed to DOWN
Feb 28 03:08:18 kernel: dc0: link state changed to UP
Feb 28 03:08:18 kernel: dc0: link state changed to DOWN
Feb 28 03:08:21 kernel: dc0: link state changed to UP
Feb 28 03:08:21 kernel: dc0: link state changed to DOWN
Feb 28 03:08:24 kernel: dc0: link state changed to UP
Feb 28 03:08:24 kernel: dc0: link state changed to DOWN
Feb 28 03:08:27 kernel: dc0: link state changed to UP
Feb 28 03:08:27 kernel: dc0: link state changed to DOWN
Feb 28 03:08:29 kernel: dc0: link state changed to UP
Feb 28 03:11:59 kernel: dc0: link state changed to DOWN
Feb 28 03:12:03 kernel: dc0: link state changed to UP
Feb 28 03:12:30 kernel: dc0: link state changed to DOWN
Feb 28 03:12:32 kernel: dc0: link state changed to UP
Feb 28 03:12:32 kernel: dc0: link state changed to DOWN
Feb 28 03:12:36 kernel: dc0: link state changed to UP
It's still going a few hours later. It's usable. But very very irritating having some connections work and others just drop without warning. I'm thinking of just switching to OpenBSD and configuring pf manually. I can do it but it's effort. I'd rather not exert effort.