BBUWOO'S [ LIKE UNIX ] WORLD Home > Lecture > Apachev > Apachev-2  

HOME
WHAT's BBUWOO?
LInux AnNyung
Open Source
    GitHUB
    GitHUB (for PHP)
LECTURE
MINI LECTURE
QnA BOARD
ENGLISH POEM


WARNNING

강좌의 모든 권리는 본인 김정균에게 있으며 이 강좌를 상업적 목적 으로 이용
하거나 다른 곳으로 옮길시에는 본인의 허락이 있어야 한다. 이글의 가장 최신글은
http://oops.org 에서 확인할수 있다.



2. IP address Based Virtual Hosting (1)

앞에서도 말했듯이 Virtual Hosting은 Named Server와 밀접한 관련이 있다. 물론 Internet server 라면 무엇이든지 Name Server와는 밀접한 관련이 있으며 이 Virtual Hosting도 예외가 아니다.

만약 자신이 IP address를 하나 밖에 할당 받지 못했다면 뒤의 Name Based Virtual Hosting으로 넘어가기를 바란다.

  1. 일단 IP address Based Virthal Hosting을 하기 위해서는 Server에 사용할 IP address를 추가 해 주도록 해야 한다. 앞에서도 말했듯이 IP address를 추가 하기 위해서는 새로운 NIC를 추가하여 각각 IP address를 할당 할수도 있으며, 여기서는 하나의 NIC에 여러개의 IP address를 추가 하는 IP alias에 대해 논하겠다.



 Hanterm - cat /etc/rc.d/rc.alias

 [root@bbuwoo /etc]$ cat /etc/rc.d/rc.alias

  /sbin/ifconfig eth0:0 210.124.6.214 netmask 255.255.255.128    
  /sbin/ifconfig eth0:1 210.124.6.215 netmask 255.255.255.128    

  /sbin/route add -host 210.124.6.214 eth0:0
  /sbin/route add -host 210.124.6.215 eth0:1

 [root@bbuwoo /etc]$



    위의 예처럼 /etc/rc.d 에 rc.alias 라는 file을 생성 하도록 한다. (꼭 이렇게 할 필요는 없다. 다만 system이 시작할때 위의 내용을 적용 시키기 위한 하나의 방법을 설명하고자 할 뿐임을 참고하자.) 그럼 위의 file의 내용에 대해서 설명을 하도록 하겠다.

    일단 새로운 IP address를 추가 하기 위해서는 network interface와 routing table을 잡아 주어야 추가하는 IP address를 사용할 수가 있다. 위의 file은 이를 행하기 위하여 설정을 하는 것이라 생각을 하면 된다.

    위의 예제는 기존의 NIC에 210.124.6.214 와 210.124.6.215 라는 두개의 ip address를 추가 하고 있다. 일단 예제를 보면 ifconfig라는 명령어와 route라는 두개의 명령어를 이용하고 있다. ifconfig로는 eht0:0과 eth0:1 이라는 두개의 가상 interface를 추가 하고 있는 것이며, route 명령으로 이 두개의 가상 interface를 routing table에 등록을 하는 것이다.

      /sbin/ifconfig eth0:0 210.124.6.214 netmask 255.255.255.128
      /sbin/ifconfig eth0:1 210.124.6.215 netmask 255.255.255.128

    가상 interface는 위의 예제와 같이 eth0:0 ~ eth0:255 까지 총 256개의 interface를 생성할 수가 있다. ifconfig의 사용 형식으로는 ifconfig <Interface> <netmast> 의 형식을 따르며 Interface의 제거는 ifconfig <Interface> down 의 형식을 따른다. 뒤의 netmask option을 이용해서 다른 subnet의 ip address역시 추가 하여 서로 다른 subnet간의 bridge 역할을 할수도 있다.

      /sbin/route add -host 210.124.6.214 eth0:0
      /sbin/route add -host 210.124.6.215 eth0:1

    위의 route명령으로는 ifconfig 명령으로 잡은 가상 interface들을 routing table에 등록을 해주고 있다. 이것은 210.124.6.214로 오는 packet들을 eth0:0이라는 가상 interface로 보내라는 의미를 말한다. 간단하게 route 명령어에 대해서 알아 보도록 하자.

    • 경로 추가하기

      다수의 network을 처리 할 때에는 -net 이라는 option을 한개의 주소를 처리할때는 -host라는 option을 이용한다. 형식은

      route add < -net | -host > <IP address> <Interface>

      을 취한다.

      예>
      /sbin/route add -net 210.124.6.0 eth0:0
      /sbin/route add -host 210.124.6.214 eth0:0

    • 경로 삭제하기

      위의 예에서 add 대신에 del 이라고 적으면 된다. Interface나 IP address 둘 중에 하나만 적어 주면 된다.

    이만 하면 대충 이해는 되었으리라 생각된다. 설정을 마쳤으면 rc.alias를 저장한 다음 rc.alias의 퍼미션을 755로 변경한 후에 아래와 같이 rc.local의 제일 하단에 한줄을 추가해 준다음, rc.local을 재실행을 한다.



 Hanterm - cat /etc/rc.d/rc.local

 [root@bbuwoo /etc]$ cat /etc/rc.d/rc.local

   #!/bin/sh

   # This script will be executed *after* all the other init scripts.
   # You can put your own initialization stuff in here if you don't
   # want to do the full Sys V style init stuff.

   if [ -f /etc/redhat-release ]; then
           R=$(cat /etc/redhat-release)
   else
           R="release ?.?"
   fi

   arch=$(uname -m)
   a="a"
   case "_$arch" in
           _a*) a="an";;
           _i*) a="an";;
   esac

   # This will overwrite /etc/issue at every boot.  So, make any
   #  changes youwant to make to /etc/issue here or you will
   #  lose them when you reboot.
   echo /etc/issue
   echo "ALzzA Linux $R" >> /etc/issue
   echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue

   cp -f /etc/issue.net /etc/issue
   echo >> /etc/issue

   /etc/rc.d/rc.alias <- 여기 처럼 ^^


 [root@bbuwoo /etc]$ /etc/rc.d/rc.local <- rc.local을 재실행 한다.
 [root@bbuwoo /etc]$



    위에서 하는 것은 REDHAT 배포본을 기준으로 한 것이다. 자신의 배포본에 따라 알맞게 system이 시작할때 마다 rc.alias가 적용될수 있도록 해 주면 된다.

    여기 까지의 설정이 모두 끝났으면 아래와 같이 ifconfig 명령과 route 명령으로 설정이 제대로 되었는지 확인을 해 보도록 한다.



 Hanterm - cat /sbin/ifconfig

 [root@bbuwoo /etc]$ cat /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:36464 errors:0 dropped:0 overruns:0
         TX packets:36464 errors:0 dropped:0 overruns:0

  eth0   Link encap:Ethernet  HWaddr 00:4F:4C:04:EB:6C
         inet addr:210.124.6.213 Bcast:210.113.6.255 Mask:255.255.255.128
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:252161 errors:0 dropped:0 overruns:0
         TX packets:228726 errors:1 dropped:0 overruns:0
         Interrupt:3 Base address:0x300

  eth0:0 Link encap:Ethernet  HWaddr 00:4F:4C:04:EB:6C
         inet addr:210.124.6.214 Bcast:210.113.6.255 Mask:255.255.255.128
         UP RUNNING  MTU:1500  Metric:1
         RX packets:4790 errors:0 dropped:0 overruns:0
         TX packets:20 errors:0 dropped:0 overruns:0

  eth0:1 Link encap:Ethernet  HWaddr 00:4F:4C:04:EB:6C
         inet addr:210.124.6.215 Bcast:210.113.6.255 Mask:255.255.255.128
         UP RUNNING  MTU:1500  Metric:1
         RX packets:13969 errors:0 dropped:0 overruns:0
         TX packets:19 errors:0 dropped:0 overruns:0

 [root@bbuwoo /etc]$ cat /sbin/route

 Kernel IP routing table
 Destination   Gateway       Genmask         Flags Metric Ref  Use Iface
 210.124.6.214 *             255.255.255.255 UH    0      0      0 eth0:0 
 210.124.6.215 *             255.255.255.255 UH    0      0      0 eth0:1
 210.124.6.128 *             255.255.255.128 U     0      0    347 eth0
 127.0.0.0     *             255.0.0.0       U     0      0     14 lo
 default       210.124.6.254 0.0.0.0         UG    0      0   1553 eth0

 [root@bbuwoo /etc]$



    위와 같이 가상 network interface와 routing table이 잘 잡혀 있는지 확인을 하도록 한다.



>> 이전 : Virtual Hosting의 이해
>> 다음 : IP address Based Vritual Hosting(2)



    



 Home > Lecture > Apachev > Apachev-2

Copyright 1997-2024 JoungKyun Kim 
LAST MODIFIED: 2017/01/19