Uncategorized
OSX internet sharing under the hood
On 09, Feb 2012 | One Comment | In Uncategorized | By admin
I was curious this week to know what exactly is OSX’s internet sharing doing. It starts 3 processes as follows:
bootpd -d -P natpmpd -d -y en0 en1 named -c /etc/com.apple.named.proxy.conf -f
From the man pages:
bootpd: DHCP/BOOTP/NetBoot server
natpmpd: natpmpd is a daemon implementing NAT-PMP. NAT-PMP is a protocol for handling port forwarding requests from clients behind a NAT. It is normally
invoked by InternetSharing(8).
named: named is a Domain Name System (DNS) server.
The internetSharing process is responsible for starting these processes:
InternetSharing is the back-end for the Internet Sharing feature. It is
responsible for configuring the network interfaces, the DHCP server
bootpd(8), the network address translation daemon natd(8), and the Inter-
net domain name server named(8). named(8) is run in caching-only mode
and allows the DHCP server to always offer the same DNS server address to
the DHCP clients, regardless of the value of the actual DNS server
addresses.
more /etc/com.apple.named.proxy.conf // Declares control channels to be used by the rndc utility. // It is recommended that 127.0.0.1 be the only address used. // This also allows non-privileged users on the local host to manage // your name server. An empty control set means the utility is disabled. // controls { }; options { directory "/var/named"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ // query-source address * port 53; listen-on { 192.168.2.1; }; forward first; forwarders { 10.0.2.1; }; }; // // a caching only nameserver config // zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; acl can_query { any; };
edit1:
The reason I made this investigation was that I was curious about what in internet sharing causes disruption of networks. Turns out that the DHCP server is configured to through out ip’s in any of the mac’s network interfaces. If instead it was doing
bootpd -d -P -i en1
then it would give out ip addresses only to clients on the wireless interface. I’m I missing something or why didn’t apple think of this ?
-
I did the same as you, with a different goal: I want to share my tun0 connection.
Killing
natpmpd -d -y en0 en1
and replacing it with
natpmpd -d -y tun0 en1
is not sufficient.
Submit a Comment
Comments