Gentoo Linux 2005.0 x86 手冊[44]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

要取得更多關於相依性的討論。參考 寫 Init Scripts

2.c. 變數名稱及設定值

變數名稱是動態的。他們的結構通常是 variable_${interface|mac|essid|apmac} 。例如說,dhcpcd_eth0 變數代表 eth0 的 dhcpcd 設定。而 dhcpcd_essid 則是任何介面連到這個 "essid" 時的 dhcpcd 設定。

然而,並沒有簡單的法則決定介面的名稱。實際上,許多無線網路介面除了 ethx 以外,也會用像 wlanx,rax 之類的名稱。而且一些使用者定義的介面,像橋接,可以給 foo 之類的自訂名稱。為了讓生活更加有趣,無線網路結點可以在名稱中有非英文,數字的字元 - 因為你要對每個 ESSID 設定參數,這一點相當重要。

Gentoo 在網路設定的缺點是使用 bash 變數 - 不能使用任何數字,英文字母以外的東西。為了突破這個限制,我們把所有非數字,英文字母的字元轉成 _ 字元。

另一個不方便的地方是變數的值 - 需要跳脫一些字元。這可以在需要跳脫的字元前加上 \ 字元來完成。底下是需要像這樣跳脫的字元列表:"'\

在範例中為了讓 ESSID 包含最多種的字元,我們使用這個 My "\ NET ESSID:

原始碼 3: 變數名稱範例

# 這可以運作,但是領域名稱是不合法的
dns_domain_My____NET="My \"\\ NET"

# 上面的例子是當連到 ESSID 是 My "\ NET 的 AP 時,
#把領域名稱設成 My "\ NET 

3. 網路模組

3.a. 網路模組

我們現在支援模組化的網路 script,這代表可以輕鬆的支援新的網路介面和設定模組,而且同時和原來的保持相容性。

如果模組需要的套件已經安裝,他就會自動載入。但是如果你指定一個還沒安裝套件的模組,那你會收到一個錯誤訊息,告訴你要安裝哪個套件。理想上,只有在你安裝兩個以上提供相同功能的套件,而且你比較喜歡某一個時,才需要用模組設定。

原始碼 1: 模組優先權

# 想用 iproute2 而不是 ifconfig
modules=( "iproute2" )

# 你也可以為一個介面指定不同的模組
# 在底下的例子我們比較想用 udhcpc 而不是 dhcpcd
modules_eth0=( "udhcpc" )

# 你也可以指定不要用哪個模組 - 例如說你可能想
# 使用 linux-wlan-ng 來控制無線網路設定
# 但是你仍然想對每一個 ESSID 做設定
modules=( "!iwconfig" )

3.b. 網路介面管理

我們目前提供兩種不同的網路管理程式:ifconfig 及 iproute2。你可以用這兩個其中之一來做任何種類的網路設定。

ifconfig 是目前 Gentoo 預設使用的,並且包含在系統 profile 之中。iproute2 是更有威力及彈性的套件,但是預設並不包含他。

原始碼 2: 安裝 iproute2

# emerge sys-apps/iproute2

# 如果兩個都安裝的話,使用 iproute2
modules=( "iproute2" )

因為 ifconfig 和 iproute2 都是做很類似的事,我們讓這兩個可以使用共同的基本設定。例如說底下兩段程式碼不管對那種都適用。

原始碼 3: ifconfig 和 iproute2 範例

config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )

# 我們也可以指定廣播位址
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )

3.c. DHCP

DHCP 是一種從 DHCP 伺服器取得網路資訊(IP 位址,DNS 伺服器,閘道器等等)的方法。這代表如果網路上有一個 DHCP 伺服器,你只要告訴客戶端使用 DHCP 然後他們就會自己把網路設好。當然,如果在使用 DHCP 前必需要用無線網路,ppp 等其他事的話你必需要去設定。

DHCP 功能可以由 dhclient,dhcpcd,pump 或是 udhcpc 提供。每一種 DHCP模組都有他的好處和壞處 - 底下是快速的簡介。

