Avertisment :
Acest manual a fost înlocuit cu o versiune mai nouă şi nu mai este întreţinut.
|
[ << ]
[ < ]
[ Acasă ]
[ > ]
[ >> ]
2. Configurarea Avansată
Conţinut:
2.a. Configurare Avansată
Variabila config_eth0 reprezintă inima configuraţiei unei interfeţe.
Este o listă de instrucţiuni de nivel înalt pentru configurarea interfeţei
(eth0 în acest caz). Fiecare comandă din lista de instrucţiuni este
executată secvenţial. Interfaţa este considerată OK dacă cel puţin o
comandă funcţionează.
Iată o listă de instrucţiuni integrate:
| Commandă |
Descriere |
| null |
Nu face nimic |
| noop |
Dacă interfaţa este activă şi există o adresă, atunci anulează
configurarea cu succes
|
| o adresă IPv4 sau IPv6 |
Adaugă adresa interfeţei |
|
dhcp, adsl sau apipa (sau o anumită comandă
dintr-un modul extern)
|
Rulează modulul ce oferă comanda. Spre exemplu, dhcp va rula un
modul ce oferă DHCP, care poate fi, ori dhcpcd, udhcpc,
dhclient sau pump.
|
Dacă o comandă returnează eroare, puteţi specifica o comandă de revenire.
Aceasta trebuie să se potrivească în structura configuraţiei exact.
Puteţi înlănţui aceste comenzi împreună. Iată unele exemple din lumea reală.
Cod 1.1: Exemple de configurare |
config_eth0=(
"192.168.0.2/24"
"192.168.0.3/24"
"192.168.0.4/24"
)
config_eth0=(
"192.168.0.2/24"
"4321:0:1:2:3:4:567:89ab"
"4321:0:1:2:3:4:567:89ac"
)
config_eth0=(
"noop"
"dhcp"
)
fallback_eth0=(
"null"
"apipa"
)
|
Notă:
Când utilizaţi modulul ifconfig şi adăugaţi una sau mai multe
adrese, aliasurile interfeţelor sunt create pentru fiecare adresă
suplimentară. Deci, cu exemplele de mai sus, veţi avea interfeţele
eth0, eth0:1 şi eth0:2. Nu puteţi face nimic special cu
aceste interfeţe, deoarece kernel-ul sau alte aplicaţii vor trata
eth0:1 şi eth0:2 ca eth0.
|
Important:
Ordinea comenzilor de revenire este importantă! Dacă nu am specificat
opţiunea null, atunci comanda apipa va fi rulată doar în
cazul în care comanda noop returnează eroare.
|
Notă:
APIPA şi DHCP sunt tratate ulterior.
|
2.b. Dependenţe de Reţea
Script-urile de iniţializare din /etc/init.d pot depinde de o
anumită interfaţă de reţea sau doar de net. net poate fi definit
în /etc/conf.d/rc să aibă o altă însemnătate prin
utilizarea variabilei RC_NET_STRICT_CHECKING.
| Valoare |
Descriere |
| none |
Serviciul net este considerat întotdeauna activ |
| no |
În principiu, aceasta înseamnă că cel puţin un serviciu
net.* în afară de net.lo trebuie să fie
activ. Aceasta poate fi utilizată de utilizatorii de sisteme notebook ce
deţin o interfaţă WIFI şi o interfaţă statică, şi doresc ca
doar una să fie activă în orice moment au nevoie de o interfaţă
activă.
|
| lo |
Aceasta este similară cu opţiunea no, numai că şi
net.lo este luată în considerare. Acest lucru este
folositor utilizatorilor cărora nu le pasă ca o anume interfaţă de
reţea să fie activă la boot.
|
| yes |
Pentru aceasta, TOATE interfeţele de reţea TREBUIE să fie active pentru
ca serviciul net să fie considerat activ.
|
Dar ce se întâmplă în situaţia în care net.br0 depinde de
net.eth0 şi net.eth1? net.eth1 poate
fi un dispozitiv wireless sau PPP ce necesită configurare înainte să fie
adăugate în bridge. Aceasta nu se poate înfăptui dacă
/etc/init.d/net.br0 este un link simbolic la net.lo.
Răspunsul este crearea propriei funcţii depend() în
/etc/conf.d/net
Cod 2.1: dependenţă net.br0 în /etc/conf.d/net |
depend_br0() {
need net.eth0 net.eth1
}
|
Pentru o discuţie mai detaliată despre dependenţă, consultaţi secţiunea "Scrierea Script-urilor de
Iniţializare" din Manualul Gentoo.
2.c. Nume de variabile şi valori
Numele de variabile este dinamic. Acestea urmează în mod normal, structura
de variabila_${interfata|mac|essid|apmac}. Spre exemplu, variabila
dhcpcd_eth0 are ca valoare opţiunile dhcpcd pentru eth0 şi
dhcpcd_essid are ca valoare opţiunile dhcpcd când oricare interfaţă
se conectează la numele ESSID "essid".
Oricum, nu este nici o regulă principală şi rapidă ce defineşte faptul că
numele interfeţelor trebuie să fie ethx. De fapt, multe interfeţe wireless au
numele interfeţelor ca wlanx, rax cât şi ethx. De asemenea, unele interfeţe
definite de utilizator, cum ar fi sisteme bridge, li se poate desemna orice
nume, cum ar fi foo. Mai interesant, dispozitivele wireless Access Point pot
avea nume cu caractere non-alfanumerice conţinute - aceasta este important,
deoarece puteţi configura parametrii de reţea pentru fiecare nume ESSID.
Dezavantajul îl reprezintă faptul că Gentoo utilizează variabile bash pentru
reţea - iar bash nu poate utiliza altceva în afara caracterelor alfanumerice
din engleză. Pentru a trece peste această limitare, noi modificăm fiecare
caracter ce nu este unul alfanumeric englezesc, într-un caracter _.
Un alt dezavantaj al bash este conţinutul variabilelor - unele caractere
trebuie să fie reprezentate escape. Aceasta se poate efectua prin plasarea
caracterului \ în faţa caracterului ce trebuie reprezentat escape. Mai
jos aveţi o listă a caracterelor ce trebuie reprezentate escape în acest
mod: ", ' şi \.
În acest exemplu, vom utiliza nume wireless ESSID, deoarece acestea pot conţine
cea mai mare plajă de caractere. Vom utiliza ESSID My "\ NET.
Cod 3.1: exemplu de nume de variabilă |
dns_domain_My____NET="My \"\\ NET"
|
[ << ]
[ < ]
[ Acasă ]
[ > ]
[ >> ]
Conţinutul acestui document este publicat sub licenţa Creative Commons -
Attribution / Share Alike.
|