Monday, March 26, 2018

CentOS 6.6 리눅스 네트워크 ] 5.2 DHCP 클라이언트 구성


안녕하세요. 썬구루입니다. 이 게시물에서는 CentOS 6.6을 DHCP 클라이언트로 구성하는 방법에 알아보도록 하겠습니다.

모든 운영체제는 DHCP 클라이언트로 구성될 수 있습니다. 우리가 사용하는 스마트폰도 Wi Fi 존에 들어가면 Wi Fi AP(Access Point / DHCP 서버)로부터 IP 주소를 받는 DHCP 클라이언트로 동작될 수 있습니다.

일단 이전에 리눅스 본딩(Linux Bonding) 구성을 하기 위해 Network Manager를 내렸었는데 쉽게 DHCP 클라이언트로 구성하기 리눅스 본딩(Linux Bonding) 이전의 시점으로 VMware Workstation의 스냅샷(Snapshot) 기능을 사용하여 Revert를 합니다.

다시 말해 NIC가 한 개이고 Network Manager가 동작하던 시점으로 되돌립니다.

■ VMware Workstation 가상 네트워크 DHCP 서버 구성

VMware Workstation은 호스트 운영체제(윈도우7, 윈도우8 등)에 설치되는 PC 가상화 소프트웨어(Hosted 방식의 Hypervisor)입니다. 그리고 이 소프트웨어를 설치하면 가상 네트워크 기능을 지원하는데 설치 시 생성되는 VMnet8 가상 스위치(가상 네트워크)에 DHCP 서버가 자동으로 구성됩니다. 이를 잠깐 편집하여 자동 할당할 IP 주소 범위를 변경합니다.

VMware Workstation > Edit 메뉴 > Virtual Network Editor > Change Settings 버튼 > VMnet8  >  DHCP Settings

Starting IP address : 192.168.80.201
Ending IP address  : 192.168.80.210

OK 버튼 > OK 버튼


이렇게 하면 자동으로 할당될 IP 주소 범위는 192.168.80.101 ~ 192.168.80.120으로 설정됩니다.

■ CentOS 6.x  DHCP Client 구성

CentOS 6.x를 DHCP Client로 설정하는 방법은 아래와 같습니다.

  ▶ nm-connection-editor GUI Tool
  ▶ NIC 구성 파일 수동 변경 후 적용
  ▶ dhclient 명령

1). nm-connection-editor GUI Tool

GUI 툴을 사용하여 DHCP Client 구성하는 가장 간단한 방법입니다. 이를 사용하기 위해 Network Manager 서비스가 동작하고 있어야 합니다.

[root@sunguru ~]# service --status-all | grep -i network
NetworkManager (pid  2130)를 실행하고 있습니다..
^C
[root@sunguru ~]#

서비스가 실행되고 있다면 아래와 같은 명령 또는 X윈도우(Gnome 데스크톱) 상단 패널(Panel)에 있는 네트워크 아이콘을 클릭하여 GUI 툴을 실행합니다.

[root@sunguru ~]# /usr/bin/nm-connection-editor





DHCP 클라이언트 설정

  - NIC 선택
  - 변경하기
  - IPv4 설정 탭(Tab) 선택
  - 방식에서 자동(DHCP) 선택
  - 적용 버튼
  - 닫기 버튼



아래와 같은 명령을 실행하여 변경 사항을 적용합니다.

[root@sunguru ~]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:56:E3:45
          inet addr:192.168.80.250  Bcast:192.168.80.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe56:e345/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:552 (552.0 b)  TX bytes:746 (746.0 b)

[root@sunguru ~]# service network restart <= 다른 명령으로도 적용 가능

인터페이스 eth0 (을)를 종료 중:   장치 상태: 3 (연결 끊겼음)
                                                           [  OK  ]
loopback 인터페이스 종료 중:                               [  OK  ]
loopback 인터페이스 활성화중 입니다:                       [  OK  ]
eth0 인터페이스 활성화중 입니다:  활성화된 연결 상태: 활성화중
활성화된 연결 경로: /org/freedesktop/NetworkManager/ActiveConnection/1
상태: 활성화됨
연결이 활성화되었습니다
                                                           [  OK  ]

