Έστω το όνομα του μηχανήματος είναι 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 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
Μπορείτε να ορίσετε προσωρινές 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 -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 εάν οι αλλαγές εφαρμόστηκαν.
Αφού κάνετε δοκιμές με την 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
Τα ονόματα των διεπαφών ορίζονται προκαθορισμένα από το σύστημα
Για παράδειγμα
Υπάρχει περίπτωση όμως αλλάζωντας μητρική ή απλά αλλάζωντας 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)
Τροποποίησε το αρχείο /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 στην ip διεύθυνσή του ή την ονομαστική (dns) διεύθυνση.
ping 192.168.1.10 ping www.google.com
Για να την σταματήσεις όπως θα έκανες σε οποιαδήποτε άλλη διεργασία, πάτα CTRL-C
Οι παρακάτω οδηγίες είναι για ένα 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
iperf -s
και σε άλλο παράθυρο ελέγχουμε με iftop -P -b -i bond0
iperf -c [serverip] -P 30 -W 32k -t 10
και βλέπουμε από τον server την ταχύτητα που έπιασε
Άλλη δοκιμή μπορεί να γίνει από 2 clients με
yes | pv | ssh [serverip] "cat > /dev/null"