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 doku mentu znajduje się pod adresem http://home.pacific.net.sg/ harish/lin uxipalias.html. ______________________________________________________________________ Spis tre¶ci 1. Mój system 2. Komendy 3. Pytania i odpowiedzi 4. Podziękowania 5. Od tłumacza (przeczytaj KONIECZNIE!) ______________________________________________________________________ 1. Mój system 1. 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.) 2. 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. 3. Muszę obsługiwać 2 dodatkowe adresy IP, powyżej tych, które zostały mi przydzielone. 4. D-Link DE 620 pocket adapter (nie ważne, działa z każdym obsługiwanym przez Linuxa urz±dzeniem sieciowym). 2. Komendy 1. 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 ___________________________________________________________________ 2. 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 polece nie to eth0:x, gdzie x=0,1,2,...n dla różnych numerów IP. Główny adres IP nie musi być aliasowany. 3. 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): 1. 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)? 1. 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. 2. 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 ___________________________________________________________________ 3. 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 . . . ___________________________________________________________________ 4. 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 re...
Porozmawiajmy.TV