"Diskless booting" 就是讓 FreeBSD 主機從網路 上開機,並且從網路上的 server 上讀取其他必要的檔案,而非由主機 的硬碟上取得這些檔案。詳細的資料可以參考 FreeBSD 手冊的無磁碟開機篇 。
是的。請參考 FreeBSD 手冊的網路進階篇 advanced networking,尤其是路由與閘道器 routing and gateways的部分。
基本上,會問這種問題的人在家裡至少有兩台電腦,一台跑 FreeBSD 另外一台跑 Win95;這個想法是將 FreeBSD 主機連上 Internet,然後透 過這台 FreeBSD 主機,讓跑 Win95 的電腦能夠上網。這個問題算是前一 個問題的一個特例
... 答案是:可以的!在 FreeBSD 3.x 版中,使用者模式(user-mode)的 ppp(8) 包含了 -nat 選項。如果你在 /etc/rc.conf 使用-nat選項並 設定 gateway_enable 為 YES ,以這種設定啟動 ppp(8) ,並且正確的設定你的 Windows 主機的 話,這個做法應該是可以正常使用的。
關於本主題更詳細的資料可以參考 Steve Sims 所撰寫的 Pedantic PPP Primer 一文。
如果你使用的是核心模式 (kernel-mode) PPP,或者你有區域連線 (Ethernet connection) 可通達 Internet 的話,你將需要使用 natd(8)。請查閱 FAQ 中關於 natd 的部分。
是的。你可以查查 man pages 中關於 slattach(8), sliplogin(8),ppp(8),以及 pppd(8) 的部分。 ppp(8) 及 pppd(8) 提供進出雙向連線的支援,另外 sliplogin(8) 專門提供進入連線的支援,而 slattach(8) 專門提供向外連線的支援。
如果你需要更進一步的資料的話,請查閱 FreeBSD 手冊中關於 PPP 與 SLIP 的說明。
如果你只能夠過 "shell account" 連線到 Internet 的話,你也許可以試試 net/slirp 這個套件程式。這個套件程式可以提供你的電腦直接連上某些(限定的)服務 連線,如 ftp 及 http 等等。
如果你有一個近端的子網路(有一台以上的機器),但是你的 Internet provider 卻只分配一個 IP number 給你(或者你只分配到一個 動態的 IP number),你可以參考 natd(8) 這個程式。 natd(8) 讓你可以透過這一個 IP number 讓整個子網路的電腦都能連上 internet。
ppp(8) 這個程式也提供類似的功能,如果你指定 -nat 選項。alias library (libalias(3)) 在這兩個處理方式中都會被使用到。
請參考手冊中關於 PLIP section 的部分。
因為不需要!在 Berkeley 網路架構中,只有 kernel 程式碼可以直 接存取網路界面卡。請參考 /etc/rc.network 這 個檔案和 manual pages 取得與其他不同網路程式。更進一步的資訊:如 果你覺得你完全搞混了的話,您應該找一本與其他 BSD 相關作業系統網路 管理有關書來參考;除了少數顯著的不同外,FreeBSD 的網路管理基本上和 SunOS 4.0 和 Ultrix 是一樣的。
如果你的 alias 位址跟你目前網路介面的位址在同一個子網路下的 話,加入一個 netmask 0xffffffff 在你的 ifconfig(8) command-line,範例如下:
# ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff
不然的話,就如同加入一個新的網路位址一樣輸入你的網路位址與子 網路遮罩:
# ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00
如果您想使用其他的 port,你必須在 ifconfig(8) 的命令中 指定額外的參數。內定的 port 是 link0。要使用 AUI port 代替 BNC port 的話,改用 link2。這些 flags 應該改變ifconfig_* 的變數來指定, 你可以在 /etc/rc.conf 這個檔案裡面找到 (請參考 rc.conf(5))。
我們用含蓄一點的說法,某些 PC 的網路卡比其他的好,這種狀況在 造成 NFS 這種對網路敏感的程式有時會出現問題。
參考 the Handbook entry on NFS 以獲得這個主題的更多資訊。
某些版本的 Linux NFS 程式碼只接受 privileged port 的 mount request;試用這行指令看看
# mount -o -P linuxbox:/blah /mnt
跑 SunOS 4.X 的 Sun 工作站只接受來自 privileged port 的 mount request;試用這行指令看看
# mount -o -P sunbox:/blah /mnt
12.13. 為什麼 mountd 一直鬼叫說 ``can't change attributes'' 而且我一直看到 ``bad exports list'' 這個訊息在我的 FreeBSD NFS 伺服器上?
這個問題最常發生的原因是在於不了解 /etc/exports 的正確格式。請詳讀 exports(5) 以及手冊中關於 NFS 的部分,特別是configuring NFS這一段。
把 TCP extensions 取消,這個設定在 /etc/rc.conf 裡面(參考 rc.conf(5)) 把 以下這個值設成 NO:
tcp_extensions=NO
Xylogic 的 Annex 主機也有相同的問題,您要做相同的修改才能連 上這些主機。
FreeBSD 2.0 以後的版本內定都有 支援 Multicast host 操作。如果 您想將您的主機設定成 multicast router 的話,您必須重新 compile 您 的 kernel,加入 MROUTING 的選項,並且執行 mrouted(8) FreeBSD 2.2 及之後的版本會在開機時執行 mrouted(8) 如果在 /etc/rc.conf 中 mrouted_enable 設定為 "YES"
MBONE 的各種工具可以在他們 ports 下所屬叫做 mbone 目錄 中找到。如果您在找視訊會議的工具如 vic 以及 vat的話,到那邊找找吧!
以下是 Glen Foster <gfoster@driver.nsta.org> 提供的清單:
Table 12-1. Network cards based on the DEC PCI chipset
Vendor | Model |
---|---|
ASUS | PCI-L101-TB |
Accton | ENI1203 |
Cogent | EM960PCI |
Compex | ENET32-PCI |
D-Link | DE-530 |
Dayna | DP1203, DP2100 |
DEC | DE435, DE450 |
Danpex | EN-9400P3 |
JCIS | Condor JC1260 |
Linksys | EtherPCI |
Mylex | LNP101 |
SMC | EtherPower 10/100 (Model 9332) |
SMC | EtherPower (Model 8432) |
TopWare | TE-3500P |
Znyx (2.2.x) | ZX312, ZX314, ZX342, ZX345, ZX346, ZX348 |
Znyx (3.x) | ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd) |
你也許會發現要連的機器其實是在另一個網域。舉個例子,假設你是在 foo.bar.edu 這個網域中,想要連到在一台叫 mumble 的主機,他在 example.org 網域下, 你必須用 Fully-Qualified Domain Name mumble.example.org,而不是只用 mumble。
傳統的 BSD BIND resolver 允許用這種方式解出機器的位址,但是 FreeBSD 內附 bind (see named(8)) 版本內定方式,則是除了你所在的網域以外,不支援其他非 FQDN 的縮寫。 所以如 mumble 必須在 mumble.foo.example.org,否則就會從網域的最底 層開始找。
這和先前的做法不同,也就是不用 mumble.example.org,和 mumble.edu 繼續搜尋。 看一下 RFC 1535,裡面有提到為什麼之前的做法不好,甚至算是個安全 漏洞。
這裡有個不錯的解法, 你可以加入一行
search foo.example.org example.org
instead of the previous
domain foo.example.org
在你的 /etc/resolv.conf 檔案中 (請參考 resolv.conf(5))。但是要確定搜尋順序不會違反 RFC 1535 所謂的 "boundary between local and public administration"。
如果在編譯 kernel 時加入 IPFIREWALL 選項, 請注意 2.1.7R 內定是拒絕所有未經核准的網路封包(但在開發 2.1-STABLE 時改掉了)。
I如果不小心弄錯了 firewall 的設定,你可以以 root 執行以下命令網路功能就會恢復正常:
# ipfw add 65534 allow all from any to any
也可以在 /etc/rc.conf 加入 firewall_type="open" 的選項。
如果想知道如何設定 FreeBSD firewall,請參考 手冊中相關章節。
請參考手冊中 Firewalls 章節,特別是 IPFW Overhead & Optimization 這一段。
可能是你除了轉送封包以外還額外想進行位址轉譯 (network address translation, NAT),"fwd" 規則所進 行的動作就如同字面所示;僅轉送封包,它並不會去修改封包中的資料。 假設我們有如下的規則:
01000 fwd 10.0.0.1 from any to foo 21
當一個通往特定目標位址 foo 的封包 送達主機時,根據這條規則,封包將被轉送至 10.0.0.1,但是它的目標位址卻仍然是 foo!封包的目標位址並 沒有 更改為 10.0.0.1。大部分的主機會將封包丟棄, 因為他們並不是這個目標位址。因此,使用 "fwd" 規則 時往往不如使用者所預期的那般順利。這種行為是系統特性,而非錯誤。
參考 關於服務轉向的常見問 答集, natd(8) 手冊,或者是使用 ports collection 中許 多服務轉向的工具來正確的完成你想進行的工作。
在 ports 目錄的"sysutils"分類中有個叫 socket 的套件,可以幫你轉向 FTP 或其他類似的 網路服務。只要把該網路服務的命令改成呼叫 socket 即可,如下所示:
ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp
其中 ftp.example.com 與 ftp 分別是被轉到的機器和 port 名稱。
FreeBSD 上有三套頻寬管理工具: dummynet(4) 已經整合進入 FreeBSD 系統(更詳細的用途, ipfw(4)); ALTQ 可以免費使用,Emerging Technologies 推出的 Bandwidth Manager 則是商用軟體。
你執行了一個需要柏克萊封包過濾器 (Berkeley Packet Filter) 的 程式 (bpf(4)),但是你在 kernel 中沒有啟動它。把下面這一行加 入 kernel 設定檔中,編譯一個新的 kernel:
pseudo-device bpf # Berkeley Packet Filter
在重新開機之後,還要做出 device node,在 /dev 下執行:
# sh MAKEDEV bpf0
如果想要更進一步知道如何做出各種 device node,請參閱 Handbook 關於週邊節點的說明 。
使用 SMBFS 工具組。這套工具組中 包含了一系列的 kernel 修改還有使用者的工具程式(userland programs)。 這些程式和資訊在 ports 收藏中 net/smbfs 下可以找到。在 4.5-RELEASE 之後的版本則是系統中內建。
這是系統核心告訴你有某些活動引發它送出比它所認為應該送出更 多的 ICMP 或 TCP 重置訊息 (RST)。ICMP 回應訊息常常是因為有人嘗 試連接未被使用的 UDP 通訊埠。TCP 重置訊息則是有人嘗試連接未開 放 TCP 通訊埠造成的結果。以下這些活動可能就是造成這些訊息的原因:
暴力法的服務組絕攻擊(DoS)方式 (相較於針對特殊弱點使用單一封包的攻擊方式)。
大量的通訊埠掃描(相較於僅嘗試少數的常見服務通訊埠)。
出現的數字中第一個代表根據這些流量 kernel 應該送出的封包數, 第二個數字則是 kernel 目前限制最大發送數。你可以利用 sysctl 修改 net.inet.icmp.icmplim 變數值來更改最大值。舉 例來說,如果希望修改限制為 300 packets per second:
# sysctl -w net.inet.icmp.icmplim=300
如果你不想在系統紀錄中看到這些訊息,但是仍然希望保持回應的限 制的話,你可以利用 sysctl 修改 net.inet.icmp.icmplim_output 變數來取消這些訊 息:
# sysctl -w net.inet.icmp.icmplim_output=0
最後,如果你想取消這些限制的話,你可以設定 net.inet.icmp.icmplim (如上例所示) 為 0。基於上述理由,我們不建議你取消這些限制。
這代表你的區域網路連線上有一些設備使用 FreeBSD 看不懂得 MAC 格式。這通常是代表有人在你的區域網路上進行實驗,最常見的就是 cable modem 的連線。這訊息無害,而且應該不至於影響到 FreeBSD 主 機的效能。
首先,看看錯誤的訊息是否如下:
/usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found
這種錯誤訊息代表你主機上安裝的 net/cvsup 沒有包含 XFree86 套件。如果你想要使用 CVSup 內建的圖形介面 GUI 的話,你需要安裝 XFree86。此外,如果你只想以命令列方 式使用 CVSup 的話,你應該先移除之前 安裝的套件。並安裝 net/cvsup-without-gui 這套 軟體。在 FreeBSD 手冊中 CVSup 段落中有更詳細的說明。