DHCP 模組套件優點缺點
dhclientnet-misc/dhcp由 ISC,和製作 BIND DNS 軟體的同一批人做的。設定非常有彈性。 設定相當複雜,軟體非常肥大,沒辦法從 DHCP 取得 NTP 伺服器,預設不送主機名稱。
dhcpcdnet-misc/dhcpcdGentoo 一直以來的預設套件,不依賴任何其他工具 不再被上游維護,有些時候很慢,當租約無限久時不會變成系統服務
pumpnet-misc/pump輕巧,不依賴任何其他工具 不再被上游維護,不可靠,尤其是在透過數據機時,不能從 DHCP 取得 NIS 伺服器
udhcpcnet-misc/udhcp輕巧 - 最小的 DHCP 客戶端,為嵌入式系統而做的軟體 未知 - 沒有任何套件預設使用他,不能定義三秒以上的 timeout

如果你安裝一種以上的 DHCP 客戶端,你需要指定用那一個 - 否則預設是有 dhcpcd 可以用的話就用他。

要送給 DHCP 客戶端自訂的選項,使用 module_eth0="..." (把 module 改成你在用的 DHCP 模組,例如說 dhcpcd_eth0)

我們嘗試讓 DHCP 相對來說不可知 - 因此在 dhcp_eth0 變數中支援下列指令。預設是不用任何一個。

  • release - 釋放 IP 讓他可以重複使用
  • nodns - 不要複寫 /etc/resolv.conf
  • nontp - 不要複寫 /etc/ntp.conf
  • nonis - 不要複寫 /etc/yp.conf

原始碼 4: /etc/conf.d/net 的 DHCP 範例

# 只有在你安裝一種以上 DHCP 模組才需要
modules=( "dhcpcd" ) 

config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10" # 十秒後 Timeout
dhcp_eth0="release nodns nontp nonis" # 只取得位址

注意: dhcpcd,udhcpc 和 pump 預設會傳送目前的主機名稱給 DHCP 伺服器,所以你不用去指定他。

3.d. ADSL 連線

首先我們要安裝 ADSL 軟體。

原始碼 5: Install the rp-pppoe package

# emerge net-dialup/rp-pppoe

警告: baselayout-1.11.x 目前只支援 PPPOE。我們希望以後的版本可以支援 PPPOA。

現在要設定 eth0 為 ADSL 連接的網路介面,並且輸入使用者名稱。

原始碼 6: 設定 eth0 使用 ADSL

config_eth0=( "adsl" )
adsl_user_eth0="username"

最後你要在 /etc/ppp/pap-secrets 定義使用者名稱及密碼。

原始碼 7: /etc/ppp/pap-secrets 範例

# * 非常重要
"username"  *  "password"

3.e. APIPA (自動取得虛擬 IP)

APIPA 藉由發送arp,詢問在 169.254.0.0-169.254.255.255 中隨機的一個位址來找到一個可以用的 IP。如果沒有收到就是可以用,接著就會把網路介面指定這個 IP。

這只有在沒有 DHCP 伺服器並且沒有連到網際網路,及其他電腦也用 APIPA 時才適用。

為了支援 APIPA,安裝 net-misc/iputils or net-analyzer/arping。

原始碼 8: /etc/conf.d/net 的 APIPA 設定

# 先試 DHCP - 失敗的話再用 APIPA
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )

# 只使用 APIPA
config_eth0=( "apipa" )

3.f. 頻寬合併

要使用頻寬合併,先安裝 net-misc/ifenslave

頻寬合併用來增加網路頻寬。如果你有兩個連到停一網路的網路介面,你可以把這兩個連結在一起,讓應用程式只看到一個網路介面,但實際上他們正同時使用兩個介面。

原始碼 9: /etc/conf.d/net 頻寬合併設定

把介面連在一起
slaves_bond0="eth0 eth1 eth2"

# 你或許不想給連結的介面 IP
config_bond0=( "null" )

# 因為 eth0,eth1 和 eth2 需要額外的設定,要在相依性中加入這三個
depend_bond0() {
  need net.eth0 net.eth1 net.eth2
}

本文关键:Gentoo Linux 2005.0 x86 手冊
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top