네트워킹 인프라 서비스 관리
Red Hat Enterprise Linux 9에서 네트워킹 인프라 서비스 관리 가이드
초록
Red Hat 문서에 관한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.
Jira를 통해 피드백 제출 (계정 필요)
- Jira 웹 사이트에 로그인합니다.
- 상단 탐색 바에서 생성을 클릭합니다.
- 요약 필드에 설명 제목을 입력합니다.
- 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
- 대화 상자 하단에서 생성 을 클릭합니다.
1장. BIND DNS 서버 설정 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
BIND는 IETF(Internet Engineering Task Force) DNS 표준 및 초안 표준을 완벽하게 준수하는 기능이 풍부한 DNS 서버입니다. 예를 들어 관리자는 BIND를 다음과 같이 자주 사용합니다.
- 로컬 네트워크에서 DNS 서버 캐싱
- 영역에 대한 권한 있는 DNS 서버
- 영역에 고가용성을 제공하는 보조 서버
1.1. SELinux를 사용하여 BIND를 보호하거나 변경 루트 환경에서 실행하는 방법에 대한 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
BIND 설치를 보호하려면 다음을 수행할 수 있습니다.
변경 루트 환경 없이
named서비스를 실행합니다. 이 경우강제모드의 SELinux는 알려진 BIND 보안 취약점을 악용하지 않습니다. 기본적으로 Red Hat Enterprise Linux는 SELinux를강제모드로 사용합니다.중요강제모드에서 SELinux를 사용하여 RHEL에서 BIND를 실행하는 것은 변경 루트 환경에서 BIND를 실행하는 것보다 더 안전합니다.변경 루트 환경에서
named-chroot서비스를 실행합니다.관리자는 변경 루트 기능을 사용하여 프로세스의 루트 디렉터리와 하위 프로세스가
/디렉터리와 다르다는 것을 정의할 수 있습니다.named-chroot서비스를 시작하면 BIND에서 루트 디렉터리를/var/named/chroot/로 전환합니다. 결과적으로 서비스는mount --bind명령을 사용하여/var/named/chroot/에서 사용할 수 있는/etc/named-chroot.files에 나열된 파일 및 디렉터리를 만들고 프로세스는/var/named/chroot/. 외부에 있는 파일에 액세스할 수 없습니다.
BIND를 사용하려면 다음을 수행합니다.
-
일반 모드에서
named서비스를 사용합니다. -
변경 루트 환경에서는
named-chroot서비스를 사용합니다. 이를 위해서는named-chroot패키지를 추가로 설치해야 합니다.
1.2. BIND를 캐싱 DNS 서버로 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 BIND DNS 서버는 성공적으로 확인되고 실패한 조회를 캐시합니다. 그러면 서비스는 캐시의 동일한 레코드에 대한 요청에 응답합니다. 이렇게 하면 DNS 조회 속도가 크게 향상됩니다.
사전 요구 사항
- 서버의 IP 주소는 static입니다.
절차
bind및bind-utils패키지를 설치합니다.dnf install bind bind-utils
# dnf install bind bind-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하려면
bind-chroot패키지를 설치합니다.dnf install bind-chroot
# dnf install bind-chrootCopy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux가
강제모드인 호스트에서 BIND를 실행하는 것이 더 안전합니다./etc/named.conf파일을 편집하고options문에서 다음과 같이 변경합니다.listen-on및listen-on-v6문을 업데이트하여 BIND에서 수신 대기해야 하는 IPv4 및 IPv6 인터페이스를 지정합니다.listen-on port 53 { 127.0.0.1; 192.0.2.1; }; listen-on-v6 port 53 { ::1; 2001:db8:1::1; };listen-on port 53 { 127.0.0.1; 192.0.2.1; }; listen-on-v6 port 53 { ::1; 2001:db8:1::1; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow allow-query문을 업데이트하여 클라이언트가 이 DNS 서버를 쿼리할 수 있는 IP 주소 및 범위를 구성합니다.allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; };allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow allow-recursion문을 추가하여 BIND에서 재귀 쿼리를 허용하는 IP 주소 및 범위를 정의합니다.allow-recursion { localhost; 192.0.2.0/24; 2001:db8:1::/64; };allow-recursion { localhost; 192.0.2.0/24; 2001:db8:1::/64; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow 주의서버의 공용 IP 주소에 대한 재귀를 허용하지 마십시오. 그렇지 않으면 서버가 대규모 DNS 조정 공격의 일부가 될 수 있습니다.
기본적으로 BIND는 루트 서버에서 권한 있는 DNS 서버로 반복적으로 쿼리하여 쿼리를 확인합니다. 또는 공급자와 같은 다른 DNS 서버에 쿼리를 전달하도록 BIND를 구성할 수 있습니다. 이 경우 BIND에서 쿼리를 전달해야 하는 DNS 서버의 IP 주소 목록을 사용하여
forwarders문을 추가합니다.forwarders { 198.51.100.1; 203.0.113.5; };forwarders { 198.51.100.1; 203.0.113.5; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow 역추적 동작으로 BIND는 전달자 서버가 응답하지 않는 경우 쿼리를 재귀적으로 확인합니다. 이 동작을 비활성화하려면
forward only;문을 추가합니다.
/etc/named.conf파일의 구문을 확인합니다.named-checkconf
# named-checkconfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
들어오는 DNS 트래픽을 허용하도록
firewalld규칙을 업데이트합니다.firewall-cmd --permanent --add-service=dns firewall-cmd --reload
# firewall-cmd --permanent --add-service=dns # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow BIND를 시작하고 활성화합니다.
systemctl enable --now named
# systemctl enable --now namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하려면
systemctl enable --now named-chroot명령을 사용하여 서비스를 활성화하고 시작합니다.
검증
새로 설정된 DNS 서버를 사용하여 도메인을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.처음으로 레코드를 쿼리한 후 BIND에서 해당 캐시에 항목을 추가합니다.
이전 쿼리를 반복합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 캐시된 항목으로 인해 항목이 만료될 때까지 동일한 레코드에 대한 추가 요청이 훨씬 더 빨라집니다.
1.3. BIND DNS 서버에서 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
bind 패키지에서 제공하는 기본 /etc/named.conf 파일의 구성은 default_debug 채널을 사용하고 메시지를 /var/named/data/named.run 파일에 기록합니다. default_debug 채널은 서버의 디버그 수준이 0이 아닌 경우에만 항목을 기록합니다.
다양한 채널 및 카테고리를 사용하여 BIND를 구성하여 심각도가 정의된 다른 이벤트를 작성하여 파일을 분리할 수 있습니다.
사전 요구 사항
- BIND는 예를 들어 캐싱 이름 서버로 이미 구성되어 있습니다.
-
named또는named-chroot서비스가 실행 중입니다.
절차
/etc/named.conf파일을 편집하고범주및채널구문을logging문에 추가합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제 구성을 사용하면 BIND에서
/var/named/log/transfer.log로 영역 전송과 관련된 메시지를 기록합니다. BIND는 로그 파일의 최대10개 버전을 생성하고 최대50MB의 크기에 도달하면 회전합니다.카테고리문구는 BIND에서 카테고리의 메시지를 보내는 채널을 정의합니다.채널구문은 버전 수, 최대 파일 크기, 심각도 수준 BIND에서 채널에 로깅하는 등 로그 메시지의 대상을 정의합니다. 이벤트의 타임스탬프, 카테고리 및 심각도를 로깅하는 것과 같은 추가 설정은 선택 사항이지만 디버깅 목적에 유용합니다.로그 디렉터리가 없는 경우 로그 디렉터리를 생성하고 이 디렉터리의
named사용자에게 쓰기 권한을 부여합니다.mkdir /var/named/log/ chown named:named /var/named/log/ chmod 700 /var/named/log/
# mkdir /var/named/log/ # chown named:named /var/named/log/ # chmod 700 /var/named/log/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/named.conf파일의 구문을 확인합니다.named-checkconf
# named-checkconfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
BIND를 다시 시작합니다.
systemctl restart named
# systemctl restart namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
systemctl restart named-chroot명령을 사용하여 서비스를 다시 시작합니다.
검증
로그 파일의 내용을 표시합니다.
cat /var/named/log/transfer.log ... 06-Jul-2022 15:08:51.261 xfer-out: info: client @0x7fecbc0b0700 192.0.2.2#36121/key example-transfer-key (example.com): transfer of 'example.com/IN': AXFR started: TSIG example-transfer-key (serial 2022070603) 06-Jul-2022 15:08:51.261 xfer-out: info: client @0x7fecbc0b0700 192.0.2.2#36121/key example-transfer-key (example.com): transfer of 'example.com/IN': AXFR ended
# cat /var/named/log/transfer.log ... 06-Jul-2022 15:08:51.261 xfer-out: info: client @0x7fecbc0b0700 192.0.2.2#36121/key example-transfer-key (example.com): transfer of 'example.com/IN': AXFR started: TSIG example-transfer-key (serial 2022070603) 06-Jul-2022 15:08:51.261 xfer-out: info: client @0x7fecbc0b0700 192.0.2.2#36121/key example-transfer-key (example.com): transfer of 'example.com/IN': AXFR endedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4. BIND ACL 작성 링크 복사링크가 클립보드에 복사되었습니다!
BIND의 특정 기능에 대한 액세스를 제어하면 서비스 거부(DoS)와 같은 무단 액세스 및 공격을 방지할 수 있습니다. BIND ACL(액세스 제어목록) 설명은 IP 주소 및 범위 목록입니다. 각 ACL에는 allow-query 와 같은 여러 문에서 사용할 수 있는 닉네임이 있으며 지정된 IP 주소와 범위를 나타냅니다.
BIND에서는 ACL에서 첫 번째 일치하는 항목만 사용합니다. 예를 들어 ACL { 192.0.2/24; !192.0.2.1; } 과 IP 주소 192.0.2.1 이 연결된 호스트를 정의하는 경우 두 번째 항목이 이 주소를 제외하더라도 액세스 권한이 부여됩니다.
BIND에는 다음과 같은 기본 제공 ACL이 있습니다.
-
none: 호스트 없음과 일치합니다. -
any: 모든 호스트와 일치합니다. -
localhost: 루프백 주소127.0.0.1및::1과 일치하고 BIND를 실행하는 서버에서 모든 인터페이스의 IP 주소와 일치합니다. -
localnets: 루프백 주소127.0.0.1및::1과 일치하고 BIND를 실행하는 서버가 직접 연결된 모든 서브넷과 일치합니다.
사전 요구 사항
- BIND는 예를 들어 캐싱 이름 서버로 이미 구성되어 있습니다.
-
named또는named-chroot서비스가 실행 중입니다.
절차
/etc/named.conf파일을 편집하고 다음과 같이 변경합니다.파일에
acl문을 추가합니다. 예를 들어127.0.0.1,192.0.2.0/24,2001:db8:1::/64에 대해internal-networks라는 ACL을 생성하려면 다음을 입력합니다.acl internal-networks { 127.0.0.1; 192.0.2.0/24; 2001:db8:1::/64; }; acl dmz-networks { 198.51.100.0/24; 2001:db8:2::/64; };acl internal-networks { 127.0.0.1; 192.0.2.0/24; 2001:db8:1::/64; }; acl dmz-networks { 198.51.100.0/24; 2001:db8:2::/64; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow ACL의 닉네임을 지원하는 문에 사용합니다. 예를 들면 다음과 같습니다.
allow-query { internal-networks; dmz-networks; }; allow-recursion { internal-networks; };allow-query { internal-networks; dmz-networks; }; allow-recursion { internal-networks; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow
/etc/named.conf파일의 구문을 확인합니다.named-checkconf
# named-checkconfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
BIND를 다시 로드합니다.
systemctl reload named
# systemctl reload namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
검증
구성된 ACL을 사용하는 기능을 트리거하는 작업을 실행합니다. 예를 들어 이 절차의 ACL에서는 정의된 IP 주소의 재귀 쿼리만 허용합니다. 이 경우 ACL 정의에 없는 호스트에 다음 명령을 입력하여 외부 도메인 확인을 시도합니다.
dig +short @192.0.2.1 www.example.com
# dig +short @192.0.2.1 www.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령에서 출력을 반환하지 않으면 BIND가 액세스를 거부하고 ACL이 작동합니다. 클라이언트에 대한 자세한 출력의 경우
+short옵션 없이 명령을 사용합니다.dig @192.0.2.1 www.example.com
# dig @192.0.2.1 www.example.com ... ;; WARNING: recursion requested but not available ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. BIND DNS 서버에서 영역 구성 링크 복사링크가 클립보드에 복사되었습니다!
DNS 영역은 도메인 공간의 특정 하위 트리에 대한 리소스 레코드가 있는 데이터베이스입니다. 예를 들어 example.com 도메인을 담당하는 경우 BIND에서 해당 영역을 설정할 수 있습니다. 결과적으로 클라이언트는 www.example.com 를 이 영역에 구성된 IP 주소로 확인할 수 있습니다.
1.5.1. 영역 파일의 SOA 레코드 링크 복사링크가 클립보드에 복사되었습니다!
권한 시작( SOA) 레코드는 DNS 영역에 필수 레코드입니다. 예를 들어 여러 DNS 서버가 한 영역에 권한이 있지만 DNS 확인자에게도 레코드가 있는 경우 이 레코드가 중요합니다.
BIND의 SOA 레코드에는 다음과 같은 구문이 있습니다.
name class type mname rname serial refresh retry expire minimum
name class type mname rname serial refresh retry expire minimum
관리자는 가독성을 높이기 위해 일반적으로 영역 파일의 레코드를 together(;)으로 시작하는 주석이 포함된 여러 행으로 분할합니다. SOA 레코드를 분할하는 경우 이 레코드를 함께 유지합니다.
FQDN(정규화된 도메인 이름) 끝에 있는 후행 점을 확인합니다. FQDN은 점으로 구분된 여러 도메인 레이블로 구성됩니다. DNS 루트에는 빈 레이블이 있으므로 FQDN은 점으로 끝납니다. 따라서 BIND에서는 후행 점 없이 이름에 영역 이름을 추가합니다. 후행 점이 없는 호스트 이름(예: ns1.example.com )은 기본 이름 서버의 올바른 주소가 아닌 ns1.example.com.com으로 확장됩니다.
SOA 레코드의 필드는 다음과 같습니다.
-
Name: 영역의 이름,원본이라고 합니다. 이 필드를@.로 설정하면 BIND에서/etc/named.conf에 정의된 영역 이름으로 확장됩니다. -
클래스: SOA 레코드에서 이 필드를 항상 인터넷(IN)으로 설정해야 합니다. -
유형: SOA 레코드에서 이 필드를 항상SOA로 설정해야 합니다. -
mname(마스터 이름): 이 영역의 기본 이름 서버의 호스트 이름입니다. -
RNAME(responsible name): 이 영역을 담당하는 사용자의 이메일 주소입니다.
형식은 다릅니다. at 기호(@)를 점(. )으로 교체해야 합니다. serial: 이 영역 파일의 버전 번호입니다. 보조 이름 서버는 기본 서버의 일련 번호가 높은 경우에만 영역의 복사본을 업데이트합니다.형식은 숫자 값일 수 있습니다. 일반적으로 사용되는 형식은 <
year><month><day><two-digit-number>입니다. 이 형식을 사용하면 이론적으로 영역 파일을 하루에 백 번까지 변경할 수 있습니다.-
새로 고침: 영역을 업데이트한 경우 기본 서버를 확인하기 전에 보조 서버가 대기해야 하는 시간입니다. -
재시도: 보조 서버가 실패한 시도 후 기본 서버를 쿼리하려고 시도한 후의 시간입니다. -
만료: 이전 시도가 모두 실패한 경우 보조 서버가 주 서버 쿼리를 중지한 후의 시간입니다. -
최소: RFC 2308은 이 필드의 의미를 음수 캐싱 시간으로 변경했습니다. 규정 준수 확인자는 이를 사용하여NXDOMAIN이름 오류를 캐시하는 기간을 결정합니다.
새로 고침 의 숫자 값,재시도,만료 및 최소 필드는 초 단위로 시간을 정의합니다. 그러나 가독성을 높이기 위해 m for minute, h for hours, d 와 같은 시간 접미사를 사용합니다. 예를 들어 3h 는 3 시간을 나타냅니다.
1.5.2. BIND 기본 서버에서 전달 영역 설정 링크 복사링크가 클립보드에 복사되었습니다!
영역을 IP 주소 및 기타 정보에 매핑합니다. 예를 들어 도메인 example.com 을 담당하는 경우 www.example.com 와 같은 이름을 확인하도록 BIND에서 전달 영역을 설정할 수 있습니다.
사전 요구 사항
- BIND는 예를 들어 캐싱 이름 서버로 이미 구성되어 있습니다.
-
named또는named-chroot서비스가 실행 중입니다.
절차
/etc/named.conf파일에 영역 정의를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 설정은 다음을 정의합니다.
-
example.com영역의 기본 서버(type master)로 이 서버를 사용합니다. -
/var/named/example.com.zone파일은 영역 파일입니다. 이 예에서와 같이 상대 경로를 설정하는 경우 이 경로는options문에서 디렉터리에 설정한디렉터리와 상대적입니다. - 모든 호스트에서 이 영역을 쿼리할 수 있습니다. 또는 IP 범위 또는 BIND ACL(액세스 제어 목록) 닉네임을 지정하여 액세스를 제한합니다.
- 호스트가 영역을 전송할 수 없습니다. 보조 서버를 설정하고 보조 서버의 IP 주소에 대해서만 영역 전송을 허용합니다.
-
/etc/named.conf파일의 구문을 확인합니다.named-checkconf
# named-checkconfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
예를 들어 다음 콘텐츠를 사용하여
/var/named/example.com.zone파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 영역 파일:
-
리소스 레코드의 기본 TTL(Time-to-live) 값을 8시간으로 설정합니다. 시간 접미사가 없는 경우
hfor hour, BIND는 값을 초로 해석합니다. - 영역에 대한 세부 정보와 함께 필요한 SOA 리소스 레코드가 포함되어 있습니다.
-
ns1.example.com을 이 영역에 대해 권한 있는 DNS 서버로 설정합니다. 기능을 위해 영역에는 하나 이상의 이름 서버(NS) 레코드가 필요합니다. 그러나 RFC 1912를 준수하기 위해서는 적어도 두 개의 이름 서버가 필요합니다. -
mail.example.com을 example.com 도메인의 mail.example.com(mail exchanger)으로 설정합니다.호스트 이름 앞에 있는 숫자 값은 레코드의 우선순위입니다. 더 낮은 값이 있는 항목은 우선 순위가 높습니다. -
www.example.com,mail.example.com,ns1.example.com의 IPv4 및 IPv6 주소를 설정합니다.
-
리소스 레코드의 기본 TTL(Time-to-live) 값을 8시간으로 설정합니다. 시간 접미사가 없는 경우
named그룹만 읽을 수 있는 영역 파일에 보안 권한을 설정합니다.chown root:named /var/named/example.com.zone chmod 640 /var/named/example.com.zone
# chown root:named /var/named/example.com.zone # chmod 640 /var/named/example.com.zoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/named/example.com.zone파일의 구문을 확인합니다.named-checkzone example.com /var/named/example.com.zone
# named-checkzone example.com /var/named/example.com.zone zone example.com/IN: loaded serial 2022070601 OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow BIND를 다시 로드합니다.
systemctl reload named
# systemctl reload namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
검증
example.com영역에서 다른 레코드를 쿼리하고 출력이 영역 파일에 구성한 레코드와 일치하는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.
1.5.3. BIND 기본 서버에서 역방향 영역 설정 링크 복사링크가 클립보드에 복사되었습니다!
역방향 영역은 IP 주소를 이름에 매핑합니다. 예를 들어 IP 범위 192.0.2.0/24 를 담당하는 경우 BIND에서 역방향 영역을 설정하여 이 범위의 IP 주소를 호스트 이름으로 확인할 수 있습니다.
전체 클래스 네트워크의 역방향 영역을 생성하는 경우 그에 따라 영역의 이름을 지정합니다. 예를 들어 C 클래스 C 네트워크 192.0.2.0/24 클래스의 경우 영역 이름은 2.0.192.in-addr.arpa 입니다. 다른 네트워크 크기(예: 192.0.2.0/28 )에 대한 역방향 영역을 생성하려면 영역 이름은 28-2.0.192.in-addr.arpa 입니다.
사전 요구 사항
- BIND는 예를 들어 캐싱 이름 서버로 이미 구성되어 있습니다.
-
named또는named-chroot서비스가 실행 중입니다.
절차
/etc/named.conf파일에 영역 정의를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 설정은 다음을 정의합니다.
-
이 서버는
2.0.192.in-addr.arpa역방향 영역의 기본 서버(type master)로 사용됩니다. -
/var/named/2.0.192.in-addr.arpa.zone파일은 영역 파일입니다. 이 예에서와 같이 상대 경로를 설정하는 경우 이 경로는options문에서 디렉터리에 설정한디렉터리와 상대적입니다. - 모든 호스트에서 이 영역을 쿼리할 수 있습니다. 또는 IP 범위 또는 BIND ACL(액세스 제어 목록) 닉네임을 지정하여 액세스를 제한합니다.
- 호스트가 영역을 전송할 수 없습니다. 보조 서버를 설정하고 보조 서버의 IP 주소에 대해서만 영역 전송을 허용합니다.
-
이 서버는
/etc/named.conf파일의 구문을 확인합니다.named-checkconf
# named-checkconfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
예를 들어 다음 콘텐츠를 사용하여
/var/named/2.0.192.in-addr.arpa.zone파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 영역 파일:
-
리소스 레코드의 기본 TTL(Time-to-live) 값을 8시간으로 설정합니다. 시간 접미사가 없는 경우
hfor hour, BIND는 값을 초로 해석합니다. - 영역에 대한 세부 정보와 함께 필요한 SOA 리소스 레코드가 포함되어 있습니다.
-
ns1.example.com을 이 역방향 영역에 대해 권한 있는 DNS 서버로 설정합니다. 기능을 위해 영역에는 하나 이상의 이름 서버(NS) 레코드가 필요합니다. 그러나 RFC 1912를 준수하기 위해서는 적어도 두 개의 이름 서버가 필요합니다. -
192.0.2.1및192.0.2.30주소에 대한 포인터(PTR) 레코드를 설정합니다.
-
리소스 레코드의 기본 TTL(Time-to-live) 값을 8시간으로 설정합니다. 시간 접미사가 없는 경우
named그룹만 읽을 수 있는 영역 파일에 보안 권한을 설정합니다.chown root:named /var/named/2.0.192.in-addr.arpa.zone chmod 640 /var/named/2.0.192.in-addr.arpa.zone
# chown root:named /var/named/2.0.192.in-addr.arpa.zone # chmod 640 /var/named/2.0.192.in-addr.arpa.zoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/named/2.0.192.in-addr.arpa.zone파일의 구문을 확인합니다.named-checkzone 2.0.192.in-addr.arpa /var/named/2.0.192.in-addr.arpa.zone
# named-checkzone 2.0.192.in-addr.arpa /var/named/2.0.192.in-addr.arpa.zone zone 2.0.192.in-addr.arpa/IN: loaded serial 2022070601 OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow BIND를 다시 로드합니다.
systemctl reload named
# systemctl reload namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
검증
역방향 영역에서 다른 레코드를 쿼리하고 출력이 영역 파일에 구성한 레코드와 일치하는지 확인합니다.
dig +short @localhost -x 192.0.2.1 dig +short @localhost -x 192.0.2.30
# dig +short @localhost -x 192.0.2.1 ns1.example.com. # dig +short @localhost -x 192.0.2.30 www.example.com.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.
1.5.4. BIND 영역 파일 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
예를 들어 서버의 IP 주소가 변경되면 특정 상황에서는 영역 파일을 업데이트해야 합니다. 여러 DNS 서버가 영역을 담당하는 경우 기본 서버에서만 이 절차를 수행합니다. 영역 복사본을 저장하는 다른 DNS 서버는 영역 전송을 통해 업데이트를 수신합니다.
사전 요구 사항
- 영역이 구성되어 있습니다.
-
named또는named-chroot서비스가 실행 중입니다.
절차
선택 사항:
/etc/named.conf파일의 영역 파일의 경로를 식별합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 영역 정의의
file문에서 영역 파일의 경로를 찾습니다. 상대 경로는options문의 디렉터리에 설정된디렉토리를기준으로 합니다.영역 파일을 편집합니다.
- 필요한 변경을 수행합니다.
권한 시작(SOA) 레코드에서 일련 번호를 늘립니다.
중요일련 번호가 이전 값보다 작거나 같으면 보조 서버는 영역의 복사본을 업데이트하지 않습니다.
영역 파일의 구문을 확인합니다.
named-checkzone example.com /var/named/example.com.zone
# named-checkzone example.com /var/named/example.com.zone zone example.com/IN: loaded serial 2022062802 OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow BIND를 다시 로드합니다.
systemctl reload named
# systemctl reload namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
검증
추가, 수정 또는 제거된 레코드를 쿼리합니다. 예를 들면 다음과 같습니다.
dig +short @localhost A ns2.example.com
# dig +short @localhost A ns2.example.com 192.0.2.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.
1.5.5. 자동화된 키 생성 및 영역 유지 관리 기능을 사용한 DNSSEC 영역 서명 링크 복사링크가 클립보드에 복사되었습니다!
DNSSEC(Domain Name System Security extensions)로 영역에 서명하여 인증 및 데이터 무결성을 보장할 수 있습니다. 이러한 영역에는 추가 리소스 레코드가 포함되어 있습니다. 클라이언트는 이를 사용하여 영역 정보의 진위 여부를 확인할 수 있습니다.
영역에 DNSSEC 정책 기능을 활성화하면 BIND에서 다음 작업을 자동으로 수행합니다.
- 키 생성
- 영역에 서명
- 키를 다시 서명하고 주기적으로 교체하는 등 영역을 유지 관리합니다.
외부 DNS 서버를 활성화하여 영역의 진위 여부를 확인하려면 영역의 공개 키를 상위 영역에 추가해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 도메인 공급자 또는 레지스트리에 문의하십시오.
이 절차에서는 BIND에서 기본 DNSSEC 정책을 사용합니다. 이 정책은 단일 ECDSAP256SHA 키 서명을 사용합니다. 또는 사용자 지정 키, 알고리즘 및 타이밍을 사용하는 고유한 정책을 생성합니다.
사전 요구 사항
- DNSSEC를 활성화할 영역이 구성되어 있습니다.
-
named또는named-chroot서비스가 실행 중입니다. - 서버는 시간 서버와 시간을 동기화합니다. DNSSEC 검증에는 정확한 시스템 시간이 중요합니다.
절차
/etc/named.conf파일을 편집하고 DNSSEC를 활성화하려는 영역에dnssec-policy default를 추가합니다.zone "example.com" { ... dnssec-policy default; };zone "example.com" { ... dnssec-policy default; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow BIND를 다시 로드합니다.
systemctl reload named
# systemctl reload namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.BIND에서는 공개 키를
/var/named/K <zone_name > .+ <algorithm> + <key_ID > .key파일에 저장합니다. 이 파일을 사용하여 영역의 공개 키를 상위 영역에 필요한 형식으로 표시합니다.DS 레코드 형식:
dnssec-dsfromkey /var/named/Kexample.com.+013+61141.key
# dnssec-dsfromkey /var/named/Kexample.com.+013+61141.key example.com. IN DS 61141 13 2 3E184188CF6D2521EDFDC3F07CFEE8D0195AACBD85E68BAE0620F638B4B1B027Copy to Clipboard Copied! Toggle word wrap Toggle overflow DNSKEY 형식:
grep DNSKEY /var/named/Kexample.com.+013+61141.key
# grep DNSKEY /var/named/Kexample.com.+013+61141.key example.com. 3600 IN DNSKEY 257 3 13 sjzT3jNEp120aSO4mPEHHSkReHUf7AABNnT8hNRTzD5cKMQSjDJin2I3 5CaKVcWO1pm+HltxUEt+X9dfp8OZkg==Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 영역의 공개 키를 상위 영역에 추가하도록 요청합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 도메인 공급자 또는 레지스트리에 문의하십시오.
검증
DNSSEC 서명을 활성화한 영역에서 자신의 DNS 서버를 쿼리합니다.
dig +dnssec +short @localhost A www.example.com
# dig +dnssec +short @localhost A www.example.com 192.0.2.30 A 13 3 28800 20220718081258 20220705120353 61141 example.com. e7Cfh6GuOBMAWsgsHSVTPh+JJSOI/Y6zctzIuqIU1JqEgOOAfL/Qz474 M0sgi54m1Kmnr2ANBKJN9uvOs5eXYw==Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.공개 키가 상위 영역에 추가되고 다른 서버로 전파된 후 서버가 쿼리의 인증된 데이터(
ad) 플래그를 서명된 영역에 설정하는지 확인합니다.dig @localhost example.com +dnssec
# dig @localhost example.com +dnssec ... ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6. BIND DNS 서버 간 영역 전송 구성 링크 복사링크가 클립보드에 복사되었습니다!
영역 전송을 통해 영역의 사본이 있는 모든 DNS 서버에서 최신 데이터를 사용하도록 합니다.
사전 요구 사항
- 향후 기본 서버에서 영역 전송을 설정할 영역이 이미 구성되어 있습니다.
- 향후 보조 서버에서 BIND는 이미 구성되어 있습니다(예: 캐싱 이름 서버).
-
두 서버 모두에서
named또는named-chroot서비스가 실행 중입니다.
절차
기존 기본 서버에서 다음을 수행합니다.
공유 키를 생성하고
/etc/named.conf파일에 추가합니다.tsig-keygen example-transfer-key | tee -a /etc/named.conf
# tsig-keygen example-transfer-key | tee -a /etc/named.conf key "example-transfer-key" { algorithm hmac-sha256; secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ="; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은
tsig-keygen명령의 출력을 표시하고/etc/named.conf에 자동으로 추가합니다.나중에 보조 서버에서 명령의 출력이 필요합니다.
/etc/named.conf파일에서 영역 정의를 편집합니다.allow-transfer문에서 서버가 영역을 전송하기 위해example-transfer-key문에 지정된 키를 제공해야 함을 정의합니다.zone "example.com" { ... allow-transfer { key example-transfer-key; }; };zone "example.com" { ... allow-transfer { key example-transfer-key; }; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는
allow-transfer문에서 BIND ACL(액세스 제어 목록) 닉네임을 사용합니다.기본적으로 영역을 업데이트한 후 BIND는 이 영역에 이름 서버(
NS) 레코드가 있는 모든 이름 서버에 알립니다. 보조 서버에 대한NS레코드를 영역에 추가하지 않으려는 경우 BIND에서 이 서버에 어쨌든 알립니다. 이를 위해 이 보조 서버의 IP 주소를 사용하여also-notify문을 영역에 추가합니다.zone "example.com" { ... also-notify { 192.0.2.2; 2001:db8:1::2; }; };zone "example.com" { ... also-notify { 192.0.2.2; 2001:db8:1::2; }; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow
/etc/named.conf파일의 구문을 확인합니다.named-checkconf
# named-checkconfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
BIND를 다시 로드합니다.
systemctl reload named
# systemctl reload namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
향후 보조 서버에서 다음을 수행합니다.
/etc/named.conf파일을 다음과 같이 편집합니다.기본 서버에서와 동일한 키 정의를 추가합니다.
key "example-transfer-key" { algorithm hmac-sha256; secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ="; };key "example-transfer-key" { algorithm hmac-sha256; secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ="; };Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/named.conf파일에 영역 정의를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 설정 상태:
-
이 서버는
example.com영역의 보조 서버(유형 슬레이브)입니다. -
/var/named/slaves/example.com.zone파일은 영역 파일입니다. 이 예에서와 같이 상대 경로를 설정하는 경우 이 경로는options문에서 디렉터리에 설정한디렉터리와 상대적입니다. 이 서버가 기본 서버와 보조인 영역 파일을 분리하려면 예를 들어/var/named/slaves/디렉터리에 저장할 수 있습니다. - 모든 호스트에서 이 영역을 쿼리할 수 있습니다. 또는 IP 범위 또는 ACL 닉네임을 지정하여 액세스를 제한합니다.
- 이 서버에서 영역을 전송할 수 있는 호스트는 없습니다.
-
이 영역의 기본 서버의 IP 주소는
192.0.2.1및2001:db8:1::2입니다. 또는 ACL 닉네임을 지정할 수 있습니다. 이 보조 서버는example-transfer-key라는 키를 사용하여 기본 서버를 인증합니다.
-
이 서버는
/etc/named.conf파일의 구문을 확인합니다.named-checkconf
# named-checkconfCopy to Clipboard Copied! Toggle word wrap Toggle overflow BIND를 다시 로드합니다.
systemctl reload named
# systemctl reload namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
-
선택 사항: 기본 서버에서 영역 파일을 수정하고 새 보조 서버에 대한
NS레코드를 추가합니다.
검증
보조 서버에서 다음을 수행합니다.
named서비스의systemd저널 항목을 표시합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
journalctl -u named-chroot명령을 사용하여 저널 항목을 표시합니다.BIND에서 영역 파일을 생성했는지 확인합니다.
ls -l /var/named/slaves/
# ls -l /var/named/slaves/ total 4 -rw-r--r--. 1 named named 2736 Jul 6 15:08 example.com.zoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 보조 서버는 영역 파일을 바이너리 원시 형식으로 저장합니다.
보조 서버에서 전송된 영역의 레코드를 쿼리합니다.
dig +short @192.0.2.2 AAAA www.example.com
# dig +short @192.0.2.2 AAAA www.example.com 2001:db8:1::30Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 이 절차에서 설정한 보조 서버가 IP 주소
192.0.2.2에서 수신 대기한다고 가정합니다.
1.7. DNS 레코드를 재정의하도록 BIND에서 응답 정책 영역 구성 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 DNS 차단 및 필터링을 사용하여 DNS 응답을 다시 작성하여 특정 도메인 또는 호스트에 대한 액세스를 차단할 수 있습니다. BIND에서 응답 정책 영역(RPZ)은 이 기능을 제공합니다. NXDOMAIN 오류 발생 또는 쿼리에 응답하지 않는 등 차단된 항목에 대해 다른 작업을 구성할 수 있습니다.
환경에 여러 DNS 서버가 있는 경우 이 절차를 사용하여 기본 서버에서 RPZ를 구성하고 나중에 보조 서버에서 RPZ를 사용하도록 영역 전송을 구성합니다.
사전 요구 사항
- BIND는 예를 들어 캐싱 이름 서버로 이미 구성되어 있습니다.
-
named또는named-chroot서비스가 실행 중입니다.
절차
/etc/named.conf파일을 편집하고 다음과 같이 변경합니다.options문에response-policy정의를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow response-policy의zone문에서 RPZ의 사용자 지정 이름을 설정할 수 있습니다. 그러나 다음 단계의 영역 정의에 동일한 이름을 사용해야 합니다.이전 단계에서 설정한 RPZ의
영역정의를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 설정 상태:
-
이 서버는
rpz.local이라는 RPZ의 기본 서버(유형 master)입니다. -
/var/named/rpz.local파일은 영역 파일입니다. 이 예에서와 같이 상대 경로를 설정하는 경우 이 경로는options문에서 디렉터리에 설정한디렉터리와 상대적입니다. -
allow-query에 정의된 모든 호스트는 이 RPZ를 쿼리할 수 있습니다. 또는 IP 범위 또는 BIND ACL(액세스 제어 목록) 닉네임을 지정하여 액세스를 제한합니다. - 호스트가 영역을 전송할 수 없습니다. 보조 서버를 설정하고 보조 서버의 IP 주소에 대해서만 영역 전송을 허용합니다.
-
이 서버는
/etc/named.conf파일의 구문을 확인합니다.named-checkconf
# named-checkconfCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
예를 들어 다음 콘텐츠를 사용하여
/var/named/rpz.local파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 영역 파일:
-
리소스 레코드의 기본 TTL(Time-to-live) 값을 10분으로 설정합니다. 시간 접미사가 없는 경우
hfor hour, BIND는 값을 초로 해석합니다. - 영역에 대한 세부 정보와 함께 필요한 권한 시작(SOA) 리소스 레코드가 포함되어 있습니다.
-
ns1.example.com을 이 영역에 대해 권한 있는 DNS 서버로 설정합니다. 기능을 위해 영역에는 하나 이상의 이름 서버(NS) 레코드가 필요합니다. 그러나 RFC 1912를 준수하기 위해서는 적어도 두 개의 이름 서버가 필요합니다. -
example.org및 이 도메인의 호스트에 대한NXDOMAIN오류를 반환합니다. -
이 도메인의
example.net및 호스트에 대한 쿼리를 삭제합니다.
전체 작업 및 예제 목록은 IETF 초안:RPZ(DNS Response Policy Zones) 를 참조하십시오.
-
리소스 레코드의 기본 TTL(Time-to-live) 값을 10분으로 설정합니다. 시간 접미사가 없는 경우
/var/named/rpz.local파일의 구문을 확인합니다.named-checkzone rpz.local /var/named/rpz.local
# named-checkzone rpz.local /var/named/rpz.local zone rpz.local/IN: loaded serial 2022070601 OKCopy to Clipboard Copied! Toggle word wrap Toggle overflow BIND를 다시 로드합니다.
systemctl reload named
# systemctl reload namedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
검증
RPZ에 구성된
example.org의 호스트를 해결하여NXDOMAIN오류를 반환합니다.dig @localhost www.example.org
# dig @localhost www.example.org ... ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 30286 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.RPZ에 구성된
example.net도메인의 호스트를 확인하여 쿼리를 삭제하십시오.dig @localhost www.example.net
# dig @localhost www.example.net ... ;; connection timed out; no servers could be reached ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.8. dnstap을 사용하여 DNS 쿼리 기록 링크 복사링크가 클립보드에 복사되었습니다!
네트워크 관리자는 DNS(Domain Name System) 세부 정보를 기록하여 DNS 트래픽 패턴을 분석하고 DNS 서버 성능을 모니터링하고 DNS 문제를 해결할 수 있습니다. 고급 방법으로 들어오는 이름 쿼리의 세부 정보를 모니터링하고 기록하려면 named 서비스에서 보낸 메시지를 기록하는 dnstap 인터페이스를 사용합니다. DNS 쿼리를 캡처하고 기록하여 웹사이트 또는 IP 주소에 대한 정보를 수집할 수 있습니다.
사전 요구 사항
-
bind-9.16.23-1패키지 또는 이후 버전이 설치되어 있습니다.
BIND 버전이 이미 설치되어 실행 중인 경우 새 버전의 BIND 를 추가하면 기존 버전이 덮어씁니다.
절차
options블록에서/etc/named.conf파일을 편집하여dnstap및 대상 파일을 활성화합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로깅할 DNS 트래픽 유형을 지정하려면
/etc/named.conf파일의dnstap블록에dnstap필터를 추가합니다. 다음 필터를 사용할 수 있습니다.-
auth- 권한 있는 영역 응답 또는 응답. -
클라이언트- 내부 클라이언트 쿼리 또는 응답. -
Forwarder- 쿼리 또는 응답에서 전달합니다. -
해결자- 반복적 해결 쿼리 또는 응답. -
업데이트- 동적 영역 업데이트 요청. -
All - 위 옵션 중
모두입니다. -
쿼리또는응답-쿼리또는응답키워드를 지정하지 않으면dnstap이 둘 다 기록합니다.
참고dnstap필터에는 dnstap {} 블록의dnstap {}블록의dnstap {(모든 | auth | client | forwardr | update ) [(쿼리 | 응답 ) ].;… }; dnstap {} 블록으로 구분되는 정의가 포함되어 있습니다-
기록된 패킷에서
dnstap유틸리티의 동작을 사용자 지정하려면 다음과 같이 추가 매개변수를 제공하여dnstap-output옵션을 수정합니다.-
size(제한되지 않음 | <size>) - 크기가 지정된 제한에 도달하면dnstap파일을 자동으로 롤백할 수 있습니다. -
버전(제한되지 않음 | <integer>) - 유지할 자동 롤오버된 파일 수를 지정합니다. 접미사(increment | timestamp ) - 롤아웃된 파일의 이름 지정 규칙을 선택합니다. 기본적으로 증가는.0으로 시작합니다. 또는 timestamp 값을 설정하여 UNIX타임스탬프를 사용할 수 있습니다.다음 예제에서는 자동
응답만 요청,클라이언트쿼리, 동적업데이트의 쿼리 및 응답 모두:Example: dnstap {auth response; client query; update;};Example: dnstap {auth response; client query; update;};Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
변경 사항을 적용하려면
named서비스를 다시 시작하십시오.systemctl restart named.service
# systemctl restart named.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 활성 로그에 대한 주기적인 롤아웃 구성
다음 예에서
cron스케줄러는 사용자가 편집한 스크립트의 콘텐츠를 하루에 한 번 실행합니다. 값이3인roll옵션은dnstap에서 최대 3개의 백업 로그 파일을 생성할 수 있음을 지정합니다. value3은dnstap-output변수의version매개 변수를 재정의하고 백업 로그 파일 수를 3으로 제한합니다. 또한 바이너리 로그 파일이 다른 디렉터리로 이동하여 이름이 변경되고 3개의 백업 로그 파일이 이미 존재하는 경우에도.2접미사에 도달하지 않습니다. 크기 제한에 따라 바이너리 로그를 자동으로 롤링하는 경우 이 단계를 건너뛸 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow dnstap-read유틸리티를 사용하여 사람이 읽을 수 있는 형식으로 로그를 처리하고 분석합니다.다음 예에서
dnstap-read유틸리티는YAML파일 형식으로 출력을 출력합니다.Example: dnstap-read -p /var/named/data/dnstap.bin
Example: dnstap-read -p /var/named/data/dnstap.binCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2장. 바인딩되지 않은 DNS 서버 설정 링크 복사링크가 클립보드에 복사되었습니다!
바인딩되지 않은 DNS 서버는 검증, 재귀 및 캐싱 DNS 확인자입니다. 또한 unbound 는 보안에 중점을 두고 있으며 여기에는 기본적으로 DNSSEC(Domain Name System Security Extensions)가 활성화되어 있습니다.
2.1. unbound를 캐싱 DNS 서버로 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 바인딩되지 않은 DNS 서비스는 확인 및 캐시 성공 및 실패한 조회입니다. 그러면 서비스는 캐시의 동일한 레코드에 대한 요청에 응답합니다.
절차
unbound패키지를 설치합니다.dnf install unbound
# dnf install unboundCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/cabundle/cabundle.conf파일을 편집하고server절에서 다음과 같이 변경합니다.인터페이스매개변수를 추가하여 바인딩되지 않은 서비스가 쿼리를 수신 대기하는 IP 주소를 구성합니다. 예를 들면 다음과 같습니다.interface: 127.0.0.1 interface: 192.0.2.1 interface: 2001:db8:1::1
interface: 127.0.0.1 interface: 192.0.2.1 interface: 2001:db8:1::1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 설정을 사용하면
unbound가 지정된 IPv4 및 IPv6 주소에서만 수신 대기합니다.인터페이스를 필수로 제한하면 인터넷과 같은 인증되지 않은 네트워크의 클라이언트가 이 DNS 서버로 쿼리를 보낼 수 없습니다.
access-control매개변수를 추가하여 클라이언트가 DNS 서비스를 쿼리할 수 있는 서브넷에서 구성합니다. 예를 들면 다음과 같습니다.access-control: 127.0.0.0/8 allow access-control: 192.0.2.0/24 allow access-control: 2001:db8:1::/64 allow
access-control: 127.0.0.0/8 allow access-control: 192.0.2.0/24 allow access-control: 2001:db8:1::/64 allowCopy to Clipboard Copied! Toggle word wrap Toggle overflow
unbound서비스를 원격으로 관리하기 위한 개인 키 및 인증서를 생성합니다.systemctl restart unbound-keygen
# systemctl restart unbound-keygenCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 단계를 건너뛰면 다음 단계의 구성을 확인하면 누락된 파일이 보고됩니다. 그러나
바인딩되지 않은 서비스는 누락된 경우 파일을 자동으로 생성합니다.구성 파일을 확인합니다.
unbound-checkconf
# unbound-checkconf unbound-checkconf: no errors in /etc/unbound/unbound.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 들어오는 DNS 트래픽을 허용하도록 firewalld 규칙을 업데이트합니다.
firewall-cmd --permanent --add-service=dns firewall-cmd --reload
# firewall-cmd --permanent --add-service=dns # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow unbound서비스를 활성화하고 시작합니다.systemctl enable --now unbound
# systemctl enable --now unboundCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
localhost인터페이스에서 수신 대기하는 바인딩되지 않은 DNS 서버를 쿼리하여 도메인을 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 처음으로 레코드를 쿼리한 후
unbound는 해당 캐시에 항목을 추가합니다.이전 쿼리를 반복합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 캐시된 항목으로 인해 항목이 만료될 때까지 동일한 레코드에 대한 추가 요청이 훨씬 더 빨라집니다.
3장. DHCP 서비스 제공 링크 복사링크가 클립보드에 복사되었습니다!
DHCP(Dynamic host Configuration Protocol)는 클라이언트에 IP 정보를 자동으로 할당하는 네트워크 프로토콜입니다. dhcpd 서비스를 설정하여 네트워크에서 DHCP 서버와 DHCP 릴레이를 제공할 수 있습니다.
3.1. 고정 IP 주소와 동적 IP 주소 지정의 차이점 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 장치가 고유한 네트워크 주소를 수신하는 방법을 관리하기 위해 다음 두 가지 기본 방법 중에서 선택할 수 있습니다.
- 고정 IP 주소 지정
장치에 고정 IP 주소를 할당하면 수동으로 변경하지 않는 한 이 주소는 시간이 지남에 따라 변경되지 않습니다. 원하는 경우 고정 IP 주소 지정을 사용합니다.
- DNS 및 인증 서버와 같은 서버에 대한 네트워크 주소 일관성을 보장하기 위해
- 다른 네트워크 인프라와 독립적으로 작동하는 대역 외 관리 장치를 사용하려면 다음을 수행합니다.
- 동적 IP 주소 지정
동적 IP 주소를 사용하도록 장치를 구성하면 시간이 지남에 따라 주소가 변경될 수 있습니다. 이러한 이유로 동적 주소는 호스트를 재부팅한 후 IP 주소가 다를 수 있으므로 네트워크에 연결되는 장치에 일반적으로 사용됩니다.
동적 IP 주소는 보다 유연하고 설정하기 쉽고 관리할 수 있습니다. DHCP는 호스트에 네트워크 구성을 동적으로 할당하는 기존 방법입니다.
정적 또는 동적 IP 주소를 사용할 시기를 정의하는 엄격한 규칙은 없습니다. 사용자의 요구, 기본 설정 및 네트워크 환경에 따라 달라집니다.
3.2. DHCP 트랜잭션 단계 링크 복사링크가 클립보드에 복사되었습니다!
DHCP는 Discovery, Offer, Request, Ackledgment, DORA 프로세스라는 네 단계로 작동합니다. DHCP는 이 프로세스를 사용하여 클라이언트에 IP 주소를 제공합니다.
- 검색
- DHCP 클라이언트는 메시지를 전송하여 네트워크에서 DHCP 서버를 검색합니다. 이 메시지는 네트워크 및 데이터 링크 계층에서 브로드캐스트됩니다.
- offer
- DHCP 서버는 클라이언트에서 메시지를 수신하고 DHCP 클라이언트에 IP 주소를 제공합니다. 이 메시지는 데이터 링크 계층에서 유니캐스트이지만 네트워크 계층에서 브로드캐스트됩니다.
- 요청
- DHCP 클라이언트는 제공된 IP 주소에 대한 DHCP 서버를 요청합니다. 이 메시지는 데이터 링크 계층에서 유니캐스트이지만 네트워크 계층에서 브로드캐스트됩니다.
- 감사 인사
- DHCP 서버에서 DHCP 클라이언트에 확인을 보냅니다. 이 메시지는 데이터 링크 계층에서 유니캐스트이지만 네트워크 계층에서 브로드캐스트됩니다. DHCP DORA 프로세스의 최종 메시지입니다.
3.3. DHCPv4 및 DHCPv6에 dhcpd를 사용할 때의 차이점 링크 복사링크가 클립보드에 복사되었습니다!
dhcpd 서비스는 한 서버에서 DHCPv4 및 DHCPv6를 모두 제공할 수 있도록 지원합니다. 그러나 각 프로토콜에 DHCP를 제공하려면 별도의 구성 파일이 있는 dhcpd 의 별도의 인스턴스가 필요합니다.
- DHCPv4
-
구성 파일:
/etc/dhcp/dhcpd.conf -
systemd 서비스 이름:
dhcpd
-
구성 파일:
- DHCPv6
-
구성 파일:
/etc/dhcp/dhcpd6.conf -
systemd 서비스 이름:
dhcpd6
-
구성 파일:
3.4. dhcpd 서비스의 리스 데이터베이스 링크 복사링크가 클립보드에 복사되었습니다!
DHCP 리스는 dhcpd 서비스에서 네트워크 주소를 클라이언트에 할당하는 기간입니다. dhcpd 서비스는 DHCP 리스를 다음 데이터베이스에 저장합니다.
-
DHCPv4의 경우:
/var/lib/dhcpd/dhcpd.leases -
DHCPv6의 경우:
/var/lib/dhcpd/dhcpd6.leases
데이터베이스 파일을 수동으로 업데이트하면 데이터베이스가 손상될 수 있습니다.
리스 데이터베이스에는 MAC(Media Access Control) 주소에 할당된 IP 주소 또는 리스가 만료되는 타임스탬프와 같이 할당된 리스에 대한 정보가 포함되어 있습니다. 리스 데이터베이스의 모든 타임스탬프는 UTC(Universal Time)에 있습니다.
dhcpd 서비스는 정기적으로 데이터베이스를 다시 생성합니다.
서비스는 기존 파일의 이름을 변경합니다.
-
/var/lib/dhcpd/dhcpd.leasesto/var/lib/dhcpd/dhcpd.leases~ -
/var/lib/dhcpd/dhcpd6.leasesto/var/lib/dhcpd/dhcpd6.leases~
-
-
이 서비스는 알려진 모든 리스를 새로 생성된
/var/lib/dhcpd/dhcpd.leases및/var/lib/dhcpd/dhcpd6.leases파일에 씁니다.
3.5. DHCPv6과 radvd 비교 링크 복사링크가 클립보드에 복사되었습니다!
IPv6 네트워크에서는 라우터 알림 메시지만 IPv6 기본 게이트웨이에 대한 정보를 제공합니다. 결과적으로 기본 게이트웨이 설정이 필요한 서브넷에서 DHCPv6을 사용하려면 라우터 알림 데몬(radvd)과 같은 라우터 알림 서비스를 추가로 구성해야 합니다.
radvd 서비스는 라우터 알림 패킷의 플래그를 사용하여 DHCPv6 서버의 가용성을 발표합니다.
다음 표에서는 DHCPv6 및 radvd 의 기능을 비교합니다.
| DHCPv6 | radvd | |
|---|---|---|
| 기본 게이트웨이에 대한 정보를 제공합니다. | 제공되지 않음 | 제공됨 |
| 개인 정보 보호를 위해 임의의 주소 보장 | 제공됨 | 제공되지 않음 |
| 추가 네트워크 구성 옵션 전송 | 제공됨 | 제공되지 않음 |
| 미디어 액세스 제어(MAC) 주소를 IPv6 주소에 매핑 | 제공됨 | 제공되지 않음 |
3.6. IPv6 라우터를 위한 radvd 서비스 구성 링크 복사링크가 클립보드에 복사되었습니다!
라우터 광고 데몬(radvd)은 IPv6 상태 비저장 자동 구성에 필요한 라우터 알림 메시지를 전송합니다. 이를 통해 사용자는 주소, 설정, 경로를 자동으로 구성하고 이러한 알림을 기반으로 기본 라우터를 선택할 수 있습니다.
radvd 서비스에서만 /64 접두사를 설정할 수 있습니다. 다른 접두사를 사용하려면 DHCPv6을 사용합니다.
사전 요구 사항
-
root사용자로 로그인합니다.
절차
radvd패키지를 설치합니다.dnf install radvd
# dnf install radvdCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/radvd.conf파일을 편집하고 다음 구성을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 설정은
2001:db8:0:1::/64서브넷의enp1s0장치에 라우터 알림 메시지를 전송하도록radvd를 구성합니다.AdvManaged flags설정은 클라이언트가 DHCP 서버에서 IP 주소를 수신해야 함을 정의하고,onAdv OtherConfigflag매개 변수는 클라이언트가 DHCP 서버에서 주소 이외의 정보를 수신해야 함을 정의합니다.선택 사항: 시스템이 부팅될 때
radvd가 자동으로 시작되도록 구성합니다.systemctl enable radvd
# systemctl enable radvdCopy to Clipboard Copied! Toggle word wrap Toggle overflow radvd서비스를 시작합니다.systemctl start radvd
# systemctl start radvdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
라우터 알림 패키지의 콘텐츠와 구성된 값
radvd를 표시합니다.radvdump
# radvdumpCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7. DHCP 서버의 네트워크 인터페이스 설정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 dhcpd 서비스는 서비스의 구성 파일에 정의된 서브넷에 IP 주소가 있는 네트워크 인터페이스에서만 요청합니다.
예를 들어 다음 시나리오에서는 dhcpd 가 enp0s1 네트워크 인터페이스에서만 수신 대기합니다.
-
/etc/dhcp/dhcpd.conf파일에 192.0.2.0/24 네트워크의서브넷정의만 있습니다. -
enp0s1네트워크 인터페이스는 192.0.2.0/24 서브넷에 연결되어 있습니다. -
enp7s0인터페이스는 다른 서브넷에 연결되어 있습니다.
DHCP 서버에 동일한 네트워크에 연결된 여러 네트워크 인터페이스가 포함되어 있는 경우에만 이 절차를 수행하지만 서비스는 특정 인터페이스에서만 수신 대기해야 합니다.
IPv4, IPv6 또는 두 프로토콜 모두에 DHCP를 제공할지 여부에 따라 다음 절차를 참조하십시오.
사전 요구 사항
-
root사용자로 로그인합니다. -
dhcp-server패키지가 설치되어 있어야 합니다.
절차
IPv4 네트워크의 경우:
/usr/lib/systemd/system/dhcpd.service파일을/etc/systemd/system/디렉터리에 복사합니다.cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/lib/systemd/system/dhcpd.service파일을 편집하지 마십시오.dhcp-server패키지의 향후 업데이트에서는 변경 사항을 재정의할 수 있습니다./etc/systemd/system/dhcpd.service파일을 편집하고 인터페이스의 이름을 추가합니다.dhcpd는ExecStart매개변수의 명령에 수신해야 합니다.ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는
dhcpd가enp0s1및enp7s0인터페이스에서만 수신 대기하도록 구성합니다.systemd관리자 구성을 다시 로드합니다.systemctl daemon-reload
# systemctl daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow dhcpd서비스를 다시 시작합니다.systemctl restart dhcpd.service
# systemctl restart dhcpd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
IPv6 네트워크의 경우:
/usr/lib/systemd/system/dhcpd6.service파일을/etc/systemd/system/디렉터리에 복사합니다.cp /usr/lib/systemd/system/dhcpd6.service /etc/systemd/system/
# cp /usr/lib/systemd/system/dhcpd6.service /etc/systemd/system/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/lib/systemd/system/dhcpd6.service파일을 편집하지 마십시오.dhcp-server패키지의 향후 업데이트에서는 변경 사항을 재정의할 수 있습니다./etc/systemd/system/dhcpd6.service파일을 편집하고ExecStart매개 변수의 명령에dhcpd가 수신해야 하는 인터페이스의 이름을 추가합니다.ExecStart=/usr/sbin/dhcpd -f -6 -cf /etc/dhcp/dhcpd6.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0
ExecStart=/usr/sbin/dhcpd -f -6 -cf /etc/dhcp/dhcpd6.conf -user dhcpd -group dhcpd --no-pid $DHCPDARGS enp0s1 enp7s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는
dhcpd가enp0s1및enp7s0인터페이스에서만 수신 대기하도록 구성합니다.systemd관리자 구성을 다시 로드합니다.systemctl daemon-reload
# systemctl daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow dhcpd6서비스를 다시 시작합니다.systemctl restart dhcpd6.service
# systemctl restart dhcpd6.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.8. DHCP 서버에 직접 연결된 서브넷의 DHCP 서비스 설정 링크 복사링크가 클립보드에 복사되었습니다!
DHCP 서버가 DHCP 요청에 응답해야 하는 서브넷에 직접 연결된 경우 다음 절차를 사용하십시오. 서버의 네트워크 인터페이스에 이 서브넷의 IP 주소가 할당된 경우입니다.
IPv4, IPv6 또는 두 프로토콜 모두에 DHCP를 제공할지 여부에 따라 다음 절차를 참조하십시오.
사전 요구 사항
-
root사용자로 로그인합니다. -
dhcp-server패키지가 설치되어 있어야 합니다.
절차
IPv4 네트워크의 경우:
/etc/dhcp/dhcpd.conf파일을 편집합니다.선택 사항: 다른 지시문에 이러한 설정이 포함되지 않은 경우
dhcpd에서 기본값으로 사용하는 글로벌 매개 변수를 추가합니다.option domain-name "example.com"; default-lease-time 86400;
option domain-name "example.com"; default-lease-time 86400;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
example.com으로 연결의 기본 도메인 이름을 설정하고 기본 리스 시간을86400초(1일)로 설정합니다.새 줄에
authoritative문을 추가합니다.authoritative;
authoritative;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요authoritative문이 없으면dhcpd서비스는 클라이언트에서 풀 외부에 있는 주소를 요청하는 경우DHCPNAK를 사용하여DHCPREQUEST메시지를 응답하지 않습니다.서버 인터페이스에 직접 연결된 각 IPv4 서브넷에 대해
서브넷선언을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 192.0.2.0/24 네트워크에 대한 서브넷 선언을 추가합니다. 이 구성을 사용하면 DHCP 서버에서 이 서브넷에서 DHCP 요청을 전송하는 클라이언트에 다음 설정을 할당합니다.
-
range매개변수에 정의된 범위에서 사용 가능한 IPv4 주소 -
이 서브넷에 대한 DNS 서버의 IP:
192.0.2.1 -
이 서브넷의 기본 게이트웨이:
192.0.2.1 -
이 서브넷의 브로드캐스트 주소:
192.0.2.255 -
이 서브넷의 클라이언트는 최대 임대 시간입니다. 이 서브넷의 클라이언트는 IP를 해제하고 서버에 새 요청을 보냅니다.
172800초 (2일)
-
선택 사항: 시스템이 부팅될 때
dhcpd가 자동으로 시작되도록 구성합니다.systemctl enable dhcpd
# systemctl enable dhcpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow dhcpd서비스를 시작합니다.systemctl start dhcpd
# systemctl start dhcpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
IPv6 네트워크의 경우:
/etc/dhcp/dhcpd6.conf파일을 편집합니다.선택 사항: 다른 지시문에 이러한 설정이 포함되지 않은 경우
dhcpd에서 기본값으로 사용하는 글로벌 매개 변수를 추가합니다.option dhcp6.domain-search "example.com"; default-lease-time 86400;
option dhcp6.domain-search "example.com"; default-lease-time 86400;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
example.com으로 연결의 기본 도메인 이름을 설정하고 기본 리스 시간을86400초(1일)로 설정합니다.새 줄에
authoritative문을 추가합니다.authoritative;
authoritative;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요authoritative문이 없으면dhcpd서비스는 클라이언트에서 풀 외부에 있는 주소를 요청하는 경우DHCPNAK를 사용하여DHCPREQUEST메시지를 응답하지 않습니다.서버 인터페이스에 직접 연결된 각 IPv6 서브넷에 대해
서브넷선언을 추가합니다.subnet6 2001:db8:0:1::/64 { range6 2001:db8:0:1::20 2001:db8:0:1::100; option dhcp6.name-servers 2001:db8:0:1::1; max-lease-time 172800; }subnet6 2001:db8:0:1::/64 { range6 2001:db8:0:1::20 2001:db8:0:1::100; option dhcp6.name-servers 2001:db8:0:1::1; max-lease-time 172800; }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 2001:db8:0:1::/64 네트워크에 대한 서브넷 선언을 추가합니다. 이 구성을 사용하면 DHCP 서버에서 이 서브넷에서 DHCP 요청을 전송하는 클라이언트에 다음 설정을 할당합니다.
-
range6매개변수에 정의된 범위에서 사용 가능한 IPv6 주소입니다. -
이 서브넷의 DNS 서버의 IP는
2001:db8:0:1::1입니다. 이 서브넷의 클라이언트가 IP를 해제한 후 서버에 새 요청을 전송하는 최대 리스 시간은
172800초(2일)입니다.IPv6에서는 라우터 알림 메시지를 사용하여 기본 게이트웨이를 식별해야 합니다.
-
선택 사항: 시스템이 부팅될 때
dhcpd6이 자동으로 시작되도록 구성합니다.systemctl enable dhcpd6
# systemctl enable dhcpd6Copy to Clipboard Copied! Toggle word wrap Toggle overflow dhcpd6서비스를 시작합니다.systemctl start dhcpd6
# systemctl start dhcpd6Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.9. DHCP 서버에 직접 연결되지 않은 서브넷의 DHCP 서비스 설정 링크 복사링크가 클립보드에 복사되었습니다!
DHCP 서버가 DHCP 요청에 응답해야 하는 서브넷에 직접 연결되지 않은 경우 다음 절차를 사용하십시오. 이는 서버가 제공해야 하는 서브넷에 직접 연결된 DHCP 서버의 인터페이스가 없기 때문에 DHCP 릴레이 에이전트가 DHCP 서버로 요청을 전달하는 경우입니다.
IPv4, IPv6 또는 두 프로토콜 모두에 DHCP를 제공할지 여부에 따라 다음 절차를 참조하십시오.
사전 요구 사항
-
root사용자로 로그인합니다. -
dhcp-server패키지가 설치되어 있어야 합니다.
절차
IPv4 네트워크의 경우:
/etc/dhcp/dhcpd.conf파일을 편집합니다.선택 사항: 다른 지시문에 이러한 설정이 포함되지 않은 경우
dhcpd에서 기본값으로 사용하는 글로벌 매개 변수를 추가합니다.option domain-name "example.com"; default-lease-time 86400;
option domain-name "example.com"; default-lease-time 86400;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
example.com으로 연결의 기본 도메인 이름을 설정하고 기본 리스 시간을86400초(1일)로 설정합니다.새 줄에
authoritative문을 추가합니다.authoritative;
authoritative;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요authoritative문이 없으면dhcpd서비스는 클라이언트에서 풀 외부에 있는 주소를 요청하는 경우DHCPNAK를 사용하여DHCPREQUEST메시지를 응답하지 않습니다.서버 인터페이스에 직접 연결되지 않은 IPv4 서브넷에 대해 다음과 같은
공유 네트워크선언을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는 192.0.2.0/24 및 198.51.100.0/24 네트워크에 대한
서브넷선언이 포함된 공유 네트워크 선언을 추가합니다. 이 구성을 사용하면 DHCP 서버에서 다음 서브넷 중 하나에서 DHCP 요청을 전송하는 클라이언트에 다음 설정을 할당합니다.-
두 서브넷 모두에서 클라이언트의 DNS 서버의 IP는
192.0.2.1입니다. -
클라이언트가 요청을 보낸 서브넷에 따라
range매개변수에 정의된 범위에서 사용 가능한 IPv4 주소입니다. -
기본 게이트웨이는 클라이언트가 요청을 보낸 서브넷에 따라
192.0.2.1또는198.51.100.1입니다.
-
두 서브넷 모두에서 클라이언트의 DNS 서버의 IP는
서버가 직접 연결되고 위의
shared-network에 지정된 원격 서브넷에 도달하는 데 사용되는 서브넷에 서브넷 선언을 추가합니다.subnet 203.0.113.0 netmask 255.255.255.0 { }subnet 203.0.113.0 netmask 255.255.255.0 { }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고서버가 이 서브넷에 DHCP 서비스를 제공하지 않으면 예제에 표시된 대로
서브넷선언이 비어 있어야 합니다. 직접 연결된 서브넷에 대한 선언이 없으면dhcpd가 시작되지 않습니다.
선택 사항: 시스템이 부팅될 때
dhcpd가 자동으로 시작되도록 구성합니다.systemctl enable dhcpd
# systemctl enable dhcpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow dhcpd서비스를 시작합니다.systemctl start dhcpd
# systemctl start dhcpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
IPv6 네트워크의 경우:
/etc/dhcp/dhcpd6.conf파일을 편집합니다.선택 사항: 다른 지시문에 이러한 설정이 포함되지 않은 경우
dhcpd에서 기본값으로 사용하는 글로벌 매개 변수를 추가합니다.option dhcp6.domain-search "example.com"; default-lease-time 86400;
option dhcp6.domain-search "example.com"; default-lease-time 86400;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
example.com으로 연결의 기본 도메인 이름을 설정하고 기본 리스 시간을86400초(1일)로 설정합니다.새 줄에
authoritative문을 추가합니다.authoritative;
authoritative;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요authoritative문이 없으면dhcpd서비스는 클라이언트에서 풀 외부에 있는 주소를 요청하는 경우DHCPNAK를 사용하여DHCPREQUEST메시지를 응답하지 않습니다.서버 인터페이스에 직접 연결되지 않은 IPv6 서브넷에 대해 다음과 같은
공유 네트워크선언을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 2001:db8:0:1::1:0/120 및 2001:db8:0:1::2:0/120 네트워크 둘 다에
subnet6선언이 포함된 공유 네트워크 선언을 추가합니다. 이 구성을 사용하면 DHCP 서버에서 다음 서브넷 중 하나에서 DHCP 요청을 전송하는 클라이언트에 다음 설정을 할당합니다.-
두 서브넷 모두에서 클라이언트의 DNS 서버의 IP는
2001:db8:0:1::1:1입니다. 클라이언트가 요청을 보낸 서브넷에 따라
range6매개변수에 정의된 범위에서 사용 가능한 IPv6 주소입니다.IPv6에서는 라우터 알림 메시지를 사용하여 기본 게이트웨이를 식별해야 합니다.
-
두 서브넷 모두에서 클라이언트의 DNS 서버의 IP는
서버가 직접 연결되고 위의
shared-network에 지정된 원격 서브넷에 도달하는 데 사용되는 서브넷에subnet6선언을 추가합니다.subnet6 2001:db8:0:1::50:0/120 { }subnet6 2001:db8:0:1::50:0/120 { }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고서버가 이 서브넷에 DHCP 서비스를 제공하지 않으면 예제에 표시된 대로
subnet6선언이 비어 있어야 합니다. 직접 연결된 서브넷에 대한 선언이 없으면dhcpd가 시작되지 않습니다.
선택 사항: 시스템이 부팅될 때
dhcpd6이 자동으로 시작되도록 구성합니다.systemctl enable dhcpd6
# systemctl enable dhcpd6Copy to Clipboard Copied! Toggle word wrap Toggle overflow dhcpd6서비스를 시작합니다.systemctl start dhcpd6
# systemctl start dhcpd6Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.10. DHCP를 사용하여 호스트에 고정 주소 할당 링크 복사링크가 클립보드에 복사되었습니다!
호스트 선언을 사용하여 호스트의 MAC(Media Access Control) 주소에 고정 IP 주소를 할당하도록 DHCP 서버를 구성할 수 있습니다. 예를 들어 이 방법을 사용하여 항상 동일한 IP 주소를 서버 또는 네트워크 장치에 할당합니다.
IPv4, IPv6 또는 두 프로토콜 모두에 대해 고정 주소를 구성할지 여부에 따라 다음 절차를 참조하십시오.
사전 요구 사항
-
dhcpd서비스가 구성되어 실행 중입니다. -
root사용자로 로그인합니다.
절차
IPv4 네트워크의 경우:
/etc/dhcp/dhcpd.conf파일을 편집합니다.호스트선언을 추가합니다.host server.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address 192.0.2.130; }host server.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address 192.0.2.130; }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 DHCP 서버를 구성하여 항상
192.0.2.130IP 주소를52:54:00:72:2f:6eMAC 주소가 있는 호스트에 할당합니다.dhcpd서비스는호스트선언의 이름이아닌 고정 주소매개변수에 지정된 MAC 주소로 시스템을 식별합니다. 결과적으로 이 이름을 다른호스트선언과 일치하지 않는 문자열로 설정할 수 있습니다. 여러 네트워크에 대해 동일한 시스템을 구성하려면 다른 이름을 사용합니다. 그러지 않으면dhcpd가 시작되지 않습니다.-
선택 사항: 이
호스트에 고유한 호스트선언에 설정을 추가합니다.
dhcpd서비스를 다시 시작합니다.systemctl start dhcpd
# systemctl start dhcpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
IPv6 네트워크의 경우:
/etc/dhcp/dhcpd6.conf파일을 편집합니다.호스트선언을 추가합니다.host server.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address6 2001:db8:0:1::200; }host server.example.com { hardware ethernet 52:54:00:72:2f:6e; fixed-address6 2001:db8:0:1::200; }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 DHCP 서버가 항상
2001:db8:0:1::200IP 주소를52:54:00:72:2f:6eMAC 주소가 있는 호스트에 할당하도록 구성합니다.dhcpd서비스는호스트선언의 이름이 아닌fixed-address6매개변수에 지정된 MAC 주소로 시스템을 식별합니다. 따라서 다른호스트선언에 고유한 경우 이 이름을 임의의 문자열로 설정할 수 있습니다. 여러 네트워크에 대해 동일한 시스템을 구성하려면 다른 이름을 사용합니다. 그러지 않으면dhcpd가 시작되지 않습니다.-
선택 사항: 이
호스트에 고유한 호스트선언에 설정을 추가합니다.
dhcpd6서비스를 다시 시작합니다.systemctl start dhcpd6
# systemctl start dhcpd6Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.12. 손상된 리스 데이터베이스 복원 링크 복사링크가 클립보드에 복사되었습니다!
DHCP 서버가 Corrupt lease file - 가능한 데이터 손실 과 같은 리스 데이터베이스와 관련된 오류를 기록하는 경우, 생성된 dhcpd 서비스 사본에서 리스 데이터베이스를 복원할 수 있습니다. 이 복사본은 데이터베이스의 최신 상태를 반영하지 않을 수 있습니다.
백업으로 교체하지 않고 리스 데이터베이스를 제거하면 현재 할당된 리스에 대한 모든 정보가 손실됩니다. 결과적으로 DHCP 서버는 이전에 다른 호스트에 할당되었으며 아직 만료되지 않은 클라이언트에 리스를 할당할 수 있었습니다. 이로 인해 IP 충돌이 발생합니다.
DHCPv4, DHCPv6 또는 두 데이터베이스를 모두 복원할지 여부에 따라 다음 절차를 참조하십시오.
사전 요구 사항
-
root사용자로 로그인합니다. - 리스 데이터베이스가 손상되었습니다.
절차
DHCPv4 리스 데이터베이스 복원:
dhcpd서비스를 중지합니다.systemctl stop dhcpd
# systemctl stop dhcpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 손상된 리스 데이터베이스의 이름을 변경합니다.
mv /var/lib/dhcpd/dhcpd.leases /var/lib/dhcpd/dhcpd.leases.corrupt
# mv /var/lib/dhcpd/dhcpd.leases /var/lib/dhcpd/dhcpd.leases.corruptCopy to Clipboard Copied! Toggle word wrap Toggle overflow lease 데이터베이스를 새로 고칠 때
dhcp서비스에서 생성한 리스 데이터베이스의 복사본을 복원합니다.cp -p /var/lib/dhcpd/dhcpd.leases~ /var/lib/dhcpd/dhcpd.leases
# cp -p /var/lib/dhcpd/dhcpd.leases~ /var/lib/dhcpd/dhcpd.leasesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요최근 리스 데이터베이스 백업이 있는 경우 이 백업을 대신 복원합니다.
dhcpd서비스를 시작합니다.systemctl start dhcpd
# systemctl start dhcpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
DHCPv6 리스 데이터베이스 복원:
dhcpd6서비스를 중지합니다.systemctl stop dhcpd6
# systemctl stop dhcpd6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 손상된 리스 데이터베이스의 이름을 변경합니다.
mv /var/lib/dhcpd/dhcpd6.leases /var/lib/dhcpd/dhcpd6.leases.corrupt
# mv /var/lib/dhcpd/dhcpd6.leases /var/lib/dhcpd/dhcpd6.leases.corruptCopy to Clipboard Copied! Toggle word wrap Toggle overflow lease 데이터베이스를 새로 고칠 때
dhcp서비스에서 생성한 리스 데이터베이스의 복사본을 복원합니다.cp -p /var/lib/dhcpd/dhcpd6.leases~ /var/lib/dhcpd/dhcpd6.leases
# cp -p /var/lib/dhcpd/dhcpd6.leases~ /var/lib/dhcpd/dhcpd6.leasesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요최근 리스 데이터베이스 백업이 있는 경우 이 백업을 대신 복원합니다.
dhcpd6서비스를 시작합니다.systemctl start dhcpd6
# systemctl start dhcpd6Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.13. DHCP 릴레이 에이전트 설정 링크 복사링크가 클립보드에 복사되었습니다!
DHCP Relay Agent(dhcrelay)를 사용하면 DHCP 서버가 없는 서브넷에서 다른 서브넷의 DHCP 서버로 DHCP 및 BOOTP 요청을 릴레이할 수 있습니다. DHCP 클라이언트에서 정보를 요청하면 DHCP 릴레이 에이전트는 지정된 DHCP 서버 목록으로 요청을 전달합니다. DHCP 서버에서 응답을 반환하면 DHCP 릴레이 에이전트는 이 요청을 클라이언트에 전달합니다.
IPv4, IPv6 또는 두 프로토콜 모두에 대한 DHCP 릴레이를 설정할지 여부에 따라 다음 절차를 참조하십시오.
사전 요구 사항
-
root사용자로 로그인합니다.
절차
IPv4 네트워크의 경우:
dhcp-relay패키지를 설치합니다.dnf install dhcp-relay
# dnf install dhcp-relayCopy to Clipboard Copied! Toggle word wrap Toggle overflow /lib/systemd/system/dhcrelay.service파일을/etc/systemd/system/디렉터리에 복사합니다.cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/
# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/lib/systemd/system/dhcrelay.service파일을 편집하지 마십시오.dhcp-relay패키지의 향후 업데이트로 인해 변경 사항을 재정의할 수 있습니다./etc/systemd/system/dhcrelay.service파일을 편집하고 서브넷을 담당하는 DHCPv4 서버의 IP 주소 목록과 함께-i 인터페이스매개 변수를 추가합니다.ExecStart=/usr/sbin/dhcrelay -d --no-pid -i enp1s0 192.0.2.1
ExecStart=/usr/sbin/dhcrelay -d --no-pid -i enp1s0 192.0.2.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 추가 매개 변수를 사용하여
dhcrelay는enp1s0인터페이스에서 DHCPv4 요청을 수신 대기하고 IP192.0.2.1을 사용하여 DHCP 서버로 전달합니다.systemd관리자 구성을 다시 로드합니다.systemctl daemon-reload
# systemctl daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 시스템이 부팅될 때
dhcrelay서비스가 시작되도록 구성합니다.systemctl enable dhcrelay.service
# systemctl enable dhcrelay.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow dhcrelay서비스를 시작합니다.systemctl start dhcrelay.service
# systemctl start dhcrelay.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
IPv6 네트워크의 경우:
dhcp-relay패키지를 설치합니다.dnf install dhcp-relay
# dnf install dhcp-relayCopy to Clipboard Copied! Toggle word wrap Toggle overflow /lib/systemd/system/dhcrelay.service파일을/etc/systemd/system/디렉터리에 복사하고 파일 이름을dhcrelay6.service로 복사합니다.cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay6.service
# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay6.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/lib/systemd/system/dhcrelay.service파일을 편집하지 마십시오.dhcp-relay패키지의 향후 업데이트로 인해 변경 사항을 재정의할 수 있습니다./etc/systemd/system/dhcrelay6.service파일을 편집하고-l receiving_interface및-u outgoing_interface매개변수를 추가합니다.ExecStart=/usr/sbin/dhcrelay -d --no-pid -l enp1s0 -u enp7s0
ExecStart=/usr/sbin/dhcrelay -d --no-pid -l enp1s0 -u enp7s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 추가 매개 변수를 사용하여
dhcrelay는enp1s0인터페이스에서 DHCPv6 요청을 수신 대기하고enp7s0인터페이스에 연결된 네트워크로 전달합니다.systemd관리자 구성을 다시 로드합니다.systemctl daemon-reload
# systemctl daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 시스템이 부팅될 때
dhcrelay6서비스가 시작되도록 구성합니다.systemctl enable dhcrelay6.service
# systemctl enable dhcrelay6.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow dhcrelay6서비스를 시작합니다.systemctl start dhcrelay6.service
# systemctl start dhcrelay6.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow