3 最后的准备工作

B在以新的核心开机前,必须修改一下 rc.bootrc.firewall。预设的防火墙规则是丢掉所有的封包,如果要覆盖这个设定而成为开放的防火墙,可以修改 /etc/rc.conf。在 /etc/rc.conf 中加入下列几行就可以驱动它:

    firewall_enable="YES"
    firewall_type="open"

还有一件必须要做的事,当在以太网络上跑 IP 协议时,事实上使用二种以太网络协议,一个是 IP,另一个是 ARP。ARP 协议是当机器要找出给定 IP 地址所对应的以太网络地址时使用的。ARP 并不是 IP 层的一部份,只是给 IP 应用在以太网络上运作。标准的开放式防火墙 ipfirewall 规则如下:

    pass ip from any to any

但ARP呢?如果 ARP 并未被 pass,根本不会有 IP 的交通,但 IPFIREWALL 并未提供非 IP 协议的处理。幸运的是,高手们的在 ipfirewall 程序代码中加入了对封包过滤桥接器的支持。如果你在 IP 地址 0.0.0.0 上建立一个特别的 UDP 规则,UDP 端口的号码将被使用来搭配被桥接封包的以太网络协议号码,如此一来,你的桥接器就可以被设定成传递或拒绝非 IP 的协议。请在 /etc/rc.firewall 中接近文件顶端处理 lo0 的那三行之下(就是有写 Only in rare cases do you want to change these rules 的地方)加入下面一行:

    ${fwcmd} add allow udp from 0.0.0.0 2054 to 0.0.0.0

这条规则以一般 IPFIREWALL 的观点看来毫无意义,但桥接器的程序代码会不再限制而传递 ARP 的封包(你当然希望它这么做)。

现在你可以将机器重新开机,和未设定前没什么两样,只是有一些和桥接有关的开机讯息,但桥接仍未运作。如果有任何问题,在继续下去之前应该先找出来。

This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.