c-ares는 C로 작성된 최신 DNS(스텁) 확인자 라이브러리입니다. 기본 DNS 프로토콜의 복잡성을 추상화하는 동시에 비동기 쿼리를 위한 인터페이스를 제공합니다. 원래는 차단 없이 DNS 쿼리를 수행해야 하거나 여러 DNS 쿼리를 병렬로 수행해야 하는 애플리케이션을 위한 것이었습니다.
c-ares의 목표 중 하나는 사용하는 시스템에 관계없이 시스템에서 제공하는 것보다 더 나은 DNS 확인자가 되는 것입니다. 비동기 해결의 초기 목표가 애플리케이션에 필요하지 않은 경우에도 모든 네트워크 애플리케이션에서 c-ares 라이브러리를 사용하는 것이 좋습니다.
c-ares는 모든 C89 컴파일러로 구축되며 MIT 라이선스를 취득했기 때문에 무료 소프트웨어와 상용 소프트웨어 모두에 적합합니다. c-ares는 Linux, FreeBSD, OpenBSD, MacOS, Solaris, AIX, Windows, Android, iOS 및 기타 다양한 운영 체제에서 실행됩니다.
c-ares는 보안에 중점을 두고 코드 전체에 사용되는 안전한 파서 및 데이터 빌더를 구현하여 다른 C 라이브러리의 일반적인 함정을 피합니다. 광범위한 테스트 프레임워크를 사용한 자동화된 테스트를 통해 c-ares는 다양한 정적 및 동적 분석기를 통해 지속적으로 검증될 뿐만 아니라 OSS Fuzz에 의해 지속적으로 퍼지됩니다.
c-ares는 20년 넘게 존재해 왔지만 최신 DNS RFC와 관련하여 적극적으로 유지 관리되었으며 C 코딩 표준과 관련된 최신 모범 사례를 따르도록 업데이트되었습니다.
전체 소스 코드와 개정 내역은 GitHub 저장소에서 확인할 수 있습니다. 서명된 릴리스는 릴리스 아카이브에서 확인할 수 있습니다.
빌드 정보는 INSTALL.md 파일을 참조하세요.
문제 및 기능 요청은 GitHub 문제 페이지에 보고되어야 합니다.
c-ares 및 그 사용에 대한 토론은 GitHub 토론 또는 메일링 리스트에서 열립니다. 메일링 리스트 아카이브는 여기에 있습니다. C-are에 관해 자원봉사자에게 개인적으로 메일을 보내지 마십시오.
보안 취약점은 보안 절차에 따라 처리됩니다. 의심되는 경우 haxx.se로 c-ares-security로 이메일을 보내주세요.
c-ares 릴리스의 기본 GPG 키(일부 릴리스는 하위 키로 서명):
27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA
신뢰할 수 있는 릴리스 키 전체 세트를 가져오려면(릴리스 서명에 사용될 수 있는 하위 키 포함):
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2 # Daniel Stenberg
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA # Brad House
각 릴리스 c-ares-XYZtar.gz
에는 해당 릴리스에 대한 분리된 서명이 포함된 해당 c-ares-XYZtar.gz.asc
파일이 있습니다.
이전 섹션에 따라 가능한 유효한 서명 키를 모두 가져오고 키체인에 로드한 후 다운로드한 패키지와 분리된 서명에 대해 아래 명령을 실행하면 됩니다.
% gpg -v --verify c-ares-1.29.0.tar.gz.asc c-ares-1.29.0.tar.gz
gpg: enabled compatibility flags:
gpg: Signature made Fri May 24 02:50:38 2024 EDT
gpg: using RSA key 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
gpg: using pgp trust model
gpg: Good signature from " Daniel Stenberg " [unknown]
gpg: WARNING: This key is not certified with a trusted signature !
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 27ED EAF2 2F3A BCEB 50DB 9A12 5CC9 08FD B71E 12C2
gpg: binary signature, digest algorithm SHA512, key algorithm rsa2048
기능 보기
AAAA
기록.SRV
레코드.NAPTR
레코드.TLSA
레코드.SVCB
및 HTTPS
레코드.URI
레코드.CAA
레코드.SIG0
레코드. 전체 구현이 아닌 기본 파서만 사용됩니다.NXDOMAIN
사용하여 .onion
도메인 이름에 대한 쿼리를 거부합니다.localhost
/ .localhost
에 대한 특수 사례 처리입니다.ares_getaddrinfo()
에서 사용되는 IPv6 주소 정렬.