Hi guys,
Some background:
I have a Mac Mini (late 2012 model) set up as a server w/ Mac OS X Server (Mountain Lion v10.8.4), wired to a Time Capsule with routing disabled, which is wired to a RVS4000 router. I have it configured in such a way that the Mac Mini is a NAT for traffic from en0 to vlan0 (linked via en0, routed by the RVS4000).
I'm using the Mac Mini to host services as the IPTV service provided by my ISP doesn't work if their router doesn't supply the IPs. Their router supplies IPs on the 192.168.77.0 subnet, and my Mac Mini supplies IPs on the 192.168.84.0 subnet.
The Mac Mini is hosting DHCP via the MacPorts dhcpd server. It's also hosting other services, such as DNS, LDAP, etc.
The guts of my post:
When I was first setting up the NAT, I was using the IPFW method of routing requests. Shortly after (as in, perhaps less than a day), I stumbled on IceFloor, downloaded it, installed it, and configured it to match what I needed... recognizing that it uses PF, which is supposed to replace IPFW at some point (from what I understand).
It works great... as long as I never shut down the Mac Mini. I have it plugged into an UPS, so it can shut down safely and such. It's configured to turn on automatically when power has been supplied, but NAT doesn't work without some user-intervention on my part.
I have been putting up with it for a while (probably months now), but I'm still bothered that my configuration is not "self-sufficient" at the moment.
I'm running into an issue where launchd launches /etc/icefloor.sh at boot (tested via syslog output in the script), but PF is disabled when the system has finished booting...
When this happens, the Mac Mini can get online, but it won't route requests for the other clients (Macs, iPhones, iPads, Windows PC, etc.).
If I launch the IceFloor GUI, I generally see "PF Firewall: Disabled; IceFloor Ruleset: Disabled; Boot Scripts Installed; IceFloor Mode: Advanced" in the status bar. At this exact moment, the PF Firewall is disabled and the IceFloor Ruleset is enabled, but that might just be some recent tests I've been running (ie. I removed the extended attribute for Apple's quarantine from icefloor.sh and icefloor_ef.sh).
Best I can tell, there's something else loading after IceFloor that's disabling PF. Question is: What is it, or how can I find out what it is?
Of course, there's a chance that something else is the problem... My day-job is programming, not infrastructure (although I think I have a good handle on it). I work in a Windows shop, so I don't get as much exposure to Mac or Linux as I like.
FYI: This is for my home config... but I don't like having the internet down while there's someone else home.
Does anyone have any advice? Or perhaps a "better" way for me to find a solution?
Thanks in advance,
Jeff
Some background:
I have a Mac Mini (late 2012 model) set up as a server w/ Mac OS X Server (Mountain Lion v10.8.4), wired to a Time Capsule with routing disabled, which is wired to a RVS4000 router. I have it configured in such a way that the Mac Mini is a NAT for traffic from en0 to vlan0 (linked via en0, routed by the RVS4000).
I'm using the Mac Mini to host services as the IPTV service provided by my ISP doesn't work if their router doesn't supply the IPs. Their router supplies IPs on the 192.168.77.0 subnet, and my Mac Mini supplies IPs on the 192.168.84.0 subnet.
The Mac Mini is hosting DHCP via the MacPorts dhcpd server. It's also hosting other services, such as DNS, LDAP, etc.
The guts of my post:
When I was first setting up the NAT, I was using the IPFW method of routing requests. Shortly after (as in, perhaps less than a day), I stumbled on IceFloor, downloaded it, installed it, and configured it to match what I needed... recognizing that it uses PF, which is supposed to replace IPFW at some point (from what I understand).
It works great... as long as I never shut down the Mac Mini. I have it plugged into an UPS, so it can shut down safely and such. It's configured to turn on automatically when power has been supplied, but NAT doesn't work without some user-intervention on my part.
I have been putting up with it for a while (probably months now), but I'm still bothered that my configuration is not "self-sufficient" at the moment.
I'm running into an issue where launchd launches /etc/icefloor.sh at boot (tested via syslog output in the script), but PF is disabled when the system has finished booting...
Code:
# pfctl -s info
No ALTQ support in kernel
ALTQ related functions disabled
Status: Disabled Debug: Urgent
State Table Total Rate
current entries 0
searches 0 0.0/s
inserts 0 0.0/s
removals 0 0.0/s
...
When this happens, the Mac Mini can get online, but it won't route requests for the other clients (Macs, iPhones, iPads, Windows PC, etc.).
If I launch the IceFloor GUI, I generally see "PF Firewall: Disabled; IceFloor Ruleset: Disabled; Boot Scripts Installed; IceFloor Mode: Advanced" in the status bar. At this exact moment, the PF Firewall is disabled and the IceFloor Ruleset is enabled, but that might just be some recent tests I've been running (ie. I removed the extended attribute for Apple's quarantine from icefloor.sh and icefloor_ef.sh).
Best I can tell, there's something else loading after IceFloor that's disabling PF. Question is: What is it, or how can I find out what it is?
Of course, there's a chance that something else is the problem... My day-job is programming, not infrastructure (although I think I have a good handle on it). I work in a Windows shop, so I don't get as much exposure to Mac or Linux as I like.
FYI: This is for my home config... but I don't like having the internet down while there's someone else home.
Does anyone have any advice? Or perhaps a "better" way for me to find a solution?
Thanks in advance,
Jeff