사이드바 영역으로 건너뛰기

가상 (virtual) IP 설정하기


  • 표시는 아래 줄과 연결됨을 의미함.
  • 특정 명령 실행 후 바뀌어진 부분은 굵은글꼴로 표시했음.

솔라리스에서 한 개의 네트워크 인터페이스 카드(NIC)에 여러개의 주소를 사용하기 위해서는 ifconfig 명령을 이용하여 가상(virtual) 인터페이스를 만들고 주소를 할당해 주어야 한다.

1. 시스템 부팅시 적용하기

시스템 시작시 자동으로 적용해 주기 위해서는 /etc/hosts 파일에 추가할 가상 주소의 호스트 이름을 적어주어야 한다.
#
# Internet host table
#
127.0.0.1           localhost
211.123.123.2    ns             # 원래 사용중인 주소 (211.123.123.x 는 가짜주소)
211.123.123.3    ns2           # 추가할 주소

그 다음 초기화 스크립트에서 인터페이스를 활성화 시키기 위해 사용하는 /etc/hostname.*[0-9] 파일을 만들어 주어야 하는데, 현재 하나의 NIC에 한 주소를 사용중이라면 /etc/hostname.hme0 파일만이 있을 것이다.  hme0 인터페이스 카드에 가상 주소를 부여하려고 한다면 /etc/hostname.hme0:1 이란 파일을 만들고 그 파일에 /etc/hosts 파일에서 추가한 가상 주소의 호스트 이름을 추가한다.

# pwd
/etc
# ls -alt hostname*
-rw-r--r--   1 root            6 Sep 21  2005 hostname.hme0
-rw-r--r--   1 root            6 May 25  21:00 hostname.hme0:1
# cat hostname.hme0
ns
# cat hostname.hme0:1
ns2

위 두 가지 작업이 끝난 다음, 시스템을 리부팅하고나서 ifconfig -a 명령을 실행하면 hme0 인터페이스 이외에 hme0:1 이란 인터페이스가 생겼고, IP 주소가 할당되어 있음을 확인 할 수 있을 것이다.

# /sbin/ifconfig -a
# /sbin/ifconfig -a
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
        inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
        ether 8:0:20:ac:c1:8e
hme0:1: flags=1000843 mtu 1500 index 2
        inet 211.123.123.3 netmask ffffffc0 broadcast 211.123.123.63

시스템을 리부팅하지 않고 바로 적용하려고 한다면, 아래처럼 /etc/init.d/network restart 명령을 실행해도 된다. 그러나, shcat 이라는 명령을 찾지 못하고 호스트 이름을 'unknown'으로 설정해 버리는 문제가 있다.  이는 shcat 명령이 /etc/rcS 스크립트에 정의된 내장 함수이기 때문인데, 시스템 리부팅시엔 아무런 문제가 없지만, 일단 부팅된 다음 network 스크립트를 사용할 때는 shcat 명령을 사용할 수 없다. 따라서, 부팅하지 않고 network 스크립트를 이용해서 적용한 다음에는 반드시 hostname 명령을 이용해서 원래의 호스트 이름을 설정해야 한다.

# /etc/init.d/network restart
.... message ....

# hostname
unknown
# hostname ns
# hostname
ns

이상의 내용은 솔라리스 9 이하에서 작동한다. 솔라리스 10 에서는 초기화 과정이 바뀌었기 때문에 적용할 수 없다.

2. 수동으로 적용하기

수동으로 가상 주소를 위한 인터페이스를 만들고 주소를 할당하기 위해서는 ifconfig 명령만 잘 사용하면 된다.

일단, 가상 주소를 위한 인터페이스를 만들기 위해서는 plumb 옵션을 사용해야 한다.  plumb 옵션은 IP 주소를 할당하여 사용하기 위한 물리적인 인터페이스 카드 장치를 오픈한다.

# /sbin/ifconfig hme0:1 plumb
# /sbin/ifconfig -a
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
        inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
        ether 8:0:20:ac:c1:8e
hme0:1: flags=1000843 mtu 1500 index 2
        inet 0.0.0.0 netmask 0

위 명령을 실행하고 나서 ifconfig -a 명령을 실행해 보면 hme0:1 이란 인터페이스가 추가되어 있음을 확인 할 수 있는데, 주소를 할당하지 않았기 때문에 0.0.0.0 으로 되어있는 것을 볼 수 있다.  hme0:1 인터페이스에 주소를 할당하는 방법은 아래와 같다.

# /sbin/ifconfig hme0:1 211.123.123.3 broadcast 211.123.123.63 netmask 
255.255.255.192 up
# /sbin/ifconfig -a
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
        inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
        ether 8:0:20:ac:c1:8e
hme0:1: flags=1000843 mtu 1500 index 2
        inet 211.123.123.3 netmask ffffffc0 broadcast 211.123.123.63
여기까지 제대로 했다면, 이 시스템은 hme0 에 할당된 주소와 hme0:1 에 할당된 주소를 함께 사용 할 수 있다.  만일, 더 이상 hme0:1 주소를 더 이상 사용하지 않으려면 up 플래그와 반대되는 down 플래그를 사용하면 되는데, 이 명령 후 확인해 보면 hme0:1 인터페이스에 UP이라는 플래그가 사라졌음을 확인 할 수 있다.

# /sbin/ifconfig hme0:1 down
# /sbin/ifconfig -a
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
        inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
        ether 8:0:20:ac:c1:8e
hme0:1: flags=1000843<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 211.123.123.3 netmask ffffffc0 broadcast 211.123.123.63


만일, hme0:1 인터페이스 자체를 더 이상 사용 할 일이 없어서 지우려고 한다면 plumb 옵션과 반대되는 unplumb 옵션으로 아래와 같이 지울 수 있다.

# /sbin/ifconfig hme0:1 unplumb
# /sbin/ifconfig -a
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
        inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
        ether 8:0:20:ac:c1:8e



진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크