Setting up IP Aliasing on A Linux Machine Mini-HOWTO

Harish Pillay

 h.pillay@ieee.org 

Joy Yokley - Converted document from HTML to DocBook v4.1 (SGML)

JF Project - {

JF@linux.or.jp

2001-01-23

Revision History                                                       
Revision 1.2           2001-01-26          Revised by: JEY             
Revision 1.1           2001-01-24          Revised by: JEY             
Revision 1.0           1997-01-13          Revised by: HP              

́̕ALinux }Vł IP GCAX̐ݒ@Ɨp@ȒP
ɏqׂ̂łB}VZbgAbvāAGCAXݒ肵 IP Ah
XŃ[M@ɂĂĂ܂B



Table of Contents
1. ҂̐ݒ
2. ݒR}h
3. guV[eBOFƉ
   
    3.1. Fu[gĂݒ肪ێ悤ɂɂ́H
    3.2. F}V IP GCAXݒ肵AGCAXݒ肵X
        IP AhXŃ[Mɂ͂ǂ΂ł
        (sendmail g}Vł)H
   
4. ӎ
5. {ɂ

1. ҂̐ݒ

 E IP GCAX́Akernel 2.0.x  2.2.x ł͕WŗLɂȂĂ
    ܂B 2.4.x ł̓RpC̃IvVgėLɂĂ
    ( kernel 2.4.x ł IP GCAX͏dvĂ炸Apt
    ȃt@CA[EH[@\ɒuĂ܂)B
   
 E ҂́AIP GCAX@\[_uW[ƂăRpC
    Bǎ҂̂Ȃɂ́AJ[l̍č\z̍ۂ "make config" ̓r
    AIP Masq ̕W[ƂăRpC悤w肵Ă܂
    l邩܂BW[Ɋւ鎖́A({\
    Ȃ) Module HOWTO <http://www.linuxdoc.org/HOWTO/Module-HOWTO/
    index.html> `FbN邩A/usr/src/linux/Documentation/
    modules.txt ɋLڂꂽ`FbNĂB
   
 E ҂́AłɊ蓖Ă󂯂Ă IP ɉāA 2  IP A
    hXg悤ɂ܂B
   
 E ҂́AD-Link DE620 |PbgA_v^gĂ܂ (A_v^̎
    ͏dvł͂܂BLinux ŃT|[gĂlbg[NA_v
    ^Ȃ牽ł܂܂)B
   


2. ݒR}h

 1. IP GCAX̃W[[h܂ (J[lɃW[g
    łꍇA̎菇͕svł)B
   
    
    /sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o    
    
 2. [vobNfoCX eth0 ݒ肵Aeth0 C^[tFCXɑ΂
    C IP AhX珇ԂɂׂĂ IP AhXݒ肵܂B
   
    
    /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 Ƃ̂ACƂȂ IP AhXłA.10  .100
    ƂGCAXłBdvȂ̂́Aeth0:x (x=0,1,2,...n) Ƃ
    ꂼႤ IP AhXݒ肵ĂƂƂłBC IP A
    hX́AGCAXɂKv͂܂B
   
 3. [g̐ݒ܂B܂ŏɁAloopback łBɁAretA
    ŌɁAꂼ IP AhXftHg (ƂƊ蓖Ă
     IP ̂) 珇ɐݒ肵܂B
   
    
    /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                 
    
   
    ŁAIłB
   
L IP AhXɂ́A̕֋XAvCx[g IP AhX (RFC
1918) gĂ܂Bۂɂ́AǎҎg̐ IP AhXA
͎p IP AhXɒuĂB

ł́A3  IP AhXݒ肵Ă܂񂪁Aő 256  IP A
hX܂Őݒł܂B̍őĺA/usr/include/linux/net_alias.h 
ݒł܂BƂ͂A256  IP AhXꖇ̃lbg[NJ[h
ݒ肷l͂Ȃł傤 :-)!

ȉɁA҂ /sbin/ifconfig ̏o͌ʂLڂ܂B

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                     

܂A/proc/net/aliases ́Â悤Ȃ̂łB


device         family    address                                    
eth0:0           2      172.16.3.10                                 
eth0:1           2      172.16.3.100                                


āA/proc/net/alias_tupes AȉłB

type    name            n_attach                                       
2       ip              2                                              

A/proc/net ȉ̏o͂́A蓮ŕҏŴł͂ȂAifconfig R
}hɂĐꂽ̂łB



3. guV[eBOFƉ

3.1. Fu[gĂݒ肪ێ悤ɂɂ́H

𓚁FBSD X^C init gĂꍇłA SysV X^C (Ⴆ
ARedHat )  init ̏ꍇA /etc/rc.d/rc.local ɐݒLq
΁Aݒ肪ێ܂BȉɁASysV init VXe (RedHat 3.0.3 
4.0 ) ̒҂̐ݒLڂ܂B

҂ /etc/rc.d/rc.localF(֘Ał)


#setting up IP alias interfaces                                     
echo "Setting 172.16.3.1, 172.16.3.10, 172.16.3.100 IP Aliases ..." 
/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                                  
#setting up the routes                                              
echo "Setting IP routes ..."                                        
/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                             
#                                                                   



3.2. F}V IP GCAXݒ肵AGCAXݒ肵X IP
AhXŃ[Mɂ͂ǂ΂ł (sendmail g
}Vł)H

𓚁FႦ΁A/etc/mynames.cw Ƃt@C쐬܂(ɍ쐬ς
ȂAgĉ)Bt@ĆA̖O̒ʂłȂĂ܂
܂񂵁AK /etc fBNgɂKv܂B

̃t@C̒ɁAGCAXݒ肵 IP AhX̐ȃhC
݂܂BGCAXݒ肵 IP AhXhCĂȂ
ꍇ́AIP AhX̂ł܂܂B

/etc/mynames.cw ́Â悤Ȃ̂ɂȂƎv܂B

# /etc/mynames.cw - include all aliases for your machine here; # is a comment 
domain.one.net                                                                
domain.two.com                                                                
domain.three.org                                                              
4.5.6.7                                                                       

sendmail.cf ɂ́At@CENXE}N (file class macro) ݒ肵
Ă镔̂ŁAɈȉ̓eǉ܂B


                                                                    
##################                                                  
#   local info   #                                                  
##################                                                  
                                                                    
                                                                    
# file containing names of hosts for which we receive email         
Fw/etc/mynames.cw                                                   


ővȂ͂łBsendmail eXg[hŋNāAVݒ肪
肭m߂ĂBႦ΁Aȉ̂悤ɂ܂B


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 > 
>                                                                               


me@4.5.6.7 eXgہA[̓[J}VɔzMA
me@4.5.6.8 eXgۂ́ASMTP [ɓn܂B́A
łB

ŁAݒׂ͂ďIłB



4. ӎ

Linux  IP GCAX̊JɊւׂĂ̐lXɊӂ܂B
A̋^Ăꂽ Juan Ciarlante ɂ͓ɊӂĂ܂B

G[XEvO}ɉhI

̕ɂĂ̊zāAӌ́A<h.pillay@ieee.org> ܂Ń[
łm点B

낵肢܂B

lbg[LOɊւڂ́ANetworking-Overview-HOWTO <http:/
/www.linuxdoc.org/HOWTO/Networking-Overview-HOWTO.html> ({
<http://www.linux.or.jp/JF/JFdocs/Networking-Overview-HOWTO.html>) 
B



5. {ɂ

| gK                           
 Y     (1997/05/24)              
F                                  
X UT                           
V i     (2001/09/15)              
F                                  
Z Seiji                            
 Kaneko                           
F                                  

EAERǵA<JF@linux.or.jp> ܂ł肢܂B

