Ubuntu 12.04 για gateway και όχι ltsp

Ξεκίνησε από richard, 04 Μαρ 2013, 03:42:47 ΜΜ

« προηγούμενο - επόμενο »

richard

Γεια σας

Ήδη βρίκα ένας τρόπος και δουλεύει. Ίσως να το βελτιώνετε την διαδικιασία.

Μία δασκάλα ήθελε να έχει Linux στο σπίτι και έβαλα την γνωστή μορφή σας 12.04 με fallback στο netbook της. Δεν έβαλα ούτε sch-scripts ούτε epoptes. Η σύνδεση internet είναι ασύρματη και το router είναι στο πάνο όροφο. Ήθελε επίσης να έχει δύο επιτραπέζιους (που δεν έχουν ασύρματες κάρτες) στο ίδιο μέρος που έχει το netbook.

Δεν άλλαξα το αρχείο /etc/NetworkManager/NetworkManager.conf, άρα έχει την γραμμή dns=dnsmasq.

1) Πρόθεσα eth0 στο /etc/network/interfaces:

iface eth0 inet static
address 192.168.72.1
netmask 255.255.255.0

2) Πρόθεσα την γραμμή στο /etc/sysctl.conf για ipforwarding

net.ipv4.ip_forward = 1

3) (Αφού έβαλα την εντολή iptables -Z) έγραψα 4 iptable rules:

iptables -A FORWARD -o wlan0 -i eth0 -s 192.168.72.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

και τις σώζω με την εντολή

iptables-save | tee /etc/iptables.sav

και, τέλος, έβαλα (αμέσως πριν απο την exit=0) μία γραμμή στο /etc/rc.local

iptables-restore < /etc/iptables.sav

4) Εγκατάστεσα dnsmasq και άλλαξα δύο γραμμές:

interfaces=eth0

dhcp-range=192.168.72.201,192.168.72.249,12h

Αυτά.

Ερώτηση:

Γιατή δουλεύει η NetworkManager με το dnsmasq χωρίς αλλαγή στο /etc/NetworkManager/NetworkManager.conf;

Richard

alkisg

Ο Network Manager connection editor έχει επιλογή για δημιουργία σύνδεσης "connection sharing", που κάνει αυτόματα όλα αυτά που αναφέρεις.
https://jeremy.visser.name/2009/03/simple-internet-connection-sharing-with-networkmanager/

Το dnsmasq δεν το έχεις εγκαταστήσει και γι' αυτό δεν έχει πρόβλημα.
Αυτό που έχεις λέγεται dnsmasq-base και είναι άλλο πακέτο, προεγκατεστημένο στο Ubuntu.
Το dnsmasq-base χρησιμοποιείται ουσιαστικά για DNS client και όχι για DNS server.
http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

richard

Ξέρω ήδη αυτό που λεές για dnsmasq-base. Έκανα την εγκατάσταση επιπλέων το πακέτο dnsmasq.  Έτσι ήδη βρίκα το αρχείο /etc/dnsmasq.conf. Απλώς άλλαξα τις δύο γραμμές όπως γράφω πιο πάνω.

Δοκίμασα να αφαιρούσα dnsmasq (ποτέ δεν μπίραξα dnsmasq-base) αλλά δεν είχε ο επιτραπέζιος ip (δεν έδωσε το netbook  dhcp.) Άρα βρίκα dnsmasq απαραίτητο.

Richard

alkisg

Richard, σχετικά με το θέμα του dnsmasq και του NetworkManager ο κατάλληλος χώρος είναι το bug report που έχω ανοίξει στο launchpad:
https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/959037

Αρχικά, το πρόβλημα ήταν ότι μερικές φορές έπαιζε και μερικές όχι (race condition).
Στις νεότερες εκδόσεις το λύνουν με ένα αρχειάκι μέσα στο /etc/dnsmasq.d/ που λέει στο dnsmasq να κάνει "bind-interfaces" και "listen-address".
Θα πρέπει να κοιτάξεις αν η έκδοση που χρησιμοποιείς έχει ή όχι αυτό το αρχειάκι, οπότε και αν θα δουλεύει ΟΚ πάντα, ή μόνο μερικές φορές.
Διάβασε το bug report για περισσότερες λεπτομέρειες.

Πάντως γενικά το connection sharing είναι πολύ πιο εύκολο μέσω network manager και όχι με χειρωνακτικές ρυθμίσεις.
Ο λόγος που δεν σου δούλεψε η αφαίρεση του dnsmasq μάλλον είναι επειδή έβαλες στατική IP στο /etc/network/interfaces αντί να αφήσεις το network manager να δώσει την IP που θέλει για το connection sharing.
Δηλαδή, undo όλα όσα έκανες, και το /etc/network/interfaces και τα iptables κτλ, βγάλε dnsmasq, reboot, και μετά χρησιμοποίησε μόνο το διάλογο του network manager.

richard

Ευχαριστώ πάρα πολύ για όλες τις λεπτομέριες. Όντως, επειδή γίνεται τόσο εύκολα με Network Manager θα ζβήσω το σχέδιο το δικό μου.

Richard