Gentoo Logo

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

# Adăugarea a trei adrese IPv4
config_eth0=(
  "192.168.0.2/24"
  "192.168.0.3/24"
  "192.168.0.4/24"
)

# Adăugarea unei adrese IPv4 şi a două adrese IPv6
config_eth0=(
  "192.168.0.2/24"
  "4321:0:1:2:3:4:567:89ab"
  "4321:0:1:2:3:4:567:89ac"
)

# Păstraţi adresa desemnată de kernel, dacă interfaţa nu se activează
# deci desemnează o altă adresă prin DHCP. Dacă DHCP returnează eroare
# atunci adaugă o adresă statică determinată de APIPA
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

# Puteţi utiliza orice dependenţă (use, after, before) ca în script-urile curente
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ă

# Aceasta funcţionează, însă domeniul este invalid
dns_domain_My____NET="My \"\\ NET"

# Comanda de mai sus setează domeniul dns la valoarea My "\ NET când o placă wireless
# se conectează la un dispozitiv AP al cărui nume ESSID este My "\ NET

[ << ] [ < ] [ Acasă ] [ > ] [ >> ]


Imprimare

View all

Actualizat la 22 Decembrie 2005

Această traducere nu mai este întreţinută

Sumar: Aici învăţăm cum funcţionează configuraţia - trebuie să cunoaşteţi acest lucru înainte de a învăţa despre reţelistica modulară.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Dezvoltator Gentoo x86

Tavis Ormandy
Dezvoltator Gentoo Alpha

Jason Huebel
Dezvoltator Gentoo x86

Guy Martin
Dezvoltator Gentoo HPPA

Pieter Van den Abeele
Dezvoltator Gentoo PPC

Joe Kallar
Dezvoltator Gentoo SPARC

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Lars Weiler
Editor

Jochen Maes
Editor

Grant Goodyear
Corector

Gerald J. Normandin Jr.
Corector

Donnie Berkholz
Corector

Ken Nowack
Corector

Alin Dobre
Translator Responsabil

Ion Mudreac
Translator

Teddy Drăguţă
Translator

Talos Teodor
Translator

Dragoş Toma
Translator

Muntean Alex
Translator

George Nistorică
Translator

Emil Sîrbu
Translator

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.