Σε εργαστήριο με 2 gigabit switch, server με 2 gigabit κάρτες δικτύου και Ubuntu 12.04 LTSP, τότε μπορούμε να συνδέσουμε τη μια κάρτα με το ένα switch και την άλλη κάρτα με το άλλο switch, για να βελτιωθεί η ταχύτητα επικοινωνίας client - server ;
Στην περίπτωση αυτή, στο αρχείο ρυθμίσεων dnsmasq πρέπει να προσθέσουμε τις παρακάτω γραμμές ;
(υποθέτουμε ότι η μια κάρτα είναι η 10.x.y.10 (όπου x, y είναι διαφορετικά για κάθε σχολείο) και η άλλη είναι η 192.168.67.1)
dhcp-range=10.x.y.10,proxy
dhcp-range=192.168.67.1,proxy
Όπως τα λες. Ξεκαθαρίζω μερικές λεπτομέρειες με παράδειγμα:
Σε ένα 8-port switch, ας το πούμε "Α", βάζουμε:
- τον router
- τη μία κάρτα του server, ρυθμισμένη με στατική IP=10.x.y.10,
- ως 6 clients
Σε ένα άλλο 8-port switch, ας το πούμε "Β", βάζουμε:
- την άλλη κάρτα του server, ρυθμισμένη με στατική IP=192.168.67.1,
- ως 7 clients
Πιθανώς μετά τις στατικές IP να χρειαστεί να τρέξουμε χειρωνακτικά `sudo ltsp-config dnsmasq --overwrite`.
ΔΕΝ βραχυκυκλώνουμε τα switch μεταξύ τους.
Εάν στο switch "B" είναι μόνο thin clients, όλα καλά.
Εάν είναι (και) fat cliets, ο LTSP server χρειάζεται να κάνει NAT (connection sharing, να γράψω μια σελίδα wiki γι' αυτό), αλλιώς οι clients δεν θα βλέπουν Internet. Και επίσης εάν είναι dual boot με Windows, όταν μπουτάρουν σε Windows, θα χρειάζεται ο LTSP server να είναι ανοιχτός για να τους δώσει Internet.
edit: σημειώσεις μέχρι να γράψω τη wiki page:
sysctl net.ipv4.ip_forward=1 (ή echo 1 > /proc/sys/net/ipv4/ip_forward)
iptables -s 192.168.67.0/24 -t nat -A POSTROUTING -j MASQUERADE (ή και χωρίς την παράμετρο -s)
Το αντίθετο, διακοπή διαμοιρασμού:
sysctl net.ipv4.ip_forward=0 (ή echo 0 > /proc/sys/net/ipv4/ip_forward)
iptables -t nat -D POSTROUTING -s 192.168.67.0/24 -j MASQUERADE
Αυτές οι εντολές να εκτελούνται από το /etc/network/if-up.d/sch-scripts όταν χρειάζεται, σε επόμενη έκδοση των sch-scripts.
Και να μπει σχετική επιλογή στον διάλογο στατικής IP ώστε να γίνονται αυτόματα.
Παράθεση από: alkisg στις 20 Μαρ 2013, 11:45:43 ΠΜ
Εάν είναι (και) fat cliets, ο LTSP server χρειάζεται να κάνει NAT (connection sharing, να γράψω μια σελίδα wiki γι' αυτό), αλλιώς οι clients δεν θα βλέπουν Internet.
Αυτό ισχύει. Απλά να σημειώσω τι έγινε στη δική μου περίπτωση
eth0 LTSP Private Network για επικοινωνία με τους clients
eth1 Δίκτυο για σύνδεση στο internet κ.α.
$ sudo iptables-save > iptables_rules.bak
$ cat iptables_rules.bak
# Generated by iptables-save v1.4.12 on Fri Mar 22 12:19:47 2013
*filter
:INPUT ACCEPT [50095998:14202390107]
:FORWARD ACCEPT [191:7640]
:OUTPUT ACCEPT [31944869:64489922747]
-A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
COMMIT
# Completed on Fri Mar 22 12:19:47 2013
# Generated by iptables-save v1.4.12 on Fri Mar 22 12:19:47 2013
*nat
:PREROUTING ACCEPT [359162:36025275]
:INPUT ACCEPT [227428:23789195]
:OUTPUT ACCEPT [75411:7357751]
:POSTROUTING ACCEPT [51942:5166674]
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Fri Mar 22 12:19:47 2013
το αρχείο iptables_rules.bak μπορεί να γίνει load
iptables-restore < iptables_rules.bak
Προσοχή !
ΔΕΝ πρέπει να προσθέσουμε τη γραμμή dhcp-range=192.168.67.1,proxy
στο dnsmasq.conf
Απλά δηλώνουμε στη δεύτερη κάρτα δικτύου τη στατική διεύθυνση 192.168.67.1 με μάσκα 255.255.255.0 και πύλη 0.0.0.0
Με την προσθήκη της δεύτερης κάρτας και αυτές τις ρυθμίσεις πέτυχα αύξηση του ρυθμού στους clients από 10Mbps σε 50Mbps!!!!
Έχω έναν server Ubuntu 12.04 LTSP με δύο κάρτες gigabit στη μητρική. Το εργαστήριο (No 2) έχει 8 thin clients με gigabit switch το οποίο συνδέεται με ένα καλώδιο ethernet σε ένα άλλο gigabit switch που βρίσκεται σε μια άλλη αίθουσα στο 1ο εργαστήριο Πληροφορικής.
Θα ήθελα κάποιος να με καθοδηγήσει ώστε να κάνω bonding τις δύο κάρτες δικτύου του Ubuntu server μιας και από τα παραπάνω λεγόμενα έχω λίγο μπερδευτεί στο πως μπορεί να γίνει αυτό.
Να σημειώσω ότι στο server έχω δώσει την static IP 10.x.y.20.
Λόγω του συνεδρίου, συνοπτική απάντηση, και θα ακολουθήσει αναλυτικότερη αργότερα.
Δίνεις:
sudo apt-get install ifenslave-2.6
sudo cp /etc/network/interfaces /etc/network/interfaces.backup
sudo gedit /etc/network/interfaces
για να εγκαταστήσεις την απαραίτητη βιβλιοθήκη και να ανοίξεις το σχετικό αρχείο, κρατώντας και backup.
Μέσα στο αρχείο βάζεις κάτι τέτοιο:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
bond-master bond0
auto eth1
iface eth1 inet manual
bond-master bond0
auto bond0
iface bond0 inet static
address 10.160.67.10
netmask 255.255.255.0
gateway 10.160.67.1
metric 500
# bond-mode balance-rr
bond-mode balance-tlb
bond-miimon 100
bond-slaves none
dns-nameservers 127.0.0.1 194.63.238.4 8.8.8.8
Και στη συνέχεια κάνεις επανεκκίνηση.
Ο network manager δεν θα διαχειρίζεται πια αυτή τη σύνδεση, οπότε δεν θα μπορείς να δεις τις ιδιότητες του δικτύου από το εικονίδιο πάνω δεξιά στον πίνακα εφαρμογών.
Στην 14.04 έκδοση του Ubuntu το bonding θα γίνεται πιο εύκολα, μέσω από τον network manager.
Όλα δούλεψαν άψογα. Άλκη σ' ευχαριστώ πολύ.
Θα ήθελα να σας περιγράφω μία εγκατάσταση σε ένα σχολείο για να δούμε εάν κάτι είναι λάθος.
Ο σκοπός: να έχει ένα χωριστός subnet για το ltsp στο εργαστήρι και το άλλο subnet (με του router) για τα γραφεία στο σχολείο.
Το εργαστήρι έχει 12 clients (10 thin και 2 fat) και έναν εξυπηρετητή για την δασκάλα. Στο rack είναι ένα Cisco router με 4 θέσεις για ethernet, ένα TP-Link switch με 16 θήρες του 100 και μία του 1000 bit, ένα 3-Com switch με 16 θήρες με 100 bit και ένα patch panel με 32 θέσεις. Στο τοίχο είναι 13 έξοδα με δύο θέσεις rj45 για το δίκτυο. Κάθε έξοδο του client έχει μία θέση που πάει στο TP-Link για το ltsp και μία θέση που πάει στο 3-Com για standalone διαδίκτυο. Κάθε client έχει μία κάρτα δικτύου του 100 bit που είναι με καλώδιο στο ltsp. Η άλλη θέση μένει ανοικτή. Το έξοδο στο server έχει μία θέση με καλώδιο cat 6 που πάει στην 1000 bit θήρα του TP-Link και μία θέση που πάει στο Cisco για το Διαδίκτυο.
Στην αρχή που πρώτο είχα τον εξυπηρετητή στο σπίτι μου ο η/υ είχε μόνο την ενσωματωμένη 1000 bit κάρτα δικτύου έβαλα την 12.04.3 Ubuntu σας και δούλευε καλά με ένα client στο ίδιο subnet με το router. Όταν τον έφερα στο εργαστήρι έβαλα μία 100 bit κάρτα δικτύου σε pci θέση στον εξυπηρετητή (eth1,) με ένα καλώδιο cat 5 από την 100 bit κάρτα στην θέση που πάει στο Cisco, και ένα καλώδιο cat 6 από την 1000 bit κάρτα (eth0) στην θέση που πάει στην 1000 bit θέση στο TP-Link.
Η πρώτη ένδειξη ότι κάτι ήταν λάθος: Στο wiki λέει "για να ρυθμίσετε στατική IP στον εξυπηρετητή, από το πεδίο Μέθοδος επιλέγετε Χειροκίνητα, όπως φαίνεται και στην εικόνα δεξιά σας (στο παράδειγμα το υποδίκτυο του σχολείου είναι το 10.50.40.0). Η εφαρμογή Διαχείριση ΣΕΠΕΗΥ(sch-scripts) προτείνει να χρησιμοποιήσετε την IP 10.x.y.10. ανοίγω το sch-scripts applet για να βάζω στατικό ip στο eth0." Αλλά όταν ανοίγω την εφαρμογή η επιλογή "χειροκίνητα" ήταν απενεργοποιημένη. Δηλαδή η οδηγία αυτή ισχύει μόνο στην περίπτωση που έχει ο εξυπηρετητής μία κάρτα δικτύου;
Πήγα στο network-manager και κανόνισα από εκεί να έχει η 1000 bit κάρτα δικτύου (eth0) σταθερό 192.168.67.1, έβαλα στο dnsmasq να μη κάνει dhcp proxy, αλλά να δώσει dhcp στο eth0. Τότε ξεκίνησε και τα fat και τα thin clients και μπόρεσα να κάνω login.
Η δεύτερη ένδειξη ότι κάτι ήταν λάθος: ανοίγω την επόπτης και τα clients δεν φαινόταν σε thumbnail αλλά σε εικονίδιο. Παρ'όλα αυτό, όμως, δούλευαν όλες τις επιλογές επάνω τους.
Η τρίτη ένδειξη ότι κάτι ήταν λάθος: ενώ στο τερματικό στο fat η εντολή netstat -nr ένδοξε σωστά και gateway 192.168.67.1 και destination 192.168.67.0 και η εντολή cat /etc/resolv.config ένδοξε σωστά nameserver 192.168..67.1 δεν έγινε ping στο Διαδίκτυο.
Η λύση που πρότεινε ο Άλκης στο irc έδωσε ping στο Διαδίκτυο: (1) στο αρχείο /etc/sysctl.conf επιτρέπω η γραμμή net.ipv4.ip_forward = 1 και (2) έβαλα σε τερματικό τις εντολές (σαν root)
iptables -s 192.168.67.0/24 -t nat -A POSTROUTING -j MASQUERADE
iptables-save > /usr/local/sbin/iptables-share-internet
και έβαλα μία επιπλέω γραμμή στο /etc/rc.local αμέσως πριν από την γραμμή exit 0:
iptables-restore < /usr/local/sbin/iptables-share-internet
και επανεκκίνηση στο εξυπηρετητή.
Συγγνώμη για τα πολλά λόγια, αλλά και να μοιράζω την περίπτωση και ίσως να διορθώσω την κατάσταση.
Κάτι που εφαρμόζω σε περιπτώσεις με δυο κάρτες δικτύου για να έχουν internet και οι fat clients (NAT):
Από το network manager δίνω στατική δ/νση στη κάρτα που έχει επικοινωνία με το router και το λοιπό υποδίκτυο του σχολείου. Προφανώς, η ip θα είναι στο υποδίκτυο του DHCP του router. Εστω, η eth0. Για παράδειγμα
10.χ.ψ.10
255.255.255.0
10.χ.ψ.1
και στα dns 127.0.0.1 194.63.238.4 8.8.8.8
Από το network manager δίνω στατική δ/νση στη κάρτα που είναι στο switch μόνο για το ltsp. Έστω η eth1. Για παράδειγμα
192.168.67.1
255.255.255.0
192.168.67.1
και στα dns τίποτα
Στη συνέχεια σε τερματικό ανοίγω το αρχείο /etc/sysctl.conf
sudo gedit /etc/sysctl.conf
και αλλάζω (αποσχολιάζω) τη γραμμή
#net.ipv4.ip_forward=1
σε
net.ipv4.ip_forward=1
Αποθηκεύω και τρέχω την εντολή
sudo sysctl -w net.ipv4.ip_forward=1
για να εφαρμοστεί η αλλαγή άμεσα χωρίς reboot.
Στη συνέχεια ανοίγω το αρχείο /etc/rc.local
sudo gedit /etc/rc.local
και πριν το
exit 0
εισάγω τις γραμμές
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
και αποθηκεύω για να φορτώνονται οι συγκεκριμένες ρυθμίσεις iptables κατά την εκκίνηση του συστήματος. Ωστόσο για να γίνουν οι αλλαγές άμεσα διαθέσιμες χωρίς reboot εκτελούμε
sudo iptables -P FORWARD ACCEPT
sudo iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
Στη συνέχεια, αν θέλω να έχω ltsp clients τόσο στο υποδίκτυο της eth0 όσο και στο υποδίκτυο της eth1, προσέχω στο αρχείο ρυθμίσεων dnsmasq να έχω τις εξής γραμμές
dhcp-range=10.χ.ψ.0,proxy
dhcp-range=192.168.67.20,192.168.67.250,8h
Αλλιώς αν θέλω ltsp μόνο στην (eth1) η γραμμή
dhcp-range=10.χ.ψ.0,proxy
μπορεί να γίνει σχόλιο.
Μπορούμε να επεξεργαστούμε το αρχείο ρυθμίσεων dnsmasq μέσα από τα sch-scripts (Εξυπηρετητής - Αρχεία ρυθμίσεων...)
Επειδή δεν δουλεύω στα σχολεία, απλώς κάνω που και που επίσκεψη να τους βοηθήσω, συχνά βρίσκω μία κατάσταση στο Cisco router που έχει ένα dhcp range που είναι και άγνωστο και δεν έχω την πρόσβαση να το αλλάξω.
Και εγώ προτιμώ σταθερά ip αλλά για να μη υπάρξει σύγκρουση αφήνω το δυναμικό στο subnet με το router. Επίσης, έβαλα τις εντολές για nat για να είναι και έγκαιρα αφού κάνει επανεκκίνηση ο η/υ.
Richard
Παράθεση από: richard... στο Cisco router που έχει ένα dhcp range που είναι και άγνωστο και δεν έχω την πρόσβαση να το αλλάξω...
Συνήθως στα σχολεία οι routers είναι ρυθμισμένοι έτσι ώστε να δίνουν δ/νσεις τύπου 10.χ.ψ.ζ με τα χ και ψ να αλλάζουν ανάλογα με το σχολείο και με DHCP range απο 10.χ.ψ.128 μέχρι 10.χ.ψ.254, με gateway την 10.χ.ψ.1 (η ip του router). Για dns δίνεται η 10.χ.ψ.10 που την βάζουμε στατική στο μηχάνημα που παρέχει local dns (μερικές φορές έχεις διαθέσιμη και την 10.χ.ψ.11) ενώ για εξωτερικό dns δίνονται οι dns servers του Πανελλήνιου Σχολικού Δικτύου.
Ευχαριστώ, Ανδρέα, για την χρήσιμα πληροφορία για το dhcp range που διαλέγει η πληνέτ. Χρόνια πολλά για αύριο.
Richard