Το Genoo σας παρέχει ευέλικτη δικτύωση - εδώ θα μάθετε πως να διαλέξετε μεταξύ διαφορετικών πελατών DHCP, πως να ρυθμίσετε δεσμούς, γέφυρες, VLANs και άλλα. 8.4 2009-02-12
Μονάδες Δικτύου

Υποστηρίζουμε πλέον σενάρια δικτύωσης βασισμένα σε μονάδες, το οποίο σημαίνει ότι μπορούμε εύκολα να προσθέσουμε υποστήριξη για νέους τύπους διεπαφών και μονάδες ρυθμίσεων διατηρώντας παράλληλα συμβατότητα με τα τους ήδη υπάρχοντες.

Οι μονάδες φορτώνονται εξ ορισμού αν το πακέτο που χρειάζονται έχει εγκατασταθεί. Αν ορίσετε μια μονάδα εδώ της οποίας το πακέτο δεν έχει εγκατασταθεί τότε λαμβάνετε ένα μήνυμα σφάλματος το οποίο αναφέρει ποιο πακέτο πρέπει να εγκαταστήσετε. Ιδανικά, εσείς χρειάζεται να ορίσετε μονάδες μόνο όταν έχετε δύο ή περισσότερα πακέτα εγκατεστημένα τα οποία παρέχουν την ίδια υπηρεσία και πρέπει να προτιμήσετε την μία σε σχέση με την άλλη.

Όλες οι ρυθμίσεις που συζητιούνται εδώ αποθηκεύονται μέσα στο /etc/conf.d/net εκτός αν οριστεί διαφορετικά.
# Προτίμηση του iproute2 έναντι του ifconfig
modules=( "iproute2" )

# Μπορείτε επίσης να ορίσετε άλλες μονάδες για μια διεπαφή
# Στην συγκεκριμένη περίπτωση προτιμούμε το pump αντί για το dhcpcd
modules_eth0=( "pump" )

# Μπορείτε επίσης να ορίσετε ποιες μονάδες να μην χρησιμοποιηθούν - για παράδειγμα
# χρησιμοποιείτε supplicant ή linux-wlan-ng για να ελέγξετε την ρύθμιση του ασύρματου δικτύου αλλά
# ταυτόχρονα θέλετε να ρυθμίζετε τις επιλογές του δικτύου κατά ESSID με το οποίο έχει γίνει συσχέτιση.
modules=( "!iwconfig" )
Χειριστές Διεπαφής

Σας παρέχουμε δύο χειριστές διεπαφής αυτή τη στιγμή: το ifconfig και το iproute2. Χρειάζεστε ένα από αυτά για να κάνετε οποιαδήποτε ρύθμιση δικτύου.

Το ifconfig είναι ο προκαθορισμένος από το Gentoo αυτή τη στιγμή και συμπεριλαμβάνεται μέσα στο προφίλ του συστήματος. Το iproute2 είναι ένα πιο ισχυρό και ευέλικτο πακέτο, αλλά δεν συμπεριλαμβάνεται εξ ορισμού.

# emerge sys-apps/iproute2

# Για προτίμηση του iproute2 σε σχέση με το ifconfig αν και τα δύο είναι εγκατεστημένα
modules=( "iproute2" )

Το 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" )
DHCP

Το DHCP είναι ένας τρόπος να αποκτήσετε πληροφορίες του δικτύου (διεύθυνση IP, διακομιστές DNS, Πύλες, κλπ) από έναν διακομιστή DHCP. Αυτό σημαίνει ότι αν υπάρχει ένα διακομιστής DHCP να εκτελείται στο δίκτυο, το μόνο που έχετε να κάνετε είναι να πείτε τον κάθε πελάτη να χρησιμοποιήσει DHCP και ρυθμίζει το δίκτυο από μόνος του. Φυσικά, θα πρέπει να έχετε ρυθμίσει άλλα πράγματα όπως ασύρματο δίκτυο, PPP ή άλλα πράγματα αν απαιτούνται πριν χρησιμοποιήσετε το DHCP.

Το DHCP μπορεί να παρέχεται από το dhclient, το dhcpcd, ή το pump. Κάθε μονάδα DHCP έχει τα υπέρ και τα κατά της - ακολουθεί μια γρήγορη καταγραφή.

