- \ 표시는 아래 줄과 연결됨을 의미함.
- 특정 명령 실행 후 바뀌어진 부분은 굵은글꼴로 표시했음.
솔라리스에서 한 개의 네트워크 인터페이스 카드(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 # 추가할 주소
# 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
/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<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 211.123.123.3 netmask ffffffc0 broadcast 211.123.123.63
# /sbin/ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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
.... 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<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 0.0.0.0 netmask 0
# /sbin/ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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이라는 플래그가 사라졌음을 확인 할 수 있다.255.255.255.192 up
# /sbin/ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 211.123.123.3 netmask ffffffc0 broadcast 211.123.123.63
# /sbin/ifconfig hme0:1 down
# /sbin/ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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
# /sbin/ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 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<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
ether 8:0:20:ac:c1:8e
# /sbin/ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
ether 8:0:20:ac:c1:8e
출처 : http://blog.jinbo.net/papyrus/?pid=13