LinuxFanClub wiki

Υπηρεσίες, Προγραμματισμός, Εκπαίδευση ..

User Tools

Site Tools


el:linux:debian:desktop:hardware:networking

Ρύθμιση Δικτύου

:en:networking.jpg

/etc/hosts

Έστω το όνομα του μηχανήματος είναι myserver και το όνομα του domain mydomain.local

Σε μια τυπικά σωστή ρύθμιση το αρχείο /etc/hosts θα πρέπει να περιέχει τα παρακάτω

127.0.0.1 localhost.localdomain localhost
127.0.0.1 myserver.mydomain.local myserver
127.0.1.1 myserver.mydomain.local myserver
..

Λαμβάνωντας ips από dhcp

Για να πάρουμε ips από έναν dhcp server εκτελούμε

aptitude install dhclient
dhclient 

Εάν θέλουμε να απορίψουμε ips που δίνονται από συγκεκριμένο server π.χ. από τον 192.168.1.1 και τον 10.2.12.1 αλλάζουμε το αρχείο /etc/dhclient.conf και εισάγουμε τις παρακάτω γραμμές

reject 192.168.1.1;
reject 10.2.12.1;

Για να πέρνουμε τις ips από dhcp κατά την εκκίνηση αλλάζουμε το αρχείο /etc/network/interfaces βάζοντας την γραμμή

iface eth0 inet dhcp

αντί για

iface eth0 inet static
address 10.26.145.16
netmask 255.0.0.0
gateway 192.168.1.254

ifconfig - ορισμός ip διευθύνσεων προσωρινά

Μπορείτε να ορίσετε προσωρινές ip διευθύνσεις με την εντολή ifconfig. Αρχικά δοκιμάστε

ifconfig

Θα φανούν όλες οι διευθύνσεις στις ενεργοποιημένες διασυνδέσεις του υπολογιστή σας

Έστω ότι θέλετε να ορίσετε την διεύθυνση 192.168.1.10 στην διασύνδεση eth0 του υπολογιστή σας. Δοκιμάστε

ifconfig eth0 192.168.1.10

Εάν θέλετε να ορίσετε και 2η ip διευθυνση στην διασύνδεση eth0 π.χ. 10.2.12.8 ως eth0:0 χρησιμοποιήστε

ifconfig eth0:0 10.2.12.8

Με κάθε εκτέλεση της ifconfig γράφετε επίσης και η αντίστοιχη δρομολόγηση προς τον προκαθορίσμένο δρομολογητή. Δείτε route ορισμός δρομολόγησης Για να ενεργοποιήσετε μια διασύνδεση, π.χ. eth0

ifconfig eth0 up

Για να την απενεργοποιήσετε

ifconfig eth0 down

route ορισμός δρομολόγησης

Για να δείτε τον εκάτοτε πίνακα δρομολόγησης εκτελέστε

route -n

(η παράμετρος -n δίνει ip διευθύνσεις και δεν επιλύει στα ονόματά τους, και έτσι εκτελείτε πιο γρήγορα) Εναλλακτικά μια και η παραπάνω εντολή είναι παρωχημένη μπορούμε να εκτελέσουμε

ip r

Για να προσθέσετε έναν προεπιλεγμένο δρομολογητή για όλες τις ips που δεν έχουν συγκεκριμένη δρομολόγηση

route add default gw 192.168.1.254

Για να ορίσετε δρομολόγηση για μια περιοχή ips π.χ. όλες τις 10.x.x.x

route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.26.145.1

Για να ενεργοποιήσετε αυτές τις δρομολογήσεις κατά την εκκίνηση προσθέστε στο αρχείο /etc/init.d/networking

iface eth0 inet static
address 10.26.145.16
netmask 255.0.0.0
up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.26.145.1
down route del -net 10.0.0.0 netmask 255.0.0.0 gw 10.26.145.1
gateway 192.168.1.254

Μετά δοκιμάστε

/etc/init.d/networking stop
/etc/init.d/networking start

και τσέκαρετε με τις εντολές ifconfig και route -n εάν οι αλλαγές εφαρμόστηκαν.

