이러한 파일은 IP 프로토콜 번호, 별칭 및 서비스 매핑을 포함하는 데이터베이스입니다. 나는 사용자로서 일반적으로 누구와도 상호작용하지 않습니다.직접방법을 사용했지만 특별한 Linux/GNU 배포판을 만들어야 했으며 /etc/protocols 데이터베이스에서 필요한 번호를 가져올 수 없어 Perl 테스트 모음이 실패했다는 사실을 발견했습니다. 왜냐하면 해당 번호가 내 사용자 정의 시스템에 존재하지 않았기 때문입니다.
예를 들어, 내가 선택한 데스크탑 배포판(SMP Debian 4.17.17-1 (2018-08-18) x86_64 GNU/Linux)에서:
/etc/protocols는 IANA 목록을 기반으로 생성된다고 주장합니다.
# Internet (IP) protocols
#
# Updated from http://www.iana.org/assignments/protocol-numbers and other
# sources.
# New protocols will be added on request if they have been officially
# assigned by IANA and are not historical.
# If you need a huge list of used numbers please install the nmap package.
/etc/services도 마찬가지입니다.
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, officially ports have two entries
# even if the protocol doesn't support UDP operations.
#
# Updated from http://www.iana.org/assignments/port-numbers and other
# sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services .
# New ports will be added on request if they have been officially assigned
# by IANA and used in the real-world or are needed by a debian package.
# If you need a huge list of used numbers please install the nmap package.
실제로 그들이 제공하는 데이터는 명명된 소스에서 나온 것으로 보입니다(그러나 전부는 아니며 이러한 데이터베이스는 부분적인 것으로 나타납니다). 이 특이성은 나를 완전히 당황하게 만듭니다.
이에 액세스하기 위한 POSIX 함수 호출이 있습니다. getprotoent(3), IEEE Std 1003.1-2008에서는 이를 다음과 같이 설명합니다.
endprotoent, getprotobyname, getprotobynumber, getprotoent, setprotoent - 네트워크 프로토콜 데이터베이스 기능
이러한 함수는 프로토콜에 대한 정보를 검색해야 합니다. 정보는 순차적으로 또는 무작위로 액세스할 수 있는 데이터베이스에 저장되는 것으로 간주됩니다. 이 데이터베이스의 구현은 지정되지 않았습니다.
형식이 상대적으로 간단하고 이러한 파일을 제공하면 좋겠지만 적절한 이해 없이 수동으로 데이터베이스를 채우거나 다른 작업을 복제하고 싶지 않습니다. 어떤 종류의 중앙 소스가 있습니까? 데이터베이스 작성을 담당하는 사람은 누구입니까?
- getprotoent(3) 호출을 노출하여 형식을 정의하는 라이브러리(예: glibc)?
- 현재 POSIX 사양에 지정된 표준 콘텐츠 이미지가 있습니까?
- 어느 배포 관리자에 속합니까?
- 아니면 완전히 다른 누군가/무언가요?
답변1
자신만의 배포판을 생성하므로 /etc/protocols
설치하는 파일과 파일 내용에 대한 책임은 사용자에게 있습니다./etc/services
프로토콜 및 서비스 번호 할당을 제어하는 권한은 참조한 파일 헤더에 명시된 대로 IANA입니다. 해당 목록은 IANA 웹사이트에서 확인할 수 있습니다.계약번호그리고서비스 이름 및 포트 번호. 그러나 배포판 관리자는 사용되었지만 아직 IANA에 제출되지 않았거나 승인되지 않은 항목을 추가하고 더 이상 사용되지 않는 항목을 제거하는 경우가 많습니다. Debian의 경우 이 두 파일의 소스는 다음 위치에 있습니다.netbase
저장소.
POSIX는 프로토콜 및 서비스 정보를 검색하는 데 사용할 수 있는 함수를 정의하지만 인용문에 표시된 것처럼 데이터가 저장되거나 검색되는 방법을 지정하지 않습니다.
이 데이터베이스의 구현은 지정되지 않았습니다.
데이터베이스에 포함된 정보도 지정되지 않습니다. POSIX는 실제로 스키마에 대한 요구 사항만 부과합니다.