[root@sunguru ~]#
[root@sunguru ~]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:56:E3:45
          inet addr:192.168.80.101  Bcast:192.168.80.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe56:e345/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2545 (2.4 KiB)  TX bytes:1742 (1.7 KiB)

[root@sunguru ~]# 

자동으로 할당받는 IP 주소는 192.168.80.101 ~ 192.168.80.120 중 하나입니다.

2). NIC 구성 파일

리눅스에 익숙하지 않으시는 분들은 개인적으로 VI 편집기를 사용하여 NIC에 관련된 구성 파일을 편집하는 것을 권하지 않습니다. 해서 NIC 관련 구성 파일 중 DHCP Client로 설정하기 위해 사용되는 구성 값만 보여 드리겠습니다. (NIC 구성 파일 고급 설명은 올해 하반기나 내전 초에 게시글을 올릴 예정입니다. ) 그리고 NIC 구성 파일들은 /etc/sysconfig/network-scripts 디렉터리에 존재합니다.

아래는 수동으로 IP 주소를 설정했을 때 NIC 구성 파일의 내용입니다.

[root@sunguru ~]# more /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
UUID=6e26fd44-6b79-4d25-a347-9cd68d433336
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=00:0C:29:56:E3:45
IPADDR=192.168.80.250
PREFIX=24
GATEWAY=192.168.80.2
DNS1=168.126.63.1
LAST_CONNECT=1468953671

[root@sunguru ~]# 

아래는 DHCP Client 구성 후 NIC 구성 파일의 내용입니다. 만약 VI 편집기를 사용하여 수동으로 변경하려면  위 표의 내용 중 빨간색 부분을 삭제하고 아래 표 내용 중 초록색 부분을 추가한 후 network 서비스를 재시작하면 됩니다.

[root@sunguru ~]# more /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
UUID=6e26fd44-6b79-4d25-a347-9cd68d433336
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=00:0C:29:56:E3:45
PEERDNS=yes
PEERROUTES=yes
LAST_CONNECT=1468950671

[root@sunguru ~]# 

3). dhclient 명령을 이용한 IP 주소 받기

dhclient라는 명령을 사용하여 IP 주소 해제 또는 갱신을 할 수 있습니다.. 이것은 윈도우 운영체제에서 ipconfig 명령을 실행하여 자동 할당받은 IP 주소를 해제하고 갱신하는 것과 유사합니다.

운영체제
IP 주소 해제
IP 주소 갱신
윈도우
 CMD> ipconfig /release
 CMD> ipconfig /renew
리눅스
 # dhclient -r eth0
 # dhclient eth0

아래는 DHCP 서버로부터 자동 할당받은 IP 주소를 해제(반환)하고 새로 갱신하는 예를 보여줍니다.

 # tcpdump port 67 or port 68 -e -n

[root@sunguru ~]# dhclient -r eth0
[root@sunguru ~]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:56:E3:45
          inet6 addr: fe80::20c:29ff:fe56:e345/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:207 errors:0 dropped:0 overruns:0 frame:0
          TX packets:169 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:62119 (60.6 KiB)  TX bytes:14167 (13.8 KiB)

[root@sunguru ~]# dhclient  eth0
[root@sunguru ~]#
[root@sunguru ~]# ifconfig eth0 

eth0      Link encap:Ethernet  HWaddr 00:0C:29:56:E3:45
          inet addr:192.168.80.105  Bcast:192.168.80.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe56:e345/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:212 errors:0 dropped:0 overruns:0 frame:0
          TX packets:173 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:63178 (61.6 KiB)  TX bytes:14935 (14.5 KiB)

[root@sunguru ~]# 

여기까지 DHCP Client 구성하는 방법에 대해 알아보았습니다. 쉽게 변경하기 위해 nm-connetion-editor GUI 툴을 사용하여 변경하는 것을 권해드리고 싶네요. ^^

다음 게시물에서 CentOS 6.6을 가지고 DHCP 서버를 구성하는 방법에 대해 알아보도록 하겠습니다.



No comments:

Post a Comment