需求
有一台能通过有线连接上Internet的mac mini server。 用这台server做DHCP服务器,搭建一个内网192.168.0.1/22。 同时用这台server做DNS,可以配置一些内网的域名IP映射关系。
软硬件配置
- mac mini server, 4GB 内存, 2TB 硬盘
- Thunderbolt转网线的转接头1个
- OS X 10.9.5
- OS X Server 3.2.2
配置步骤
做网关,必须有两个network interface。 用mac mini server自带的网卡做出口,接外网,用Thunderbolt口转网口,做内网。
-
安装 OS X Server 3.2.2
-
在网络设置里,将 Thunderbolt ethernet 设置为 Manually 配置。
-
配置 DHCP
- 在Server的Services中,启用DHCP服务
- 在DHCP Settings页面,Networks里添加网络配置:
- Name: internal
- Lease Duration: 1 hour
- Network Interface: Thunderbolt ethernet
- Starting IP address: 192.168.1.1
- Ending IP address: 192.168.3.254
- Subnet Mask: 255.255.252.0
- Router: 192.168.0.1
- DNS server: 192.168.0.1, 223.5.5.5, 223.6.6.6
- 这里,DHCP没有分配 192.168.0.x 的IP,这些IP留给服务器,在 DHCP Clients页面,可以根据服务器的mac地址配置静态IP。
-
如果有交换机,那么现在就可以将 mac mini server 用Thunderbolt口转网线连上交换机,为交换机上的其他设备动态分配IP了。
-
我没有用交换机,用了Airport Time Capsule。它的配置如下:
- 将mac mini server 用Thunderbolt口转网线连上Time Capsule。
- 打开Airport Utility。
- Internet 选项:
- Connect Using: Static
- IPv4 address: 192.168.0.2
- Subnet Mask: 255.255.252.0
- Router Address: 192.168.0.1
- DNS Server: 192.168.0.1
- Network选项:
- Router Mode: Off(Bridge Mode)
- Wireless选项:
- Network Mode: create a wireless network
- 设置无线名称和密码
- Wireless Options里将 5GHz 网络设置打开。
这样,就可以通过无线设备,连接 Time Capsule 的 无线网络,自动分配IP了。
-
配置DNS
- 在Server的Services中,启用DNS服务
- 在DNS服务设置页面,选择“Perform lookups for only some clients”,然后在Edit界面,勾选“Clients on the following networks:”,填入“192.168.0.1/22”
- 在Host Names里,可以添加内网的域名配置,比如 svn.internal.com -> 192.168.0.1
-
启用端口转发
在上面的配置做完之后,设备可以通过mac mini server 自动分配到 192.168.1.1 ~ 192.168.3.254 段内的IP了。
在内网设备上,应该可以ping
ping 192.168.0.1
应该可以通过下面的命令进行域名解析
dig @192.168.0.1 baidu.com
但是,无法ping外网IP
ping baidu.com
内网机器要访问外网,接下来还需要配置端口转发。在命令行中执行下面的命令:
sudo sysctl -w net.inet.ip.forwarding=1 sudo sysctl -w net.inet.ip.fw.enable=1 sudo natd -interface en1 sudo ipfw add divert natd ip from any to any via en1
上面的示例中,是在使用mac mini server的有线网口连接Internet,所以参数中interface使用的是en1,如果用mac mini server的无线网卡连Internet,那么最后两个命令中的interface应该用en0:
sudo natd -interface en0 sudo ipfw add divert natd ip from any to any via en0
这样配置之后,在内网其他机器上,应该就可以正常访问Internet了。
参考链接
陌陌运维主管:我们是如何搞定600+设备的初创公司办公室网络环境的
Enabling IP forwarding and NAT from console for Mac OS X (Mavericks)
OSX Yosemite IP Forwarding not working
Last modified on 2015-02-28