dhclientnet-misc/dhcpΔημιουργήθηκε από την ISC, τους ίδιους ανθρώπους που έφτιαξαν το λογισμικό BIND DNS. Πολύ παραμετροποιήσιμοΗ ρύθμισή του είναι υπερβολικά πολύπλοκη, το λογισμικό είναι υπερβολικά μεγάλο, δεν μπορεί ναι πάρει διακομιστές NTP μέσω DHCP, δεν στέλνει το hostname εξ ορισμούdhcpcdnet-misc/dhcpcdΓια πολύ καιρό το προκαθορισμένο στο Gentoo, δεν βασίζεται σε εξωτερικά εργαλεία, αναπτύσσεται ενεργά από το GentooΜπορεί να είναι αργό κάποιες φορές, δεν γίνεται δαίμονας όταν η δέσμευση γίνεται για άπειρο χρόνοpumpnet-misc/pumpΕλαφρύ, δεν βασίζεται σε εξωτερικά εργαλείαΔεν συντηρείται πλέον upstream, αναξιόπιστο, ειδικά με modem, δεν μπορεί να πάρει διακομιστές NIS μέσω DHCP
Μονάδα DHCP Πακέτο Υπερ Κατά

Αν έχετε περισσότερους από έναν πελάτες DHCP εγκατεστημένους, θα πρέπει να ορίσετε ποιον θα χρησιμοποιήσετε - διαφορετικά εξ ορισμού χρησιμοποιείται ο dhcpcd αν είναι διαθέσιμος.

Για να στείλετε συγκεκριμένες επιλογές στην μονάδα DHCP, χρησιμοποιήστε module_eth0="..."(αντικαταστήστε το module με την μονάδα DHCP που χρησιμοποιείτε - π.χ. dhcpcd_eth0).

Προσπαθούμε και κάνουμε το DHCP σχετικά αγνωστικιστικό - ως τέτοιο υποστηρίζουμε τις παρακάτω εντολές χρησιμοποιώντας την μεταβλητή dhcp_eth0. Το προκαθορισμένο είναι να μην ορίσουμε καμία από αυτές:

# Χρειάζεται μόνο αν έχετε παραπάνω από μια μονάδα DHCP εγκατεστημένη
modules=( "dhcpcd" ) 

config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10" # Λήξη χρόνου μετά από 10 δευτερόλεπτα
dhcp_eth0="release nodns nontp nonis" # Πάρε μόνο μια διεύθυνση
Τα dhcpcd και pump στέλνουν το τρέχον hostname στον διακομιστή DHCP εξ ορισμού οπότε δεν χρειάζεται να το διευκρινίσετε πλέον.
ADSL με PPPoE/PPPoA

Πρώτα πρέπει να εγκαταστήσουμε το λογισμικό για την ADSL.

 # emerge net-dialup/ppp 
Αν χρειάζεστε PPPoA, τότε σιγουρευτείτε ότι χρησιμοποιείτε >=baselayout-1.12.x.

Δεύτερον, δημιουργήστε ένα PPP σενάριο δικτύου και το σενάριο δικτύου για την ethernet διεπαφή που θα χρησιμοποιηθεί από το PPP:

# ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0

Σιγουρευτείτε ότι έχετε θέσει RC_NET_STRICT_CHECKING="yes" στο /etc/conf.d/rc.

Τώρα πρέπει να ρυθμίσουμε το /etc/conf.d/net.

config_eth0=( null ) (Ορίστε την δική σας ethernet διεπαφή)
config_ppp0=( "ppp" )
link_ppp0="eth0" (Ορίστε την δική σας ethernet διεπαφή)
plugins_ppp0=( "pppoe" )
username_ppp0='user'
password_ppp0='password'
pppd_ppp0=(
       "noauth"
       "defaultroute"
       "usepeerdns"
       "holdoff 3"
       "child-timeout 60"
       "lcp-echo-interval 15"
       "lcp-echo-failure 3"
       noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp
)

depend_ppp0() {
    need net.eth0
}

