becool

20210624 (목) DHCP 본문

linux

20210624 (목) DHCP

gusalstm 2021. 6. 24. 11:16
반응형

09:40

DHCP (Dynamic Host Configuration Protocol)

IP 주소를 할당해주는 역할 (공유기, 가상머신 하이퍼바이저)

 

동작단계

    1) 클라이언트의 요청 dhcp Discover

        (포트 : 67/UDP, 68/UCP)source 0.0.0.0 destination 255.255.255.255 :브로드캐스트통신

        (dhcp 이외의 시스템에서는 요청 폐기/거부)

    2) dhcp 서버가 요청을 확인하고 본인의 IP주소를 알림. dhcp Offer

       수신지를 특정하지 않고 브로드캐스트 통신

       서버가 제안하는 IP주소, 서브넷 마스크, dhcp 서버의 ip주소 등 포함

       (마찬가지로 클라이언트 이외의 시스템에서는 요청 폐기/무시)

    3) 클라이언트 요청 : dhcpREQUEST.

        제안을 수용하고 Server Identification Option (dhcp 서버를 구분) 사용 메시지를 전달

        브로드캐스트 통신 : 다수의 dhcp가 제안 응답을 보내온 경우에 하나의 제안만 수락하게 된다.

        (클라이언트의 브로드캐스트 통신을 통해 모든 dhcp가 메시지를 수신하게되며, 수락된 dhcp 외의 다른 dhcp의 제안은 자동적으로 폐기된다)

    4) 서버응답 IP주소 저장 및 할당 : dhcp Acknowledgement

        임대기간 및 dns정보 등을 클라이언트에 전달하고 네트워크인터페이스에 할당 (dhcpACK)

        임대기간 만료 시에 클라이언트-dhcp 의 통신은 UDP 유니캐스트를 통해 이루어 진다.

        (dhcp REQUEST와 dhcpACK 과정만 이용하게 됨)

 

할당방식

    1) 동적 할당 : 요청에 따라 관리 범위 내의 IP를 유동적으로 할당(기간제한)

    2) 수동 할당 : MAC주소에 따라 IP주소를 직접 할당하는 방식

 

실습 : virtual-box > 파일 > 설정 > 네트워크 >nat network 더블클릭 > dhcp 지원 체크 해제 후 저장

 

 

[root@dns ~]# hostname
dns.school.exam.com
[root@dns ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search school.exam.com
nameserver 10.0.2.10
nameserver 8.8.8.8
[root@dns ~]# yum install -y dhcp

[root@dns ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf 
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y  → 샘플파일 경로에서 실제 사용할 conf파일로 복사
[root@dns ~]# vim /etc/dhcp/dhcpd.conf 

option domain-name "school.exam.com"; → 도메인주소

option domain-name-servers 10.0.2.10; → dns 주소

#실제 대역에 대한 설정 subnet

subnet 10.0.2.0 netmask 255.255.255.0 {
  range 10.0.2.11 10.0.2.200;   → 기본dns나 예약된 아이피를 피해서 범위를 설정
}

#특정 맥주소에 특정 ip를 부여할 수 있음

subnet 10.0.2.0 netmask 255.255.255.0 {

        range 10.0.2.40 10.0.2.50;

        option routers 10.0.2.1;

        option domain-name-servers 10.0.2.10;

        host localhost {                               → 호스트네임

        hardware ethernet 08:00:27:17:7b:23;    → 고유 mac address

        fixed-address 10.0.2.40→ 할당하고자 하는IP주소 (ip대역과 일치해야함. range와 불일치해도 됨)

        }

      }

 

[root@dns ~]# systemctl start dhcpd

[root@dns ~]# ss -nlpt |grep 67  : tcp 포트 아무것도 없음
[root@dns ~]# ss -nlpu |grep 67 : udp 포트 아래와 같이 신호대기중
UNCONN     0      0            *:67                       *:*                   users:(("dhcpd",pid=4881,fd=7))
UNCONN     0      0      *%virbr0:67                       *:*                   users:(("dnsmasq",pid=1526,fd=3))

[root@dns ~]# firewall-cmd --add-service=dhcp
[root@web ~]# cat /usr/lib/firewalld/services/dhcp.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>DHCP</short>
  <description>This allows a DHCP server to accept messages from DHCP clients and relay agents.</description>
  <port protocol="udp" port="67"/>
</service>

 

TEST

[root@web ~]# nmcli con add type ethernet con-name dhcp ifname enp0s3
Connection 'dhcp' (0b2b7e3a-bd93-46d9-bb4e-5db3358944fe) successfully added.
[root@web ~]# nmcli con up dhcp
[root@web ~]# ip addr show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:1c:ad:c6 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.4/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s3
       valid_lft 578sec preferred_lft 578sec
    inet6 fe80::d70d:bda0:21f0:4f8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

  ipv4.method:                           auto 동적 manual 수동

    … DHCP4.OPTION 등에 dhcp 옵션이 기재된다.

 

[root@host1 ~]# service network restart → dhcp 재시작 (클라이언트)

 

 

P882 DDNS

Dynamic DNS 동적으로 dns서버 정보를 업데이트 가능

 

 

 

728x90

'linux' 카테고리의 다른 글

20210625 (금) glusterfs, 가상인터페이스 생성  (0) 2021.06.25
20210624 (목) FTP, DHCP, PXE server, kickstart  (0) 2021.06.24
20210622 (화) Nginx  (0) 2021.06.22
20210622 (화) webservice  (0) 2021.06.22
20210616 (수) dns, web서비스  (0) 2021.06.16
Comments