web-dev-qa-db-ja.com

/ etc / protocolsおよび/ etc / servicesのソース?

これらのファイルは、IPプロトコル番号、エイリアス、およびサービスマッピングを含むデータベースです。ユーザーとして、私は通常、それらとは対話しませんdirect方法ではありませんが、特別なLinux/GNUディストリビューションを作成する必要が生じ、必要なフェッチができないためにPerlテストスイートが失敗することに気付きました/ etc/protocolsデータベースからの番号。これは、カスタムシステムに存在しないためです。

たとえば、選択したデスクトップディストリビューションから(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仕様で指定されている標準のコンテンツイメージはありますか?
  • それが属するディストリビューションのメンテナ?
  • それとも誰か/何か完全に?
3

独自のディストリビューションを作成しているので、インストールする/etc/protocolsおよび/etc/servicesファイルの内容の責任はユーザーにあります。

プロトコルとサービス番号の割り当てを制御する権限は、引用したファイルヘッダーに記載されているIANAです。対応するリストは プロトコル番号 および サービス名とポート番号 のWebサイトで入手できます。ただし、配布管理者は通常、使用されているがIANAに提出されていない、または承認されていないエントリを追加し、廃止されたと見なすエントリを削除します。 Debianの場合、両方のファイルのソースは the netbase repository にあります。

POSIXは、プロトコルとサービス情報を取得するために使用できる関数を定義していますが、引用に示されているように、そのデータの格納方法や取得方法は指定していません。

このデータベースの実装は指定されていません。

データベースに含まれる情報も特定されていません。 POSIXは、スキーマに要件を効果的に課すだけです。

2
Stephen Kitt