Μπορείτε επίσης να θέσετε τον κωδικό σας στο /etc/ppp/pap-secrets.

# Το * είναι σημαντικό
"username"  *  "password"

Αν χρησιμοποιήσετε PPPoE με ένα USB modem θα πρέπει να εγκαταστήσετε το br2684ctl. Παρακαλώ διαβάστε το /usr/portage/net-dialup/speedtouch-usb/files/README για πληροφορίες στο πως να το ρυθμίσετε σωστά.

Παρακαλώ διαβάστε προσεκτικά την ενότητα για την ADSL και το PPP στο /etc/conf.d/net.example. Περιέχει πολλές ακόμη πιο αναλυτικές διευκρινήσεις για όλες τις ρυθμίσεις που μπορεί να χρειαστείτε για την δική σας PPP εγκατάσταση.
APIPA (Automatic Private IP Addressing)

Το APIPA προσπαθεί να βρει ελεύθερες διευθύνσεις στο εύρος 169.254.0.0-169.254.255.255 χρησιμοποιώντας arp σε μια τυχαία διεύθυνση από αυτό το εύρος στην διεπαφή. Αν δεν βρεθεί απάντηση τότε αναθέτουμε αυτή τη διεύθυνση στην διεπαφή.

Αυτό είναι χρήσιμο μόνο σε LANs όπου δεν υπάρχει διακομιστής DHCP και δεν συνδέεστε απ' ευθείας στο internet και όλοι οι άλλοι υπολογιστές χρησιμοποιούν APIPA.

Για υποστήριξη APIPA, εγκαταστήστε το net-misc/iputils ή το net-analyzer/arping.

# Δοκίμασε πρώτα το DHCP - αν αυτό αποτύχει τότε χρησιμοποίησε ως εναλλακτική το APIPA
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )

# Απλά χρησιμοποίησε APIPA
config_eth0=( "apipa" )
Δημιουργία Δεσμών

Για δημιουργία δεσμών συνδέσεων/δημιουργία ζεύξεων εγκαταστήστε το net-misc/ifenslave.

Η δημιουργία δεσμών χρησιμοποιείται για να αυξήσει το εύρος ζώνης του δικτύου. Αν έχετε δύο κάρτες δικτύου που πηγαίνουν στο ίδιο δίκτυο, μπορείτε να τις δέσετε μεταξύ τους ώστε οι εφαρμογές σας να τις βλέπουν ως μια διεπαφή αλλά στην πραγματικότητα θα χρησιμοποιούν και τις δύο κάρτες δικτύου.

# Για να δέσετε διεπαφές μεταξύ τους
slaves_bond0="eth0 eth1 eth2"

# Μπορεί να μην θέλετε να αναθέσετε μια IP στη δεμένη διεπαφή
config_bond0=( "null" )

# Να εξαρτάται από τα eth0, eth1 και eth2 καθώς μπορεί να απαιτούν έξτρα ρυθμίσεις
depend_bond0() {
  need net.eth0 net.eth1 net.eth2
}
Γεφύρωση (υποστήριξη για 802.1d)

Για υποστήριξη γεφύρωσης εγκαταστήστε το net-misc/bridge-utils.

Η γεφύρωση χρησιμοποιείται για να ενώσει δίκτυα μαζί. Για παράδειγμα, μπορεί να έχετε ένα διακομιστή ο οποίος συνδέεται στο διαδίκτυο μέσω ενός ADSL modem και μια κάρτα ασύρματου δικτύου για να επιτρέψετε σε άλλους υπολογιστές να συνδεθούν στο διαδίκτυο μέσω του ADSL modem. Θα μπορούσατε να δημιουργήσετε μια γέφυρα για να ενώσετε τις δύο διεπαφές μαζί.

# Ρύθμιση της γέφυρας - "man brctl" για περισσότερες λεπτομέρειες
brctl_br0=( "setfd 0" "sethello 0" "stp off" )

# Για να προσθέσετε θύρες στην γέφυρα br0
bridge_br0="eth0 eth1"

# Πρέπει να ρυθμίσετε τις θύρες με null τιμές ώστε το dhcp να μην ξεκινήσει
config_eth0=( "null" )
config_eth1=( "null" )

