Sieciowe tłumaczenie adresów NAT
Autor: Chern Lee. Demon tłumaczenia adresów sieciowych (ang. Network Address Translation), znany potocznie jako natd(8), akceptuje przychodzące, nie przetworzone pakiety IP, zmienia ich źródło na to maszyny lokalnej i wypuszcza te pakiety z powrotem do wychodzącego strumienia pakietów IP. natd dokonuje tego poprzez zmianę adresu źródłowego IP oraz portu, ponadto w drodze powrotnej potrafi określić pierwotną lokalizację danych i przesłać je z powrotem do odpowiedniego źródła. Najpowszechniejszym sposobem użycia NAT jest udostępnianie połączenia internetowego. Za sprawą ograniczonej ilości IP w wersji czwartej, wciąż wzrastającej liczby użytkowników na szybkich liniach, takich jak na przykład połączenie kablowe lub DSL, wciąż rośnie zapotrzebowanie na rozwiązanie udostępniania połączenia internetowego. Zdolność połączenia wielu komputerów do sieci Internet przez jeden IP publiczny sprawia, że natd(8) jest obecnie w częstym użyciu. Często bywa, że użytkownik posiada komputer z połączeniem kablowym lub linią DSL z jednym adresem IP, a chciałby udostępnić dostęp do sieci kilku innym maszynom z sieci lokalnej. Aby tego dokonać, komputer z FreeBSD połączony do Internetu odgrywa rolę bramy. Maszyna ta musi mieć dwie karty sieciowe - jedną dla połączenia z routerem, drugą z siecią lokalną. Wszystkie komputery w sieci wewnętrznej połączone są koncentratorem (hub'em) lub switch'em. Konfiguracja tego typu jest bardzo powszechna w przypadku współdzielenia połączenia internetowego. Jedna z maszyn z sieci wewnętrznej jest połączona z Internetem. Pozostałe uzyskują dostęp poprzez ten komputer bramę. Poniższe opcje muszą znaleźć się w pliku konfiguracyjnym jądra: Dodatkowo można zdecydować się na opcje: Poniższe należy dopisać do /etc/rc.conf: Zdefiniowanie powyższych opcji w /etc/rc.conf uruchomi natd -interface fxp0 podczas startu systemu. Można to również zrobić ręcznie. Każdy komputer i interfejs za siecią lokalną powinien mieć przypisany adres IP z puli adresów prywatnych, tak jak zdefiniowano to w dokumencie RFC 1918. Ponadto musi mieć ustawiony adres IP domyślnej bramy taki, jaki ma karta sieciowa komputera połączonego z Internetem po stronie sieci lokalnej. Na przykład klienci a i b w sieci lokalnej mają adresy IP 192.168.0.2 i 192.168.0.3, podczas gdy karta sieciowa maszyny z natd, po stronie lokalnej, ma adres 192.168.0.1. Domyślna brama klienta a i b musi być ustawiona na ten adres maszyny z natd występujący po stronie sieci lokalnej, czyli 192.168.0.1. Zewnętrzny adres komputera z połączeniem internetowym nie wymaga żadnych zmian do działania natd. Wadą natd jest, że klienci z sieci lokalnej nie są bezpośrednio osiągalni z Internetu. Mogą oni ustanawiać połączenia wychodzące na świat, ale nie mogą otrzymywać przychodzących. Jest to przeszkodą, kiedy zachodzi potrzeba uruchomienia usług internetowych na maszynach z wewnątrz sieci lokalnej. Najprostszym rozwiązaniem jest przekierowanie wybranych portów maszyny z natd do maszyn klientów z sieci lokalnej. Przykładowo serwer IRC'a jest uruchomiony na maszynie Klient A, natomiast serwer www na Klient B. Aby konfiguracja ta zadziałała, należy połączenia przychodzące na porty 6667 (irc) i 80 (www) przekierować do odpowiednich maszyn. Do natd(8) należy dołączyć -redirect_port wraz z odpowiednimi opcjami. Składnia jest następująca: W powyższym przykładzie, argumenty powinny wyglądać w następujący sposób: Przekieruje to odpowiednie porty tcp do komputerów w sieci lokalnej. Argument -redirect_port może zostać użyty do określenia zakresów portów. Na przykład tcp 192.168.0.2:2000-3000 2000-3000 przekieruje wszystkie połączenia otrzymane na porty od 2000 do 3000 do klienta A na jego porty od 2000 do 3000. Opcje te mogą zostać użyte, gdy natd(8) uruchamiany jest bezpośrednio, albo jeśli w pliku /etc/rc.conf znajduje się wpis
Aby zasięgnąć dodatkowych informacji w tym temacie należy zapoznać się z Przekierowanie adresów jest użyteczne jeśli do dyspozycji na jednej maszynie jest kilka adresów IP. W tym przypadku natd(8) może przypożądkować każdej maszynie z sieci lokalnej zewnętrzny adres IP. Składnia -redirect_address jest następująca: lokalnyIP - Wewnętrzny adres IP klienta z sieci lokalnej. Zgodnie z przykładem argumenty powinny wyglądać następująco: Podobnie jak -redirect_port, argumenty te dołącza się do natd_flags w /etc/rc.conf. Z przekierowaniem adresów nie ma potrzeby przekierowywania portów, ponieważ wszystkie dane otrzymane na określony adres IP są przekierowane. Zewnętrzny adres IP maszyny z natd musi być aktywny i aliasowany do zewnętrznego interfejsu. Informacje na ten temat znajdują się w rc.conf(5).
Wstęp
Ustawienia
Konfiguracja
options IPFIREWALL
options IPDIVERT
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags=""
gateway_enable="YES"
Ustawia maszynę jako bramę.
Wykonanie komendy sysctl -w net.inet.ip.forwarding=1 da ten sam efekt.
firewall_enable="YES"
Uruchamia zasady ściany ognia z /etc/rc.firewall podczas startu
systemu.
firewall_type="OPEN"
Określa ustalony zestaw zasad, który zezwala na przesyłanie wszystkich
pakietów przychodzących. Aby zapoznać się pozostałymi zestawami zasad
zobacz /etc/rc.firewall.
natd_interface="fxp0"
Określa przez który interfejs przepuszczać pakiety
(urządzenie połączone do Internetu).
natd_flags=""
Pozostałe dodatkowe opcje natd(8) egzekwowane podczas startu systemu.
Przekierowywanie portów
-redirect_port proto docelowyIP:docelowyPORT[-docelowyPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[zdalnyIP[:zdalnyPORT[-zdalnyPORT]]]
-redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80
natd_flags=""
podręcznikiem systemowym dotyczącym natd(8).
Przekierowanie adresów
natd(8) przepisuje wychodzące pakiety od klientów sieci lokalnej z odpowiednimi zewnętrznymi adresami IP i przekierowuje cały ruch przychodzący na dany adres IP z powrotem do odpowiedniego klienta sieci lokalnej.
Zagadnienie to często określane jest mianem "Statyczny NAT". Przykładowo, adresy IP 128.1.1.1, 128.1.1.2 oraz 129.1.1.3 należą do bramy natd. 128.1.1.1 może być użyty jako zewnętrzny adres komputera z natd podczas, gdy 192.1.1.2 i 128.1.1.3 są przesyłane do klientów A i B sieci lokalnej.
-redirect_address lokalnyIP publicznyIP
publicznyIP - Zewnętrzny adres IP odpowiadający klientowi z sieci lokalnej.
-redirect_address 192.168.0.2 128.1.1.2 -redirect_address \
192.168.0.3 128.1.1.3
Id: Aleksander Fafuła 2003-06-19
mlodszy, pt., 18/07/2008 - 22:43