Ορισμός μόνιμης δρομολόγησης και ip διευθύνσεων

Αφού κάνετε δοκιμές με την ifconfig γράψτε τις μόνιμες αλλαγές στο αρχείο /etc/network/interfaces για να φορτώνονται κατά την εκκίνηση. Παρακάτω δίνεται ένα τυπικό αρχείο.

# The loopback network interface
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0
# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
mapping eth0
      script grep
      map eth0
# The primary network interface
auto eth0:0 eth0
iface eth0 inet static
address 10.26.145.16
netmask 255.0.0.0
up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.26.145.1
down route del -net 10.0.0.0 netmask 255.0.0.0 gw 10.26.145.1
gateway 192.168.1.254
iface eth0:0 inet static
address 192.168.1.68
netmask 255.255.255.0

Για άλλα παραδείγματα δείτε /usr/share/doc/ifupdown/examples/network-interfaces.gz

Ορισμός μόνιμου ονόματος διεπαφής δικτύου

Παλιός τρόπος

Τα ονόματα των διεπαφών ορίζονται προκαθορισμένα από το σύστημα

Για παράδειγμα

  • οι κάρτες ethernet έχουν ονόματα όπως eth0, eth1, eth2 κτλ
  • οι ασύρματες κάρτες που χρησιμοποιούν ndiswrapper υποσύστημα για drivers έχουν ονόματα όπως wlan0..
  • οι ασύρματες κάρτες με atheros chipset έχουν ονόματα ath0..

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

Μπορούμε να κάνουμε ρύθμιση βάση της MAC Address έτσι ώστε να κρατάνε σταθερά ονόματα.

Την MAC address την βλέπουμε εκτελώντας

ifconfig -a

Στο αρχείο /etc/udev/rules.d/70-persistent-net.rules εισάγουμε την MAC address και το όνομα που θέλουμε να έχει η διεπαφή δικτύου. Π.χ.

# PCI device 0x10ec:0x8167 (r8169)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:50:8d:c0:49:6a", NAME="eth3"
# PCI device 0x10ec:0x8139 (8139too)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:80:48:26:98:7d", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

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

Επανεκκινούμε τον υπολογιστή για να εφαρμοστούν οι αλλαγές. (Φροντίζουμε να έχουμε κάνει αντίστοιχες αλλαγές στα ονόματα των διεπαφών και στο αρχείο /etc/network/interfaces)

Νέος τρόπος

nslookup - Επίλυση ονομάτων περιοχών

Τροποποίησε το αρχείο /etc/resolv.conf

Εάν οι διευθύνσεις σου έχουν ένα επίθεμα .mydomain π.χ. myrouter.mydomain τότε για να μπορέσεις να χρησιμοποιήσεις το όνομα μόνο π.χ. myrouter πρόσθεσε

search mydomain

Πρόσθεσε επίσης την λίστα των dns servers με την σειρά που θέλεις να τους γίνεται ερώτηση

nameserver 10.26.126.15
nameserver 192.168.1.254

Μετά δοκίμασε με την εντολή

aptitude install dnsutils
nslookup <dns_name>

ping - έλεγχος επικοινωνίας

Από όλες τις εντολές η ping είναι η πιο συχνά χρησιμοποιούμενη κατά το στήσιμο ή την αντιμετώπιση προβλημάτων δικτύων. Για να δοκιμάσεις εάν μπορείς να επικοινωνήσεις με έναν υπολογιστή κάνε ping στην ip διεύθυνσή του ή την ονομαστική (dns) διεύθυνση.

ping 192.168.1.10
ping www.google.com

Για να την σταματήσεις όπως θα έκανες σε οποιαδήποτε άλλη διεργασία, πάτα CTRL-C

Διαμοιρασμός σύνδεσης Internet

