2. 進階設定
2.a. 進階設定
config_eth0 變數是網路介面設定的核心。他是一個高階的網路介面(例子中是 eth0)設定列表。在列表中的每個指令依序執行。當最後一個指令成功後網路介面就視為可以用了。
這是內建指令的列表。
| 指令 | 說明 |
| null | 不做任何事 |
| noop | 如果網路介面啟動而且有一個位址,那就成功離開設定 |
| an IPv4 or IPv6 address | 為這個介面加上一個網路位址 |
| dhcp, adsl or apipa (或是第三方模組提供的自訂指令) | 執行這個指令的模組。例如說 "dhcp" 會執行 dhcp 模組,是 dhcpcd,udhcpc, dhclient 或 pump 其中一個。 |
如果有一個失敗了,你可以指定 fallback 指令。fallback需要完全符合設定的結構。
你可以把這些指令連在一起。底下是一些實際的範例。
原始碼 1: 設定範例 |
# 加上三個 IPv4 位址 config_eth0=( "192.168.0.2/24" "192.168.0.3/24" "192.168.0.4/24" ) # 加上一個 IPv4 位址及兩個 IPv6 位址 config_eth0=( "192.168.0.2/24" "4321:0:1:2:3:4:567:89ab" "4321:0:1:2:3:4:567:89ac" ) # 使用核心指定的位址,如果網路介面停止的話改用 DHCP。 # DHCP 失敗的話由 APIPA 指定一個位址。 config_eth0=( "noop" "dhcp" ) fallback_eth0=( "null" "apipa" ) |
注意: 當使用 ifconfig 模組並且加上超過一個位址,每個位址會建立一個別名。上面的例子你會有 eth0,eth0:1 和 eth0:2 這幾個介面。你不能對多出來的介面做任何事。因為核心和其他程式會把 eth0:1 和 eth0:2 當作 eth0。 |
重要: fallback 中的順序相當重要!如果你沒有在 "apipa" 之前指定 "null",他只有在 "noop" 指令失敗時才會做。 |
2.b. 網路相依性
/etc/init.d 中的 可以依賴某個網路介面或是任一個(net),"net" 可以在 /etc/conf.d/rc 中的 RC_NET_STRICT_CHECKING 變數定義代表那些東西。
| 值 | 說明 |
| none | net 服務總是被認為啟動了 |
| no | 這基本上代表除了 net.lo 以外,任一個 net.* 服務啟動才算。這個可以給同時有無 線網路及有線網路的筆記型電腦使用者使用,因為某一時間只要其中之一介面啟動了, net 服務就被視為啟動。 |
| lo | 這和 'no' 相同,但是 net.lo 也被考慮在內。這對於不在意哪個介面啟動的使用者 很有用。 |
| yes | 所有的網路介面啟動了 'net' 服務才算啟動。 |
但是,net.br0 要依賴 net.eth0 還是 net.eth1?net.eth1 可能是一個無線網路或 ppp 裝置,需要在橋接前先做設定。這不能由 /etc/init.d/net.br0 完成,因為他只是一個到 net.lo 的符號連結。
解答是在 /etc/conf.d/net 做一個你自己的 depend() 函數。
原始碼 2: /etc/conf.d/net 中 net.br0 相意關係 |
# 你可以使用任何在目前檔案的相依關係 (use, after, before)
depend_br0() {
need net.eth0 net.eth1
}
|