네트워킹 인프라 서비스 관리
네트워킹 인프라 서비스 관리 가이드
초록
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서비스를 실행합니다.관리자는 change-root 기능을 사용하여 프로세스의 루트 디렉터리와 하위 프로세스가
/디렉터리와 다르다는 것을 정의할 수 있습니다.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변경 루트 환경에서 BIND를 실행하려면
bind-chroot패키지를 설치합니다.# dnf install bind-chrootSELinux가
강제모드인 호스트에서 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; };allow-query문을 업데이트하여 클라이언트가 이 DNS 서버를 쿼리할 수 있는 IP 주소 및 범위를 구성합니다.allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; };allow-recursion문을 추가하여 BIND에서 재귀 쿼리를 허용하는 IP 주소 및 범위를 정의합니다.allow-recursion { localhost; 192.0.2.0/24; 2001:db8:1::/64; };주의서버의 공용 IP 주소에 대한 재귀를 허용하지 마십시오. 그렇지 않으면 서버가 대규모 DNS 조정 공격의 일부가 될 수 있습니다.
기본적으로 BIND는 루트 서버에서 권한 있는 DNS 서버로 반복적으로 쿼리하여 쿼리를 확인합니다. 또는 공급자와 같은 다른 DNS 서버에 쿼리를 전달하도록 BIND를 구성할 수 있습니다. 이 경우 BIND에서 쿼리를 전달해야 하는 DNS 서버의 IP 주소 목록을 사용하여
forwarders문을 추가합니다.forwarders { 198.51.100.1; 203.0.113.5; };역추적 동작으로 BIND는 전달자 서버가 응답하지 않는 경우 쿼리를 재귀적으로 확인합니다. 이 동작을 비활성화하려면
forward only;문을 추가합니다.
/etc/named.conf파일의 구문을 확인합니다.# named-checkconf명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
들어오는 DNS 트래픽을 허용하도록
firewalld규칙을 업데이트합니다.# firewall-cmd --permanent --add-service=dns # firewall-cmd --reloadBIND를 시작하고 활성화합니다.
# systemctl enable --now named변경 루트 환경에서 BIND를 실행하려면
systemctl enable --now named-chroot명령을 사용하여 서비스를 활성화하고 시작합니다.
검증
새로 설정된 DNS 서버를 사용하여 도메인을 확인합니다.
# dig @localhost www.example.org ... www.example.org. 86400 IN A 198.51.100.34 ;; Query time: 917 msec ...이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.처음으로 레코드를 쿼리한 후 BIND에서 해당 캐시에 항목을 추가합니다.
이전 쿼리를 반복합니다.
# dig @localhost www.example.org ... www.example.org. 85332 IN A 198.51.100.34 ;; Query time: 1 msec ...캐시된 항목으로 인해 항목이 만료될 때까지 동일한 레코드에 대한 추가 요청이 훨씬 더 빨라집니다.
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문에 추가합니다. 예를 들면 다음과 같습니다.logging { ... category notify { zone_transfer_log; }; category xfer-in { zone_transfer_log; }; category xfer-out { zone_transfer_log; }; channel zone_transfer_log { file "/var/named/log/transfer.log" versions 10 size 50m; print-time yes; print-category yes; print-severity yes; severity info; }; ... };이 예제 구성을 사용하면 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//etc/named.conf파일의 구문을 확인합니다.# named-checkconf명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
BIND를 다시 시작합니다.
# systemctl restart named변경 루트 환경에서 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
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의 닉네임을 지원하는 문에 사용합니다. 예를 들면 다음과 같습니다.
allow-query { internal-networks; dmz-networks; }; allow-recursion { internal-networks; };
/etc/named.conf파일의 구문을 확인합니다.# named-checkconf명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
BIND를 다시 로드합니다.
# systemctl reload named변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
검증
구성된 ACL을 사용하는 기능을 트리거하는 작업을 실행합니다. 예를 들어 이 절차의 ACL에서는 정의된 IP 주소의 재귀 쿼리만 허용합니다. 이 경우 ACL 정의에 없는 호스트에 다음 명령을 입력하여 외부 도메인 확인을 시도합니다.
# dig +short @192.0.2.1 www.example.com명령에서 출력을 반환하지 않으면 BIND가 액세스를 거부하고 ACL이 작동합니다. 클라이언트에 대한 자세한 출력의 경우
+short옵션 없이 명령을 사용합니다.# dig @192.0.2.1 www.example.com ... ;; WARNING: recursion requested but not available ...
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
관리자는 가독성을 높이기 위해 일반적으로 영역 파일의 레코드를 together(;)으로 시작하는 주석이 포함된 여러 행으로 분할합니다. SOA 레코드를 분할하는 경우 이 레코드를 함께 유지합니다.
@ IN SOA ns1.example.com. hostmaster.example.com. (
2022070601 ; serial number
1d ; refresh period
3h ; retry period
3d ; expire time
3h ) ; minimum TTL
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파일에 영역 정의를 추가합니다.zone "example.com" { type master; file "example.com.zone"; allow-query { any; }; allow-transfer { none; }; };이러한 설정은 다음을 정의합니다.
-
example.com영역의 기본 서버(type master)로 이 서버를 사용합니다. -
/var/named/example.com.zone파일은 영역 파일입니다. 이 예에서와 같이 상대 경로를 설정하는 경우 이 경로는options문에서 디렉터리에 설정한디렉터리와 상대적입니다. - 모든 호스트에서 이 영역을 쿼리할 수 있습니다. 또는 IP 범위 또는 BIND ACL(액세스 제어 목록) 닉네임을 지정하여 액세스를 제한합니다.
- 호스트가 영역을 전송할 수 없습니다. 보조 서버를 설정하고 보조 서버의 IP 주소에 대해서만 영역 전송을 허용합니다.
-
/etc/named.conf파일의 구문을 확인합니다.# named-checkconf명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
예를 들어 다음 콘텐츠를 사용하여
/var/named/example.com.zone파일을 만듭니다.$TTL 8h @ IN SOA ns1.example.com. hostmaster.example.com. ( 2022070601 ; serial number 1d ; refresh period 3h ; retry period 3d ; expire time 3h ) ; minimum TTL IN NS ns1.example.com. IN MX 10 mail.example.com. www IN A 192.0.2.30 www IN AAAA 2001:db8:1::30 ns1 IN A 192.0.2.1 ns1 IN AAAA 2001:db8:1::1 mail IN A 192.0.2.20 mail IN AAAA 2001:db8:1::20이 영역 파일:
-
리소스 레코드의 기본 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/var/named/example.com.zone파일의 구문을 확인합니다.# named-checkzone example.com /var/named/example.com.zone zone example.com/IN: loaded serial 2022070601 OKBIND를 다시 로드합니다.
# systemctl reload named변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
검증
example.com영역에서 다른 레코드를 쿼리하고 출력이 영역 파일에 구성한 레코드와 일치하는지 확인합니다.# dig +short @localhost AAAA www.example.com 2001:db8:1::30 # dig +short @localhost NS example.com ns1.example.com. # dig +short @localhost A ns1.example.com 192.0.2.1이 예제에서는 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파일에 영역 정의를 추가합니다.zone "2.0.192.in-addr.arpa" { type master; file "2.0.192.in-addr.arpa.zone"; allow-query { any; }; allow-transfer { none; }; };이러한 설정은 다음을 정의합니다.
-
이 서버는
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명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
예를 들어 다음 콘텐츠를 사용하여
/var/named/2.0.192.in-addr.arpa.zone파일을 만듭니다.$TTL 8h @ IN SOA ns1.example.com. hostmaster.example.com. ( 2022070601 ; serial number 1d ; refresh period 3h ; retry period 3d ; expire time 3h ) ; minimum TTL IN NS ns1.example.com. 1 IN PTR ns1.example.com. 30 IN PTR www.example.com.이 영역 파일:
-
리소스 레코드의 기본 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/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 OKBIND를 다시 로드합니다.
# systemctl reload named변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
검증
역방향 영역에서 다른 레코드를 쿼리하고 출력이 영역 파일에 구성한 레코드와 일치하는지 확인합니다.
# dig +short @localhost -x 192.0.2.1 ns1.example.com. # dig +short @localhost -x 192.0.2.30 www.example.com.이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.
1.5.4. BIND 영역 파일 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
예를 들어 서버의 IP 주소가 변경되면 특정 상황에서는 영역 파일을 업데이트해야 합니다. 여러 DNS 서버가 영역을 담당하는 경우 기본 서버에서만 이 절차를 수행합니다. 영역 복사본을 저장하는 다른 DNS 서버는 영역 전송을 통해 업데이트를 수신합니다.
사전 요구 사항
- 영역이 구성되어 있습니다.
-
named또는named-chroot서비스가 실행 중입니다.
프로세스
선택 사항:
/etc/named.conf파일의 영역 파일의 경로를 식별합니다.options { ... directory "/var/named"; } zone "example.com" { ... file "example.com.zone"; };영역 정의의
file문에서 영역 파일의 경로를 찾습니다. 상대 경로는options문의 디렉터리에 설정된디렉토리를기준으로 합니다.영역 파일을 편집합니다.
- 필요한 변경을 수행합니다.
권한 시작(SOA) 레코드에서 일련 번호를 늘립니다.
중요일련 번호가 이전 값보다 작거나 같으면 보조 서버는 영역의 복사본을 업데이트하지 않습니다.
영역 파일의 구문을 확인합니다.
# named-checkzone example.com /var/named/example.com.zone zone example.com/IN: loaded serial 2022062802 OKBIND를 다시 로드합니다.
# systemctl reload named변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
검증
추가, 수정 또는 제거된 레코드를 쿼리합니다. 예를 들면 다음과 같습니다.
# dig +short @localhost A ns2.example.com 192.0.2.2이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.
1.5.5. 자동화된 키 생성 및 영역 유지 관리 기능을 사용한 DNSSEC 영역 서명 링크 복사링크가 클립보드에 복사되었습니다!
DNSSEC(Domain Name System Security extensions)로 영역에 서명하여 인증 및 데이터 무결성을 보장할 수 있습니다. 이러한 영역에는 추가 리소스 레코드가 포함되어 있습니다. 클라이언트는 이를 사용하여 영역 정보의 진위 여부를 확인할 수 있습니다.
영역에 DNSSEC 정책 기능을 활성화하면 BIND에서 다음 작업을 자동으로 수행합니다.
- 키 생성
- 영역에 서명
- 키를 다시 서명하고 주기적으로 교체하는 등 영역을 유지 관리합니다.
외부 DNS 서버를 활성화하여 영역의 진위 여부를 확인하려면 영역의 공개 키를 상위 영역에 추가해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 도메인 공급자 또는 레지스트리에 문의하십시오.
이 절차에서는 BIND에서 기본 DNSSEC 정책을 사용합니다. 이 정책은 단일 ECDSAP256SHA 키 서명을 사용합니다. 또는 사용자 지정 키, 알고리즘 및 타이밍을 사용하는 고유한 정책을 생성합니다.
사전 요구 사항
-
bind패키지가 설치되어 있습니다. - DNSSEC를 활성화할 영역이 구성되어 있습니다.
-
named또는named-chroot서비스가 실행 중입니다. - 서버는 시간 서버와 시간을 동기화합니다. DNSSEC 검증에는 정확한 시스템 시간이 중요합니다.
프로세스
/etc/named.conf파일을 편집하고dnssec-policy default;및inline-signing yes;를 DNSSEC 활성화하려는 영역에 추가합니다.zone "example.com" { ... dnssec-policy default; inline-signing yes; };BIND를 다시 로드합니다.
# systemctl reload named변경 루트 환경에서 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 example.com. IN DS 61141 13 2 3E184188CF6D2521EDFDC3F07CFEE8D0195AACBD85E68BAE0620F638B4B1B027DNSKEY 형식:
# grep DNSKEY /var/named/Kexample.com.+013+61141.key example.com. 3600 IN DNSKEY 257 3 13 sjzT3jNEp120aSO4mPEHHSkReHUf7AABNnT8hNRTzD5cKMQSjDJin2I3 5CaKVcWO1pm+HltxUEt+X9dfp8OZkg==
- 영역의 공개 키를 상위 영역에 추가하도록 요청합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 도메인 공급자 또는 레지스트리에 문의하십시오.
검증
DNSSEC 서명을 활성화한 영역에서 자신의 DNS 서버를 쿼리합니다.
# 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==이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.공개 키가 상위 영역에 추가되고 다른 서버로 전파된 후 서버가 쿼리의 인증된 데이터(
ad) 플래그를 서명된 영역에 설정하는지 확인합니다.# dig @localhost example.com +dnssec ... ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ...
1.6. BIND DNS 서버 간 영역 전송 구성 링크 복사링크가 클립보드에 복사되었습니다!
영역 전송을 통해 영역의 사본이 있는 모든 DNS 서버에서 최신 데이터를 사용하도록 합니다.
사전 요구 사항
- 향후 기본 서버에서 영역 전송을 설정할 영역이 이미 구성되어 있습니다.
- 향후 보조 서버에서 BIND는 이미 구성되어 있습니다(예: 캐싱 이름 서버).
-
두 서버 모두에서
named또는named-chroot서비스가 실행 중입니다.
프로세스
기존 기본 서버에서 다음을 수행합니다.
공유 키를 생성하고
/etc/named.conf파일에 추가합니다.# tsig-keygen example-transfer-key | tee -a /etc/named.conf key "example-transfer-key" { algorithm hmac-sha256; secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ="; };이 명령은
tsig-keygen명령의 출력을 표시하고/etc/named.conf에 자동으로 추가합니다.나중에 보조 서버에서 명령의 출력이 필요합니다.
/etc/named.conf파일에서 영역 정의를 편집합니다.allow-transfer문에서 서버가 영역을 전송하기 위해example-transfer-key문에 지정된 키를 제공해야 함을 정의합니다.zone "example.com" { ... allow-transfer { key example-transfer-key; }; };또는
allow-transfer문에서 BIND ACL(액세스 제어 목록) 닉네임을 사용합니다.기본적으로 영역을 업데이트한 후 BIND는 이 영역에 이름 서버(
NS) 레코드가 있는 모든 이름 서버에 알립니다. 보조 서버에 대한NS레코드를 영역에 추가하지 않으려는 경우 BIND에서 이 서버에 어쨌든 알립니다. 이를 위해 이 보조 서버의 IP 주소를 사용하여also-notify문을 영역에 추가합니다.zone "example.com" { ... also-notify { 192.0.2.2; 2001:db8:1::2; }; };
/etc/named.conf파일의 구문을 확인합니다.# named-checkconf명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
BIND를 다시 로드합니다.
# systemctl reload named변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
향후 보조 서버에서 다음을 수행합니다.
/etc/named.conf파일을 다음과 같이 편집합니다.기본 서버에서와 동일한 키 정의를 추가합니다.
key "example-transfer-key" { algorithm hmac-sha256; secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ="; };/etc/named.conf파일에 영역 정의를 추가합니다.zone "example.com" { type slave; file "slaves/example.com.zone"; allow-query { any; }; allow-transfer { none; }; masters { 192.0.2.1 key example-transfer-key; 2001:db8:1::1 key example-transfer-key; }; };이러한 설정 상태:
-
이 서버는
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-checkconfBIND를 다시 로드합니다.
# systemctl reload named변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
-
선택 사항: 기본 서버에서 영역 파일을 수정하고 새 보조 서버에 대한
NS레코드를 추가합니다.
검증
보조 서버에서 다음을 수행합니다.
named서비스의systemd저널 항목을 표시합니다.# journalctl -u named ... Jul 06 15:08:51 ns2.example.com named[2024]: zone example.com/IN: Transfer started. Jul 06 15:08:51 ns2.example.com named[2024]: transfer of 'example.com/IN' from 192.0.2.1#53: connected using 192.0.2.2#45803 Jul 06 15:08:51 ns2.example.com named[2024]: zone example.com/IN: transferred serial 2022070101 Jul 06 15:08:51 ns2.example.com named[2024]: transfer of 'example.com/IN' from 192.0.2.1#53: Transfer status: success Jul 06 15:08:51 ns2.example.com named[2024]: transfer of 'example.com/IN' from 192.0.2.1#53: Transfer completed: 1 messages, 29 records, 2002 bytes, 0.003 secs (667333 bytes/sec)변경 루트 환경에서 BIND를 실행하는 경우
journalctl -u named-chroot명령을 사용하여 저널 항목을 표시합니다.BIND에서 영역 파일을 생성했는지 확인합니다.
# ls -l /var/named/slaves/ total 4 -rw-r--r--. 1 named named 2736 Jul 6 15:08 example.com.zone기본적으로 보조 서버는 영역 파일을 바이너리 원시 형식으로 저장합니다.
보조 서버에서 전송된 영역의 레코드를 쿼리합니다.
# dig +short @192.0.2.2 AAAA www.example.com 2001:db8:1::30이 예제에서는 이 절차에서 설정한 보조 서버가 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정의를 추가합니다.options { ... response-policy { zone "rpz.local"; }; ... }response-policy의zone문에서 RPZ의 사용자 지정 이름을 설정할 수 있습니다. 그러나 다음 단계의 영역 정의에 동일한 이름을 사용해야 합니다.이전 단계에서 설정한 RPZ의
영역정의를 추가합니다.zone "rpz.local" { type master; file "rpz.local"; allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; }; allow-transfer { none; }; };이러한 설정 상태:
-
이 서버는
rpz.local이라는 RPZ의 기본 서버(유형 master)입니다. -
/var/named/rpz.local파일은 영역 파일입니다. 이 예에서와 같이 상대 경로를 설정하는 경우 이 경로는options문에서 디렉터리에 설정한디렉터리와 상대적입니다. -
allow-query에 정의된 모든 호스트는 이 RPZ를 쿼리할 수 있습니다. 또는 IP 범위 또는 BIND ACL(액세스 제어 목록) 닉네임을 지정하여 액세스를 제한합니다. - 호스트가 영역을 전송할 수 없습니다. 보조 서버를 설정하고 보조 서버의 IP 주소에 대해서만 영역 전송을 허용합니다.
-
이 서버는
/etc/named.conf파일의 구문을 확인합니다.# named-checkconf명령이 출력을 표시하지 않으면 구문이 올바르게 됩니다.
예를 들어 다음 콘텐츠를 사용하여
/var/named/rpz.local파일을 만듭니다.$TTL 10m @ IN SOA ns1.example.com. hostmaster.example.com. ( 2022070601 ; serial number 1h ; refresh period 1m ; retry period 3d ; expire time 1m ) ; minimum TTL IN NS ns1.example.com. example.org IN CNAME . *.example.org IN CNAME . example.net IN CNAME rpz-drop. *.example.net IN CNAME rpz-drop.이 영역 파일:
-
리소스 레코드의 기본 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 zone rpz.local/IN: loaded serial 2022070601 OKBIND를 다시 로드합니다.
# systemctl reload named변경 루트 환경에서 BIND를 실행하는 경우
systemctl reload named-chroot명령을 사용하여 서비스를 다시 로드합니다.
검증
RPZ에 구성된
example.org의 호스트를 해결하여NXDOMAIN오류를 반환합니다.# dig @localhost www.example.org ... ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 30286 ...이 예제에서는 BIND가 동일한 호스트에서 실행되고
localhost인터페이스의 쿼리에 응답한다고 가정합니다.RPZ에 구성된
example.net도메인의 호스트를 확인하여 쿼리를 삭제하십시오.# dig @localhost www.example.net ... ;; connection timed out; no servers could be reached ...
1.8. dnstap을 사용하여 DNS 쿼리 기록 링크 복사링크가 클립보드에 복사되었습니다!
네트워크 관리자는 DNS(Domain Name System) 세부 정보를 기록하여 DNS 트래픽 패턴을 분석하고 DNS 서버 성능을 모니터링하고 DNS 문제를 해결할 수 있습니다. 고급 방법으로 들어오는 이름 쿼리의 세부 정보를 모니터링하고 기록하려면 named 서비스에서 보낸 메시지를 기록하는 dnstap 인터페이스를 사용합니다. DNS 쿼리를 캡처하고 기록하여 웹사이트 또는 IP 주소에 대한 정보를 수집할 수 있습니다.
사전 요구 사항
-
bind패키지가 설치되어 있습니다.
BIND 버전이 이미 설치되어 실행 중인 경우 새 버전의 BIND 를 추가하면 기존 버전이 덮어씁니다.
프로세스
options블록에서/etc/named.conf파일을 편집하여dnstap및 대상 파일을 활성화합니다.options { # ... dnstap { all; }; # Configure filter dnstap-output file "/var/named/data/dnstap.bin" versions 2; # ... }; # end of options로깅할 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;};
-
변경 사항을 적용하려면
named서비스를 다시 시작하십시오.# systemctl restart named.service활성 로그에 대한 주기적인 롤아웃 구성
다음 예에서
cron스케줄러는 사용자가 편집한 스크립트의 콘텐츠를 하루에 한 번 실행합니다. 값이3인roll옵션은dnstap에서 최대 3개의 백업 로그 파일을 생성할 수 있음을 지정합니다. value3은dnstap-output변수의version매개 변수를 재정의하고 백업 로그 파일 수를 3으로 제한합니다. 또한 바이너리 로그 파일이 다른 디렉터리로 이동하여 이름이 변경되고 3개의 백업 로그 파일이 이미 존재하는 경우에도.2접미사에 도달하지 않습니다. 크기 제한에 따라 바이너리 로그를 자동으로 롤링하는 경우 이 단계를 건너뛸 수 있습니다.Example: sudoedit /etc/cron.daily/dnstap #!/bin/sh rndc dnstap -roll 3 mv /var/named/data/dnstap.bin.1 /var/log/named/dnstap/dnstap-$(date -I).bin # use dnstap-read to analyze saved logs sudo chmod a+x /etc/cron.daily/dnstapdnstap-read유틸리티를 사용하여 사람이 읽을 수 있는 형식으로 로그를 처리하고 분석합니다.다음 예에서
dnstap-read유틸리티는YAML파일 형식으로 출력을 출력합니다.Example: dnstap-read -p /var/named/data/dnstap.bin
2장. 바인딩되지 않은 DNS 서버 설정 링크 복사링크가 클립보드에 복사되었습니다!
바인딩되지 않은 DNS 서버는 검증, 재귀 및 캐싱 DNS 확인자입니다. 또한 unbound 는 보안에 중점을 두고 있으며 여기에는 기본적으로 DNSSEC(Domain Name System Security Extensions)가 활성화되어 있습니다.
2.1. unbound를 캐싱 DNS 서버로 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 바인딩되지 않은 DNS 서비스는 성공적으로 확인되고 실패한 조회를 캐시합니다. 그런 다음 서비스는 캐시의 동일한 레코드에 요청을 응답합니다.
절차
unbound패키지를 설치합니다.# dnf install unbound/etc/cabundle/cabundle.conf파일을 편집하고server절에서 다음과 같이 변경합니다.인터페이스매개변수를 추가하여unbound서비스에서 쿼리를 수신 대기하는 IP 주소를 구성합니다. 예를 들면 다음과 같습니다.interface: 127.0.0.1 interface: 192.0.2.1 interface: 2001:db8:1::1이러한 설정을 사용하면
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
unbound서비스를 원격으로 관리하기 위한 개인 키 및 인증서를 생성합니다.# systemctl restart unbound-keygen이 단계를 건너뛰면 다음 단계의 구성을 확인하면 누락된 파일이 보고됩니다. 그러나
바인딩되지 않은서비스는 파일이 누락된 경우 자동으로 파일을 생성합니다.구성 파일을 확인합니다.
# unbound-checkconf unbound-checkconf: no errors in /etc/unbound/unbound.conf들어오는 DNS 트래픽을 허용하도록 firewalld 규칙을 업데이트합니다.
# firewall-cmd --permanent --add-service=dns # firewall-cmd --reloadunbound서비스를 활성화하고 시작합니다.# systemctl enable --now unbound
검증
localhost인터페이스에서 수신 대기하는바인딩되지 않은DNS 서버를 쿼리하여 도메인을 확인합니다.# dig @localhost www.example.com ... www.example.com. 86400 IN A 198.51.100.34 ;; Query time: 330 msec ...처음으로 레코드를 쿼리한 후
unbound는 해당 캐시에 항목을 추가합니다.이전 쿼리를 반복합니다.
# dig @localhost www.example.com ... www.example.com. 85332 IN A 198.51.100.34 ;; Query time: 1 msec ...캐시된 항목으로 인해 항목이 만료될 때까지 동일한 레코드에 대한 추가 요청이 훨씬 더 빨라집니다.
3장. DHCP 서비스 제공 링크 복사링크가 클립보드에 복사되었습니다!
DHCP(Dynamic host Configuration Protocol)는 클라이언트에 IP 정보를 자동으로 할당하는 네트워크 프로토콜입니다. Kea를 설정하여 네트워크에 DHCP 서버를 제공할 수 있습니다.
3.1. 고정 IP 주소와 동적 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 서버를 검색합니다. 이 메시지는 네트워크 및 데이터 링크 계층에서 브로드캐스트됩니다.
- 제안
- DHCP 서버는 클라이언트에서 메시지를 수신하고 DHCP 클라이언트에 IP 주소를 제공합니다. 이 메시지는 데이터 링크 계층에서 유니캐스트되지만 네트워크 계층에서 브로드캐스트됩니다.
- 요청
- DHCP 클라이언트는 제공된 IP 주소에 대한 DHCP 서버를 요청합니다. 이 메시지는 데이터 링크 계층에서 유니캐스트되지만 네트워크 계층에서 브로드캐스트됩니다.
- 감사 인사
- DHCP 서버에서 DHCP 클라이언트에 확인을 보냅니다. 이 메시지는 데이터 링크 계층에서 유니캐스트되지만 네트워크 계층에서 브로드캐스트됩니다. DHCP DORA 프로세스의 최종 메시지입니다.
3.3. DHCPv4 및 DHCPv6에 Kea 사용 개요 링크 복사링크가 클립보드에 복사되었습니다!
Kea의 설계의 핵심 측면은 DHCPv4 및 DHCPv6이 독립적으로 관리된다는 것입니다. 각 프로토콜에는 고유한 구성 파일과 systemd 서비스가 있어 DHCPv4 서버, DHCPv6 서버 또는 둘 다 네트워크의 요구 사항을 충족할 수 있는 유연성을 제공합니다.
각 프로토콜에 대해 Kea는 별도의 구성 파일 및 서비스를 사용합니다.
- DHCPv4
-
구성 파일:
/etc/kea/kea-dhcp4.conf -
systemd 서비스 이름:
kea-dhcp4
-
구성 파일:
- DHCPv6
-
구성 파일:
/etc/kea/kea-dhcp6.conf -
systemd 서비스 이름:
kea-dhcp6
-
구성 파일:
3.4. Kea lease 데이터베이스 링크 복사링크가 클립보드에 복사되었습니다!
DHCP 리스는 Kea가 네트워크 주소를 클라이언트에 할당하는 기간입니다. 리스 데이터베이스에는 미디어 액세스 제어(MAC) 주소에 할당된 IP 주소 또는 리스가 만료되는 타임스탬프와 같은 할당된 리스에 대한 정보가 포함됩니다.
리스 데이터베이스의 모든 타임스탬프는 UTC(Coordinated Universal Time)입니다.
Kea는 다음 리스 백엔드를 지원합니다.
memfile(기본값)디스크에 저장된 텍스트 기반 파일입니다. 기본적으로 Kea는 DHCP 리스를 다음 파일에 저장합니다.
-
DHCPv4의 경우:
/var/lib/kea/kea-leases4.csv DHCPv6의 경우:
/var/lib/kea/kea-leases6.csv주의파일을 수동으로 업데이트하면 불일치 및 파일 손상이 발생할 수 있습니다. 성능상의 이유로 Kea는 리스 데이터를 메모리에 저장하고 런타임 중에 리스 파일을 모니터링하지 않습니다. 다음에 Kea가 파일을 업데이트할 때 수동 편집 내용을 재정의할 수 있습니다.
-
DHCPv4의 경우:
mysql- MySQL 데이터베이스 백엔드.
pgsql- PostgreSQL 데이터베이스 백엔드.
예를 들어 Kea는 다음과 같은 경우 리스 데이터베이스를 업데이트합니다.
- 리스 업데이트 시
- 정상 종료 시
- LFC( periodic lease file cleanup) 프로세스 중
- API를 통한 요청으로
3.5. Kea DHCP 서버 설정 링크 복사링크가 클립보드에 복사되었습니다!
Kea는 모듈식 설계가 있는 최신 고성능 DHCP 서버입니다. DHCP 서버를 사용하여 클라이언트 장치에 IP 주소 및 기타 네트워크 설정을 자동으로 할당합니다. 이렇게 하면 수동 구성의 error-prone 작업이 제거됩니다.
사전 요구 사항
-
kea패키지가 설치되어 있습니다. -
root사용자로 로그인합니다.
절차
IPv4 네트워크를 구성하는 경우:
/etc/kea/kea-dhcp4.conf파일을 편집하고 다음 구성을 사용합니다.{ "Dhcp4": { // Global settings that apply to all subnets unless overridden. "valid-lifetime": 86400, "option-data": [ { "name": "domain-name", "data": "example.com" }, { "name": "domain-name-servers", "data": "192.0.2.53" } ], // The network interfaces on which Kea will listen for DHCP traffic. "interfaces-config": { "interfaces": [ "enp1s0" ] }, "subnet4": [ // A definition of a subnet that is directly connected to the server { "id": 1, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.20 - 192.0.2.100" }, { "pool": "192.0.2.150 - 192.0.2.200" } ], "option-data": [ { "name": "routers", "data": "192.0.2.1" } ], }, // A definition of a remote subnet served through a DHCP relay { "id": 2, "subnet": "198.51.100.0/24", "pools": [ { "pool": "198.51.100.20 - 198.51.100.100" } ], // Allowed DHCP relay agents "relay": { "ip-addresses": [ "198.51.100.5" ] }, "option-data": [ { "name": "routers", "data": "198.51.100.1" }, { "name": "domain-name-servers", "data": "198.51.100.53" } ] } ] } }이 예제에서는 서버에 직접 연결된 두 개의 서브넷과 DHCP 릴레이 에이전트를 사용하는 원격 원격 서브넷을 제공하도록 Kea를 구성합니다.
예제에 지정된 설정은 다음과 같습니다.
interfaces- Kea가 DHCP 요청을 수신 대기하는 네트워크 인터페이스를 정의합니다. 서브넷이 서버에 직접 연결되지 않은 경우 서브넷에 연결할 수 있는 인터페이스를 나열해야 합니다.
id- 서브넷의 고유한 정수를 정의합니다. 이는 서브넷을 두 개 이상 정의하는 경우 필요합니다.
서브넷- CIDR(Classless Inter-Domain Routing) 형식으로 서브넷을 정의합니다.
풀- Kea가 클라이언트에 주소를 할당할 수 있는 IP 주소 범위를 정의합니다.
option-data- 기본 게이트웨이 및 DNS 서버와 같이 클라이언트에 전송된 DHCP 옵션을 정의합니다. 서브넷별 옵션-데이터 설정은 글로벌 설정을 재정의합니다.
릴레이- DHCP 릴레이 에이전트의 IP 주소를 정의합니다. 이 설정은 원격 서브넷의 경우 선택 사항이지만 보안이 개선되어 신뢰할 수 있는 에이전트에 전달된 요청을 제한합니다. 직접 연결된 서브넷에 이 매개변수를 사용하지 마십시오.
구성 파일의 구문을 확인합니다.
# kea-dhcp4 -t /etc/kea/kea-dhcp4.conf명령에서
Syntax 검사를 실패한경우 보고서에 표시된 오류를 수정합니다.들어오는 DHCPv4 트래픽을 허용하도록
firewalld규칙을 업데이트합니다.# firewall-cmd --permanent --add-service=dhcp # firewall-cmd --reload서비스를 활성화하고 시작합니다.
# systemctl enable --now kea-dhcp4
IPv6 네트워크를 구성하는 경우:
/etc/kea/kea-dhcp6.conf파일을 편집하고 다음 구성을 사용합니다.{ "Dhcp6": { // Global settings that apply to all subnets unless overridden. "valid-lifetime": 86400, "option-data": [ { "name": "domain-name", "data": "example.com" }, { "name": "dns-servers", "data": "2001:db8:0:1::53" } ], // The network interfaces on which Kea will listen for DHCP traffic. "interfaces-config": { "interfaces": [ "enp1s0" ] }, "subnet6": [ // A definition of a subnet that is directly connected to the server { "id": 1, "subnet": "2001:db8:0:1::/64", "pools": [ { "pool": "2001:db8:0:1::1000 - 2001:db8:0:1::2000" }, { "pool": "2001:db8:0:1::4000 - 2001:db8:0:1::5000" } ], }, // A definition of a remote subnet served through a DHCP relay { "id": 2, "subnet": "2001:db8:0:2::/64", "pools": [ { "pool": "2001:db8:0:2::1000 - 2001:db8:0:2::2000" } ], // Allowed DHCP relay agents "relay": { "ip-addresses": [ "2001:db8:0:2::5" ] }, "option-data": [ { "name": "dns-servers", "data": "2001:db8:0:1::53" } ] } ] } }이 예제에서는 서버에 직접 연결된 두 개의 서브넷과 DHCP 릴레이 에이전트를 사용하는 원격 원격 서브넷을 제공하도록 Kea를 구성합니다.
구성 파일의 구문을 확인합니다.
# kea-dhcp6 -t /etc/kea/kea-dhcp6.conf명령에서
Syntax 검사를 실패한경우 보고서에 표시된 오류를 수정합니다.들어오는 DHCPv6 트래픽을 허용하도록
firewalld규칙을 업데이트합니다.# firewall-cmd --permanent --add-service=dhcpv6 # firewall-cmd --reload서비스를 활성화하고 시작합니다.
# systemctl enable --now kea-dhcp6
검증
-
클라이언트에서 DHCP를 사용하여 네트워크 연결을 구성합니다.
nmcli를 사용하여 이더넷 연결 구성을 참조하십시오. - 클라이언트를 네트워크에 연결합니다.
클라이언트가 DHCP 서버에서 IP 주소를 수신했는지 확인합니다.
# ip address show <interface> 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:17:b8:b6 brd ff:ff:ff:ff:ff:ff inet 192.0.2.20/24 brd 192.0.2.255 scope global noprefixroute enp1s0 valid_lft forever preferred_lft forever inet6 2001:db8:1::1000/64 scope global noprefixroute valid_lft forever preferred_lft forever
문제 해결
Kea가 수신 대기 중인 IPv4 및 IPv6 주소를 확인합니다.
# ss -lunp | grep -E ':(67|547)'Kea가 구성한 모든 인터페이스에서 수신 대기하지 않으면 Kea 구성 파일에서
interfaces-config설정을 확인합니다.
다음 단계
3.6. Kea에서 로거 구성 링크 복사링크가 클립보드에 복사되었습니다!
심각도 수준과 같은 로그 설정을 사용자 지정하려면 Kea에서 로거 를 구성합니다.
기본적으로 Kea는 로그 메시지를 다음과 같이 작성합니다.
- systemd 저널
-
rsyslogd서비스가 실행 중인 경우/var/log/messages파일
사전 요구 사항
-
kea-dhcp4및kea-dhcp6서비스가 구성되어 실행 중입니다. -
root사용자로 로그인합니다.
절차
IPv4 네트워크를 구성하는 경우:
/etc/kea/kea-dhcp4.conf파일을 편집하고로거구성을Dhcp4매개변수에 추가합니다. 예를 들면 다음과 같습니다.{ "Dhcp4": { ..., "loggers":[ { "name":"kea-dhcp4", "output-options":[ { "output":"kea-dhcp4.log", "maxsize":104857600, "maxver":5 } ], "severity":"INFO", } ], ...예제에 지정된 설정은 다음과 같습니다.
name-
로거설정이 적용되는 바이너리의 이름을 정의합니다. output-
/var/lib/kea/디렉터리에 로그 파일 이름을 설정합니다. maxSize-
Kea가 회전하기 전에 로그 파일의 최대 크기를 설정합니다. 기본값은
10240000바이트입니다. maxver-
Kea가 유지할 최대 순환 버전 수를 설정합니다.
maxsize값은204800바이트 미만의 회전을 비활성화합니다. 심각도-
로깅된 메시지의 범주를 지정합니다. 다음 값 중 하나를 설정할 수 있습니다.
NONE,FATAL,ERROR,WARN,INFO,DEBUG. Kea는 구성된 심각도 이상의 메시지만 기록합니다.
구성 파일의 구문을 확인합니다.
# kea-dhcp4 -t /etc/kea/kea-dhcp4.conf명령에서
Syntax 검사를 실패한경우 보고서에 표시된 오류를 수정합니다.kea-dhcp4서비스를 다시 시작합니다.# systemctl restart kea-dhcp4
IPv6 네트워크를 구성하는 경우:
/etc/kea/kea-dhcp6.conf파일을 편집하고로거구성을Dhcp6매개변수에 추가합니다. 예를 들면 다음과 같습니다.{ "Dhcp6": { ..., "loggers":[ { "name":"kea-dhcp6", "output-options":[ { "output":"kea-dhcp6.log", "maxsize":104857600, "maxver":5 } ], "severity":"INFO", } ], ...구성 파일의 구문을 확인합니다.
# kea-dhcp6 -t /etc/kea/kea-dhcp6.conf명령에서
Syntax 검사를 실패한경우 보고서에 표시된 오류를 수정합니다.kea-dhcp6서비스를 다시 시작합니다.# systemctl restart kea-dhcp6
검증
- 구성한 로그 파일을 모니터링하여 예상 심각도의 메시지가 표시되는지 확인합니다.
3.7. DHCP를 사용하여 호스트에 고정 주소 할당 링크 복사링크가 클립보드에 복사되었습니다!
Kea에서는 서브넷 정의 내의 예약을 사용하여 고정 IP 주소를 MAC( Media Access Control), DHCP 고유 식별자(DUID) 또는 기타 식별자에 할당할 수 있습니다.
예를 들어 이 방법을 사용하여 항상 동일한 IP 주소를 서버 또는 네트워크 장치에 할당합니다.
사전 요구 사항
-
kea-dhcp4및kea-dhcp6서비스가 구성되어 실행 중입니다. -
root사용자로 로그인합니다.
절차
IPv4 네트워크를 구성하는 경우:
/etc/kea/kea-dhcp4.conf파일을 편집하고subnet4매개변수에 예약을 추가합니다.{ "Dhcp4": { "subnet4": [ { "subnet": "192.0.2.0/24", ..., "reservations": [ { "hw-address": "52:54:00:72:2f:6e", "ip-address": "192.0.2.130" } ], ...이 예제에서는 Kea를 구성하여 항상
192.0.2.130IP 주소를52:54:00:72:2f:6eMAC 주소가 있는 호스트에 할당합니다.추가 예제는
kea-doc패키지에서 제공하는/usr/share/doc/kea/examples/kea4/reservations.json파일을 참조하십시오.구성 파일의 구문을 확인합니다.
# kea-dhcp4 -t /etc/kea/kea-dhcp4.conf명령에서
Syntax 검사를 실패한경우 보고서에 표시된 오류를 수정합니다.kea-dhcp4서비스를 다시 시작합니다.# systemctl restart kea-dhcp4
IPv6 네트워크를 구성하는 경우:
/etc/kea/kea-dhcp6.conf파일을 편집하고subnet6매개변수에 예약을 추가합니다.{ "Dhcp6": { "subnet6": [ { "subnet": "2001:db8:0:1::/64", ..., "reservations": [ { "hw-address": "52:54:00:72:2f:6e", "ip-address": "2001:db8:0:1::99" } ]; ...이 예제에서는 Kea가 항상
2001:db8:0:1::99IP 주소를52:54:00:72:2f:6eMAC 주소가 있는 호스트에 할당하도록 구성합니다.자세한 내용은
파일을 참조하십시오.kea-doc패키지에서 제공하는 /usr/share/doc/kea/kea6/reservations.json구성 파일의 구문을 확인합니다.
# kea-dhcp6 -t /etc/kea/kea-dhcp6.conf명령에서
Syntax 검사를 실패한경우 보고서에 표시된 오류를 수정합니다.kea-dhcp6서비스를 다시 시작합니다.# systemctl restart kea-dhcp6
3.8. Kea에서 클라이언트를 분류 링크 복사링크가 클립보드에 복사되었습니다!
Kea 클라이언트 클래스는 특정 기준에 따라 클라이언트를 그룹화하는 메커니즘을 제공하므로 네트워크 구성을 세부적으로 제어할 수 있습니다. 이 기능을 사용하여 특수 처리 규칙을 적용하거나 클라이언트에 다양한 DHCP 옵션을 할당할 수 있습니다.
특정 IP 풀에 voice over IP (VoIP) 장치를 할당하는 클라이언트 클래스를 만들어#159 휴대폰이 네트워크의 다른 장치와 다른 IP 주소를 갖도록 할 수 있습니다. 예를 들어 IPv4 네트워크에서 하위 문자열 표현식을 사용하여 미디어 액세스 제어(MAC) 주소의 처음 3개의 옥텟을 테스트할 수 있습니다. MAC 주소가 안정적인 지표가 아닌 IPv6 네트워크에서 DHCPv6 벤더 클래스 옵션의 하위 문자열을 테스트할 수 있습니다.
사전 요구 사항
-
kea-dhcp4및kea-dhcp6서비스가 구성되어 실행 중입니다. -
root사용자로 로그인합니다.
절차
IPv4 네트워크를 구성하는 경우:
/etc/kea/kea-dhcp4.conf파일을 편집하고 다음과 같이 변경합니다.Dhcp4매개변수에 다음 클라이언트 클래스를 추가합니다.{ "Dhcp4": { ... "client-classes": [ { "name": "VoIP-Phones", "test": "substring(pkt4.mac, 0, 3) == 0x525400" }, { "name": "Others", "test": "not member('VoIP-Phones')" } ], ...이 예에서
52:54:00으로 시작하는 MAC 주소가 있는 장치는 Cryostat- phones클라이언트 클래스와 일치합니다. 규칙과 일치하지 않는 장치는Others클라이언트 클래스에 할당됩니다.클라이언트 클래스를
풀정의에 할당합니다.{ "Dhcp4": { "subnet4": [ { "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.20 - 192.0.2.100", "client-class": "Others" }, { "pool": "192.0.2.150 - 192.0.2.200", "client-class": "VoIP-Phones" } ], ...호스트가 일치하는 클라이언트 클래스에 따라 Kea는 해당 풀의 IP를 할당합니다.
구성 파일의 구문을 확인합니다.
# kea-dhcp4 -t /etc/kea/kea-dhcp4.conf명령에서
Syntax 검사를 실패한경우 보고서에 표시된 오류를 수정합니다.kea-dhcp4서비스를 다시 시작합니다.# systemctl restart kea-dhcp4
IPv6 네트워크를 구성하는 경우:
/etc/kea/kea-dhcp6.conf파일을 편집하고 다음과 같이 변경합니다.Dhcp6매개변수에 다음 클라이언트 클래스를 추가합니다.{ "Dhcp6": { ... "client-classes": [ { "name": "VoIP-Phones", "test": "option[16].exists and (substring(option[16].hex, 0, 8) == '00000009')", }, { "name": "Others", "test": "not member('VoIP-Phones')" } ], ...이 예제에서 16진수 값이
00000009로 시작하는 DHCPv6 공급업체 클래스 옵션(옵션 16)을 전송하는 장치는 Cryostat-phones 클라이언트 클래스와 일치합니다. 규칙과 일치하지 않는 장치는Others클라이언트 클래스에 할당됩니다.클라이언트 클래스를
풀정의에 할당합니다.{ "Dhcp6": { "subnet6": [ { "subnet": "2001:db8:0:1::/64", "pools": [ { "pool": "2001:db8:0:1::1000 - 2001:db8:0:1::2000", "client-class": "Others" }, { "pool": "2001:db8:0:1::4000 - 2001:db8:0:1::5000", "client-class": "VoIP-Phones" } ], ...호스트가 일치하는 클라이언트 클래스에 따라 Kea는 해당 풀의 IP를 할당합니다.
구성 파일의 구문을 확인합니다.
# kea-dhcp6 -t /etc/kea/kea-dhcp6.conf명령에서
Syntax 검사를 실패한경우 보고서에 표시된 오류를 수정합니다.kea-dhcp6서비스를 다시 시작합니다.# systemctl restart kea-dhcp6
검증
- 클라이언트 클래스의 규칙과 일치하는 클라이언트를 연결하고 Kea가 연결된 풀에서 IP를 할당했는지 확인합니다.
3.9. DHCPv6과 radvd 비교 링크 복사링크가 클립보드에 복사되었습니다!
IPv6 네트워크에서 라우터 알림 메시지만 IPv6 기본 게이트웨이에 대한 정보를 제공합니다. 기본 게이트웨이 설정이 필요한 서브넷에서 DHCPv6을 사용하려면 라우터 알림 데몬(radvd)과 같은 라우터 알림 서비스를 추가로 구성해야 합니다.
radvd 서비스는 라우터 알림 패킷의 플래그를 사용하여 DHCPv6 서버의 가용성을 발표합니다.
다음 표에서는 DHCPv6 및 radvd 의 기능을 비교합니다.
| DHCPv6 | radvd | |
|---|---|---|
| 기본 게이트웨이에 대한 정보를 제공합니다. | 제공되지 않음 | 제공됨 |
| 개인 정보를 보호하기 위해 임의 주소 보장 | 제공됨 | 제공되지 않음 |
| 추가 네트워크 구성 옵션 전송 | 제공됨 | 제공되지 않음 |
| 미디어 액세스 제어(MAC) 주소를 IPv6 주소에 매핑 | 제공됨 | 제공되지 않음 |
3.10. IPv6 라우터를 위한 radvd 서비스 구성 링크 복사링크가 클립보드에 복사되었습니다!
라우터 알림 데몬(radvd)은 IPv6 상태 비저장 자동 구성에 필요한 라우터 알림 메시지를 보냅니다. 이를 통해 사용자는 주소, 설정, 경로를 자동으로 구성하고 이러한 알림을 기반으로 기본 라우터를 선택할 수 있습니다.
radvd 서비스에서만 /64 접두사를 설정할 수 있습니다. 다른 접두사를 사용하려면 DHCPv6을 사용합니다.
사전 요구 사항
-
root사용자로 로그인합니다.
절차
radvd패키지를 설치합니다.# dnf install radvd/etc/radvd.conf파일을 편집하고 다음 구성을 추가합니다.interface enp1s0 { AdvSendAdvert on; AdvManagedFlag on; AdvOtherConfigFlag on; prefix 2001:db8:0:1::/64 { }; };이러한 설정은
2001:db8:0:1::/64서브넷의enp1s0장치에 라우터 알림 메시지를 전송하도록radvd를 구성합니다.AdvManagedFlag설정은 클라이언트에서 DHCP 서버에서 IP 주소를 수신하도록 정의하고onAdvOtherConfigFlag매개변수는 클라이언트가 DHCP 서버에서 비 주소 정보를 수신해야 함을 정의합니다.자세한 내용은 시스템의
radvd.conf(5)도움말 페이지 및/usr/share/doc/radvd/radvd.conf.example파일을 참조하십시오.선택 사항: 시스템이 부팅될 때
radvd가 자동으로 시작되도록 구성합니다.# systemctl enable radvdradvd서비스를 시작합니다.# systemctl start radvd
검증
라우터 알림 패키지의 콘텐츠와 구성된 값
radvd를 표시합니다.# radvdump