Οι παρακάτω οδηγίες είναι για ένα pc που είναι συνδεδεμένο σε έναν διανομέα στον οποίο είνα συνδεδεμένα επίσης το τοπικό δίκτυο και ο δρομολογητής για το Internet. Ο δρομολογητής επιτρέπει μόνο σε αυτό την χρήση του Internet. Εμείς θα προωθήσουμε όλα τα εισερχόμενα πακέτα από το τοπικό δίκτυο από την διασύνδεση eth0 στην eth0 και ο δρομολογητής θα τα δει σαν να ήταν από το pc που του επιτρέπεται η σύνδεση στο Internet και θα τα προωθήσει με την σειρά του προς το Internet. Για άλλες περιπτώσεις π.χ. σύνδεση modem ως ppp0 αντικαταστήστε το 2ο eth0 (έξοδος) με ppp0.

Για Debian κάντε τα παρακάτω

Ορίστε DNS servers στο /etc/resolv.conf

Το βασικό πρόβλημα είναι η προώθηση IP (IP forwarding)

Για να δοκιμάσουμε τις ρυθμίσεις δημιουργούμε ένα καινούργιο εκτελέσιμο αρχείο /usr/bin/myrouter με τις παρακάτω ρυθμίσεις τείχους προστασίας (firewall). Για να το δημιουργήσουμε σαν υπηρεσία εκκίνησης δες οδηγίες στο Δημιουργία Νέας Προσωπικής Υπηρεσίας.

#!/bin/sh
# This is first to clear any already existing rules
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -F INPUT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -F OUTPUT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -F FORWARD
# load iptables modules
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
# enable ip forwarding
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
# flush tables
$IPTABLES -F
$IPTABLES -X
# enable masquerading to allow LAN internet access
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# forward internal LAN traffic from eth0 to eth0 internet interface
$IPTABLES -A FORWARD -i eth0 -o eth0 -m state --state NEW,ESTABLISHED -j ACCEPT
# block out internet intrusion on eth0
#$IPTABLES -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
#$IPTABLES -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP  

Έστω eth2 η σύνδεσή μας με έναν router για internet και eth0, eth1 που συνδέονται σε τοπικό δίκτυο με ένα switch με δυνατότητα LAG.

Εάν το switch υποστηρίζει το πρωτόκολλο LAG (active) ορίζουμε bond στα interfaces eth0 και eth1 τροποποιώντας το αρχείο /etc/network/interfaces ως εξής.

auto bond0
iface bond0 inet static
address 192.168.1.10
netmask 255.255.255.0
        bond-mode 4
        bond-slaves eth0 eth1
        bond-miimon 100
        bond-lacp-rate 1
        bond-downdelay 200
        bond-updelay 200
        bond-xmit-hash-policy layer2+3
        #bond-ad_select bandwidth

auto eth0
iface eth0 inet manual
bond-master bond0

auto eth1
iface eth1 inet manual
bond-master bond0

Εάν το switch υποστηρίζει μόνο trunks (passive) αλλάζουμε το bond-mode 4 σε bond-mode 2 και βάζουμε σε σχόλια το bond-lacp-rate 1 (βλ.https://www.kernel.org/doc/Documentation/networking/bonding.txt στο 5.Switch Configuration)

Εάν δεν ρυθμίζεται το bond interface στην εκκίνηση προσθέτουμε στο rc.local

echo "ifdown bond0; ifup bond0" |at now +1 minute

Ελέγχουμε με

cat /proc/net/bonding/bond0

Δοκιμές ταχύτητας

Για δοκιμή scp. Θα πρέπει και ο server και οι clients να έχουν ssd δίσκο

Για δοκιμή iperf

  1. Στον server
    iperf -s

    και σε άλλο παράθυρο ελέγχουμε με iftop -P -b -i bond0

  2. Σε κάθε client ξεχωριστά εκκινούμε
    iperf -c [serverip] -P 30 -W 32k -t 10

    και βλέπουμε από τον server την ταχύτητα που έπιασε

  3. Ξαναδοκιμάζουμε ταυτόχρονα.
  4. Εάν δούμε με την iftop το άθροισμα τότε έχουμε κάνει link aggregation με επιτυχία.

Άλλη δοκιμή μπορεί να γίνει από 2 clients με

yes | pv | ssh [serverip] "cat > /dev/null"

Παρακολούθηση δικτύου

Πηγές

el/linux/debian/desktop/hardware/networking.txt · Last modified: Y/m/d H:i by vagk