ďťż
Lemur zaprasza
IP Alias mini HOWTO Autor: Harish Pillay h.pillay@ieee.org v?, 13 Stycznia 1997 Wersja polska: Leszek Urbański tygrys@fidonet.org.pl v1.0, 5 Kwietnia 1998 Jak ustawić IP Aliasing na maszynie Linuxowej. Dodatkowo jest instrukcja, jak ustawić odbieranie poczty na aliasowanych numerach IP. Dokument został napisany w standardzie ISO-8859-2. Oryginał tego dokumentu znajduje się pod adresem http://home.pacific.net.sg/ harish/linuxipalias.html. 1. Mój system Najnowsze jądro (2.0.27 - z ftp://ftp.funet.fi/pub/Linux/kernel/src/v2.0, ale IP Aliasing działa od 1.3.7x. (Najnowsze jądro w tej chwili to 2.0.33 - przyp. tłum.) IP Alias skompilowany jako moduł. W "make config" powinieneś zaznaczyć, że IP Masquerade powinien być skompilowany jako (M)oduł. Zobacz Modules HOWTO (jeżeli istnieje), lub sprawdź informacje w /usr/src/linux/Documentation/modules.txt. Muszę obsługiwać 2 dodatkowe adresy IP, powyżej tych, które zostały mi przydzielone. D-Link DE 620 pocket adapter (nie ważne, działa z każdym obsługiwanym przez Linuxa urządzeniem sieciowym). 2. Komendy Najpierw załaduj moduł IP Alias (możesz pominąć ten krok, jeżeli wkompilowałeś ten moduł w jądro): /sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o Po drugie, ustaw pętlę zwrotną (loopback), eth0 i wszystkie numery IP zaczynając głównym numerem dla interfejsu eth0: /sbin/ifconfig lo 127.0.0.1 /sbin/ifconfig eth0 up /sbin/ifconfig eth0 172.16.3.1 /sbin/ifconfig eth0:0 172.16.3.10 /sbin/ifconfig eth0:1 172.16.3.100 172.16.3.1 jest głównym IP, a .10 i .100 są aliasami. Magiczne polecenie to eth0:x, gdzie x=0,1,2,...n dla różnych numerów IP. Główny adres IP nie musi być aliasowany. Po trzecie, ustaw routing. Najpierw do pętli zwrotnej, potem do sieci, a na końcu do różnych adresów IP zaczynając domyślnym (pierwotnie przydzielonym): /sbin/route add -net 127.0.0.0 /sbin/route add -net 172.16.3.0 dev eth0 /sbin/route add -host 172.16.3.1 dev eth0 /sbin/route add -host 172.16.3.10 dev eth0:0 /sbin/route add -host 172.16.3.100 dev eth0:1 /sbin/route add default gw 172.16.3.200 Koniec. Jako przykładowe numery IP powyżej, używam Prywatnych numerów IP ( RFC 1918) dla zilustrowania przykładu. Zamień je na swoje oficjalne lub prywatne adresy IP. Ten przykład zawiera tylko trzy numery IP. Maksymalna liczba, zdefiniowana w /usr/include/linux/net_alias.h, to 256. 256 adresów IP na JEDNEJ karcie to mnóstwo! :-) Oto, jak wygląda mój /sbin/ifconfig: lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:5088 errors:0 dropped:0 overruns:0 TX packets:5088 errors:0 dropped:0 overruns:0 eth0 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20 inet addr:172.16.3.1 Bcast:172.16.3.255 Mask:255.255.255.0 UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:334036 errors:0 dropped:0 overruns:0 TX packets:11605 errors:0 dropped:0 overruns:0 Interrupt:7 Base address:0x378 eth0:0 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20 inet addr:172.16.3.10 Bcast:172.16.3.255 Mask:255.255.255.0 UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 eth0:1 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20 inet addr:172.16.3.100 Bcast:172.16.3.255 Mask:255.255.255.0 UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 i /proc/net/aliases: device family address eth0:0 2 172.16.3.10 eth0:1 2 172.16.3.100 oraz /proc/net/alias_types: type name n_attach 2 ip 2 Oczywiście rzeczy w /proc/net były utworzone przez komendę ifconfig, a nie ręcznie! 3. Pytania i odpowiedzi Pytanie: Jak mogę utrzymać zmiany, żeby nie uległy skasowaniu po restarcie systemu? Odpowiedź: Jeżeli używasz init'a BSD lub System V (np. RedHat), możesz zawsze załączyć ustawienia w pliku /etc/rc.d/rc.local. Oto, co mam w moim systemie inicjalizującym (RedHat 3.0.3 i 4.0): Mój /etc/rc.d/rc.local: (skrócony, żeby pokazać odpowiednie części) #ustawiamy interfejsy aliasów IP echo "Ustawiam aliasy IP 172.16.3.1, 172.16.3.10, 172.16.3.100 ..." /sbin/ifconfig lo 127.0.0.1 /sbin/ifconfig eth0 up /sbin/ifconfig eth0 172.16.3.1 /sbin/ifconfig eth0:0 172.16.3.10 /sbin/ifconfig eth0:1 172.16.3.100 #ustawiamy routing echo "Ustawiam routing IP ..." /sbin/route add -net 127.0.0.0 /sbin/route add -net 172.16.3.0 dev eth0 /sbin/route add -host 172.16.3.1 eth0 /sbin/route add -host 172.16.3.10 eth0:0 /sbin/route add -host 172.16.3.100 eth0:1 /sbin/route add default gw 172.16.3.200 # Pytanie: Jak ustawić aliasowaną maszynę do odbierania e-maili na różne aliasowane numery IP (na maszynie używającej sendmail'a)? Odpowiedź: Utwórz (jeżeli nie istnieje) plik nazwany np. /etc/mynames.cw. Nie musi mieć takiej nazwy, nie musi być też w katalogu /etc. W tym pliku umieść oficjalne nazwy domen aliasowanych numerów IP. Jeżeli te IP nie mają domeny, możesz umieścić tu je same. /etc/mynames.cw: ---------------- # /etc/mynames.cw - wpisz wszystkie aliasy twojej maszyny; # jest komentarzem. domain.one.net domain.two.com domain.three.org 4.5.6.7 W twoim pliku sendmail.cf, w miejscu definiującym makro klasy ,,Fw'', dodaj następujące dane: . . . ################## # local info # ################## . . # file containing names of hosts for which we receive email Fw/etc/mynames.cw . . . To powinno wystarczyć. Przestestuj nowe ustawienia przez wywołanie sendmaila w trybie testowym, np.: ganymede$ /usr/lib/sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter < ruleset> < address> > 0 me@4.5.6.7 rewrite: ruleset 0 input: me @ 4 . 5 . 6 . 7 rewrite: ruleset 98 input: me @ 4 . 5 . 6 . 7 rewrite: ruleset 98 returns: me @ 4 . 5 . 6 . 7 rewrite: ruleset 97 input: me @ 4 . 5 . 6 . 7 rewrite: ruleset 3 input: me @ 4 . 5 . 6 . 7 rewrite: ruleset 96 input: me < @ 4 . 5 . 6 . 7 > rewrite: ruleset 96 returns: me < @ 4 . 5 . 6 . 7 . > rewrite: ruleset 3 returns: me < @ 4 . 5 . 6 . 7 . > rewrite: ruleset 0 input: me < @ 4 . 5 . 6 . 7 . > rewrite: ruleset 98 input: me < @ 4 . 5 . 6 . 7 . > rewrite: ruleset 98 returns: me < @ 4 . 5 . 6 . 7 . > rewrite: ruleset 0 returns: $# local $: me rewrite: ruleset 97 returns: $# local $: me rewrite: ruleset 0 returns: $# local $: me > 0 me@4.5.6.8 rewrite: ruleset 0 input: me @ 4 . 5 . 6 . 8 rewrite: ruleset 98 input: me @ 4 . 5 . 6 . 8 rewrite: ruleset 98 returns: me @ 4 . 5 . 6 . 8 rewrite: ruleset 97 input: me @ 4 . 5 . 6 . 8 rewrite: ruleset 3 input: me @ 4 . 5 . 6 . 8 rewrite: ruleset 96 input: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 96 returns: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 3 returns: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 0 input: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 98 input: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 98 returns: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 95 input: < > me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 95 returns: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 97 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 > rewrite: ruleset 0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 > > Zauważ, że kiedy testowałem adres me@4.5.6.7, dostarczył pocztę na maszynę lokalną, a me@4.5.6.8 było przekazane do mailera smtp. To jest poprawna odpowiedź. Wszystko jest teraz ustawione. Mam nadzieję, że było to użyteczne dla kogoś. 4. Podziękowania Dziękuję wszystkim, którzy zrobili tyle świetnej pracy nad Linuxen i IP Aliasingiem, a zwłaszcza Juanowi Jose Ciarlantowi za odpowiedzi na moje pytania. Podziękowania dla asów programowania! Jeżeli ten dokument był dla ciebie użyteczny, lub masz jakieś sugestie o poprawkach, wyślij e-mail na h.pillay@ieee.org. Baw się. 5. Od tłumacza (przeczytaj KONIECZNIE!) Ten dokument był pierwotnie w formie htmlowej (dla niewtajemiczonych - tłumacze z JTZ piszą w SGML), zupełnie niedostosowanej do ,,standardu HOWTO'', więc pozwoliłem sobie go do niego dostosować, m.in. podzielić na sekcje. Prawa autorskie tego tłumaczenia należą do tygrys@fidonet.org.pl. Jeżeli masz jakieś pytania lub poprawki dotyczące tego tłumaczenia, daj mi znać. |