Υπάρχουν ένα σωρό πράγματα που μπορεί να μην πάνε καλά με την εφαρμογή των οδηγιών ενός απλού κειμένου σαν αυτό εδώ, επειδή υπάρχουν πολλές ειδικές περιπτώσεις. Η πλειοψηφία των πιθανών προβλημάτων εστιάζεται στη ρύθμιση του εσωτερικού και του εξωτερικού δικτύου. Θα προσπαθήσω ν' απαντώ σε αναγνώστες με προβλήματα, να κατανοώ το τί δεν πήγε καλά, και να προσθέτω links εδώ στο τέλος, ώστε όσοι έχουνε ειδικής μορφής προβλήματα, να μπορούν να βρουν βοήθεια. Επικοινωνήστε ελεύθερα μαζί μου στο pramsey@refractions.net.
Μερικά κομμάτια του ICQ δουλεύουν μιά χαρά με το μασκάρισμα. Κάποια
άλλα δεν δουλεύουν καθόλου καλά. Ωστόσο, υπάρχει ένα
beta quality ICQ module υπό ανάπτυξη, που ασχολείται με μερικές
(αλλά όχι όλες) από τις ελλείψεις της λειτουργίας του ICQ μαζί με
μασκάρισμα. Το αρχείο README
μέσα στον κώδικα source, περιγράφει
πώς να κάνετε compile το module. Αφού το κάνετε compile και το
εγκαταστήσετε, καλέστε το : /sbin/modprobe ip_masq_icq
.
Λοιπόν, πρώτα τα συγχαρητήριά μου που τη σπάτε στη μόδα! Δεύτερον, ο Nelson Gibbs (ngibbs@pacbell.net) στέλνει καλά νέα, επειδή οι περισσότερες από τις οδηγίες εφαρμόζονται και στο δικό σας Linux. Ωστόσο, υπάρχουν μερικές σημαντικές αλλαγές που πρέπει να κάνετε :
GATEWAY=xxx.xxx.xxx.xxx
στο αρχείο
/etc/sysconfig/network-scripts/ifcfg-eth0
& eth1
γιά τη σύνδεση (η τοπική σύνδεση χρησιμοποιεί τη διεύθυνση IP της
μακρινής σύνδεσης, και η μακρινή σύνδεση χρησιμοποιεί το IP της
gateway του ISP)./etc/sysconfig/daemons/dhcpd
script
δείχνει το ROUTE_DEVICE
ως eth1
, όχι
eth0
./etc/dhcpd.conf
απαιτεί μιά δήλωση υποδικτύου (subnet)
και γιά τις δύο κάρτες. Δεν ξέρω ακριβώς το γιατί, καθώς έκανα τη
δεύτερη δήλωση : subnet 216.102.154.201 netmask 255.255.255.255
{ } χωρίς άλλες παραμέτρους, και ο DHCP server ακούει και
στέλνει στις eth0 και eth1, καθώς και στην επιστροφή (fallback).
Ο DHCP server βγάζει μήνυμα σφάλματος, εάν ορίσουμε μόνο το ένα
υποδίκτυο.255.255.255.255
, το
/etc/rc.d/init.d/dhcpd
script που χρησιμοποιεί η Caldera
διορθώνει το πρόβλημα από μόνο του. Βεβαιωθείτε πως
αλλάξατε όλες τις αναφορές στο eth0
του script σε
eth1
.Πανεύκολο! Ωστόσο, πρέπει να έχετε στατική διεύθυνση IP, γιά να έχουν αποτέλεσμα αυτές οι απλές οδηγίες. Εάν έχετε δυναμική διεύθυνση IP, θα χρειαστείτε ακόμη κάμποση δουλειά στα scripts, γιά να σιγουρέψετε το ότι η IP διεύθυνσή σας ανανεώνεται με τις εντολές προώθησης πακέτων, όταν η διεύθυνση αλλάζει.
Να θυμάστε ότι η προώθηση μιας εξωτερικής θύρας προς έναν εσωτερικό Η/Υ
μετατρέπει τον "εσωτερικό" Η/Υ σε λιγότερο "εσωτερικό"
απ' ό,τι πριν, αλλά μπορεί να γίνει διαφανώς και με ελάχιστη πτώση της
απόδοσης. Ένα από τα πλεονεκτήματα του κώδικα μασκαρίσματος μέσα στον
πυρήνα του Linux, είναι η ικανότητα να κάνουμε μερικά εντυπωσιακά πράγματα
με τα πακέτα που φτάνουνε στο επίπεδο του δικτύου, και η utility
ipmasqadm
γράφτηκε γιά να εκμεταλλευτεί ακριβώς αυτά.
Γιά κάποιο λόγο, η ipmasqadm
δεν συμπεριλαμβάνεται σε όλες τις
παραλλαγές του RedHat και του Mandrake, άρα μάλλον πρέπει να την πάρουμε
από το
web site του
προγραμματιστή της - υπάρχει ένα πακέτο
RPM διαθέσιμο εκεί, καθώς και ο source κώδικας.
Αφού πάρετε το RPM, εγκαταστήστε το, και μετά προσθέστε τις εξής γραμμές
στο /etc/rc.d/rc.local
αρχείο σας :
/usr/sbin/ipmasqadm portfw -f /usr/sbin/ipmasqadm portfw -a -P tcp -L x.x.x.x 80 -R 192.168.1.x 80
Η πρώτη εντολή αδειάζει τους κανόνες προώθησης θύρας (port forwarding rules), και η δεύτερη προσθέτει μιά προώθηση από τη θύρα 80 της εξωτερικής σύνδεσης προς τη θύρα 80 του εσωτερικού Η/Υ. Σημειώστε ότι η εξωτερική στατική διεύθυνση IP πάει στη θέση του x.x.x.x , και η διεύθυνση IP του εσωτερικού Η/Υ πάει στη θέση του 192.168.1.x .
Τώρα, οι εξωτερικές αιτήσεις γιά τη θύρα 80 θα σταλούν διαφανώς στη θύρα 80 του εσωτερικού μηχανήματος. Σημειώστε ότι δεν μπορείτε να το τεστάρετε αυτό με telnet, ή με σύνδεση στη θύρα 80 της gateway σας από έναν από τους εσωτερικούς Η/Υ σας : Ο προωθητής θύρας αποκρίνεται μόνο σε εισερχόμενες αιτήσεις προς την εξωτερική σύνδεση.