[Linux] 다른 컴퓨터에 IP주소 자동할당 DHCP 서버 만드는 법

DHCP(Dynamic Host Configuraion Protocol) 서버라는게 있습니다.

자신의 네트워크 안에 있는 클라이언트 컴퓨터가 부팅될 때 자동으로 IP주소, 서브넷 마스크, 게이트웨이주소, DNS 주소를 자동으로 할당해 줍니다.

수동으로 하나하나 넣어주지 않아도 되는 장점이 있습니다.

 

DHCP를 잘 이해하시려면 먼저 공인, 사설, 고정 IP의 개념을 알아야 합니다

  • 공인IP : 전세계 인터넷상에서 1개 밖에 없는 IP 주소입니다. 할당된 IP주소를 통해 세계 어디서든지 접근할 수 있는 IP입니다.

  • 사설IP : 내부 네트워크 안에서만 사용되는 IP 입니다. 예를 들어 vmware 안에 설치된 가상머신들은 모두 사설 네트워크 안에 위치하므로 사설 IP입니다
    192.168.xxx.xxx 대역이 주로 사설에서 많이 사용하는 주소입니다

  • 고정IP : 고정 IP는 PC를 재부팅해도 변하지 않는 IP 주소입니다, 동적IP(DHCP) 경우 부팅할 때 IP가 변경될 수 있습니다

 

DHCP 동작 방식

자동 IP 할당의 작동 방식은 PC가 켜지면 DHCP 서버로 부터 IP주소를 할당 받아서 사용하다가

PC가 꺼지면 DHCP 서버에 IP주소를 다시 반납하는 방식입니다

 

DHCP 구현하기

인터페이스 dhcp 설정

리눅스에서 DHCP를 구현하려면

/etc/sysconfig/network-scripts/ifcfg-ens32(ens32 부분은 다를 수 있음) 파일에서 BOOTPROTO 부분을

BOOTPROTO=dhcp 로 수정해 주시면 됩니다.

 

# yum -y install system-config-network

네트워크 패키지를 설치해 줍니다

ifconfig 명령어로 ip주소가 자동으로 할당된 것을 확인합니다

 

/etc/resolv.conf 에서 nameserver 역시 자동으로 할당된 것을 확인합니다

 

가상환경(VM)에서의 DHCP 사용

vmware에서 vmnet1,8 이 사설 네트워크를 사용하는 환경인데

vmnet1은 폐쇄된 사설네트워크이며 vmnet8이 일반적인 환경의 사설 네트워크입니다

직접 DHCP 서버를 사용하려면 vmware가 제공하는 DHCP 서버를 꺼줘야합니다

vmnet8을 선택하고 "use local DHCP service to distribute IP address to VMs" 체크 해제를 해서 DHCP 사용을 해제해 줍니다

 

리눅스에서 먼저 dhclient 를 설치해 줍니다

아마 설치가 되어 있을겁니다

/etc/sysconfig/network-scripts/ifcfg-ens32 파일을 열고

BOOTPROTO=dhcp 로 변경해 줍니다

 

dhcp 패키지 설치

# yum -y install dhcp 명령어를 통해 패키지를 설치해줍니다

DHCP 서버 패키지 이름입니다

dhcp 서비스 시작전에 dnsmasq 서비스 충돌이 날 수 있기 때문에 종료해 줍니다

 

/etc/dhcp/dhcpd.conf 파일을 수정해 줍니다

 

dhcpd.conf 파일 수정

ddns-update-style interim; -->네임서버 동적업데이트 옵션 (none 가능)
subnet 네트워크주소 netmask 넷마크스값{ -->DHCP의 네트워크 주소를 지정
option routers 게이트웨이주소;
option subnet-mask 서브넷마스크정보;
range dynamic-bootp 시작ip 끝ip;

option domain-name "도메인이름"
option domain-name-servers 네임서버주소;
default-lease-tim 임대시간(초);
max-lease-time 최대임대시간(초);
}

host ns{
hardware Ethernet MAC주소;
fixed-address 고정IP주소;
} --> 특정 컴퓨터(랜카드)에 고정IP를 할당

 

DHCP 클라이언트가 IP주소를 대여해 간 정보가 기록되는 파일은

/var/lib/dhcpd/dhcpd.leases 입니다

없다면 touch로 먼저 생성해 줍니다

 

systemctl start dhcpd

설정을 진행한 후 dhcpd 서비스를 시작해 줍니다

그리고 IP주소를 새롭게 할당받기 위해 클라이언트의 network 서비스를 재시작해줍니다.

댓글

Designed by JB FACTORY