IP Alias mini HOWTO Autor: Harish Pillay h.pillay@ieee.org v?, 13 Stycznia 1997 WWeerrssjjaa ppoollsskkaa:: LLeesszzeekk UUrrbbaaññsskkii ttyyggrryyss@@ffiiddoonneett..oorrgg..ppll 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!) ______________________________________________________________________ 11.. MMóójj ssyysstteemm 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). 22.. KKoommeennddyy 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! 33.. PPyyttaanniiaa ii ooddppoowwiieeddzzii PPyyttaanniiee:: JJaakk mmooggêê uuttrrzzyymmaaææ zzmmiiaannyy,, ¿¿eebbyy nniiee uulleegg³³yy sskkaassoowwaanniiuu ppoo rreessttaarrcciiee ssyysstteemmuu?? OOddppoowwiieedd¼¼:: 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 # ___________________________________________________________________ PPyyttaanniiee:: JJaakk uussttaawwiiææ aalliiaassoowwaann±± mmaasszzyynnêê ddoo ooddbbiieerraanniiaa ee--mmaaiillii nnaa rróó¿¿nnee aalliiaassoowwaannee nnuummeerryy IIPP ((nnaa mmaasszzyynniiee uu¿¿yywwaajj±±cceejj sseennddmmaaiill''aa))?? 1. OOddppoowwiieedd¼¼:: 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 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¼. 5. Wszystko jest teraz ustawione. Mam nadziejê, ¿e by³o to u¿yteczne dla kogo¶. 44.. PPooddzziiêêkkoowwaanniiaa 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ê. 55.. OOdd tt³³uummaacczzaa ((pprrzzeecczzyyttaajj KKOONNIIEECCZZNNIIEE!!)) 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æ.