# Τέλος δίνουμε στην γέφυρα μια διεύθυνση - θα μπορούσατε επίσης να χρησιμοποιήσετε το DHCP
config_br0=( "192.168.0.1/24" )

# Να εξαρτάται από τα eth0 και eth1 καθώς μπορεί να απαιτούν επιπλέον ρύθμιση
depend_br0() {
  need net.eth0 net.eth1
}
Για να χρησιμοποιήσετε ορισμένες μορφές γέφυρας, μπορεί να χρειάζεται να συμβουλευτείτε την τεκμηρίωση για τα ονόματα μεταβλητών.
Διεύθυνση MAC

Δεν χρειάζεται να εγκαταστήσετε τίποτα για να αλλάξετε την διεύθυνση MAC της διεπαφής σας αν έχετε sys-apps/baselayout-1.11.14 ή νεότερο και θέλετε να την αλλάξετε σε κάποια συγκεκριμένη διεύθυνση MAC. Ωστόσο, αν χρειάζεται να αλλάξετε σε μία τυχαία διεύθυνση MAC ή έχετε ένα baselayout παλιότερο από την έκδοση που αναφέραμε παραπάνω, θα πρέπει να εγκαταστήσετε το net-analyzer/macchanger για να μπορέσετε να χρησιμοποιήσετε το συγκεκριμένο χαρακτηριστικό.

# Για να θέσετε την διεύθυνση MAC μιας διεπαφής
mac_eth0="00:11:22:33:44:55"

# Για να δωθούν τυχαία τα τελευταία 3 bytes
mac_eth0="random-ending"

# Για να δωθεί τυχαία μέσα στον ίδιο φυσικό τύπο σύνδεσης (π.χ. οπτική ίνα,
# καλώδια χαλκού, ασύρματα) , όλων των κατασκευαστών
mac_eth0="random-samekind"

# Για να δωθεί τυχαία από οποιοδήποτε φυσικό τύπο σύνδεσης (π.χ. οπτική ίνα,
# καλώδια χαλκού, ασύρματο) , όλων των κατασκευαστών
mac_eth0="random-anykind"

# Πλήρως τυχαία - ΠΡΟΣΟΧΗ: ορισμένες διευθύνσεις MAC που θα δημιουργηθούν με
# αυτόν τον τρόπο μπορεί να ΜΗΝ λειτουργήσουν όπως αναμένουμε
mac_eth0="random-full"
Δημιουργία Σήραγγας (Tunnelling)

Δεν χρειάζεται να εγκαταστήσετε τίποτα για να δημιουργήσετε σήραγγα καθώς ο χειριστής της διεπαφής μπορεί να το κάνει για εσάς.

# Για σήραγγα GRE
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"

# Για σήραγγα IPIP
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"

# Για να ρυθμίσετε την διεπαφή
config_vpn0=( "192.168.0.2 peer 192.168.1.1" ) 
VLAN (υποστήριξη για 802.1q)

Για υποστήριξη VLAN, εγκαταστήστε το net-misc/vconfig.

Το Εικονικό (Virtual) LAN είναι μια ομάδα από δικτυακές συσκευές που συμπεριφέρονται σαν να βρίσκονται συνδεδεμένα σε ένα τμήμα ενός δικτύου - ακόμη και δεν είναι. Τα μέλη του VLAN μπορούν να δουν μόνο μέλη του ίδιου VLAN ακόμη και αν μοιράζονται το ίδιο φυσικό δίκτυο.

# Καθορίστε τους αριθμούς των VLAN σας για την διεπαφή ως εξής
# Παρακαλώ σιγουρευτείτε ότι τα VLAN IDs σας δεν έχουν μηδενικά μπροστά
vlans_eth0="1 2"

# Μπορείτε επίσης να ρυθμίσετε το VLAN
# δείτε την σελίδα εγχειριδίου για το vconfig για περισσότερες λεπτομέρειες
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )

# Ρυθμίστε την διεπαφή ως συνήθως
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )
Για να χρησιμοποιήσετε ορισμένες μορφές VLAN, μπορεί να χρειαστεί να συμβουλευτείτε την τεκμηρίωση για τα ονόματα μεταβλητών.