Portmap Linux что это такое

Обновлено: 21.11.2024

Во время развертывания служб Samba и NFS на одном из серверов RHEL 6 я получаю это сообщение при попытке запустить, остановить и перезапустить карту портов службы:

Командная строка ниже предоставляет необходимые пакеты зависимостей. Его также можно использовать для отслеживания пакета, содержащего определенный исполняемый файл:

При попытке установить portmap на RHEL 6 вместо него будет установлен rpcbind:

Что такое Portmap:
Portmap — это сервер, который преобразует номера программ RPC (удаленный вызов процедур) в номера портов протокола DARPA. Он должен быть запущен, чтобы выполнять вызовы RPC. Серверные службы, использующие RPC, включают NFS, NIS и Samba. Когда сервер RPC запущен, он сообщает portmap, какой номер порта он прослушивает и какие номера программ RPC он готов обслуживать. Когда клиент хочет сделать RPC-вызов с заданным номером программы, он сначала связывается с portmap на сервере, чтобы определить номер порта, на который должны отправляться RPC-пакеты. Следовательно, portmap должен быть запущен до того, как будут вызваны какие-либо серверы RPC. Это связано с тем, что службы на основе RPC полагаются на карту портов для установления всех соединений с входящими запросами клиентов.

Что такое rpcbind:
rpcbind — это сервер, который преобразует номера программ RPC в универсальные адреса. Он должен быть запущен на хосте, чтобы иметь возможность выполнять вызовы RPC на сервер на этом компьютере. Когда служба RPC запускается, она сообщает rpcbind адрес, по которому она прослушивается, и номера программ RPC, которые она готова обслуживать. Когда клиент хочет выполнить RPC-вызов с заданным номером программы, он сначала связывается с rpcbind на сервере, чтобы определить адрес, по которому следует отправлять RPC-запросы. rpcbind следует запускать перед любой другой службой RPC. Обычно стандартные RPC-серверы запускаются мониторами портов, поэтому rpcbind необходимо запустить до вызова мониторов портов.

Серверная служба, использующая RPC:
1. NFS
NFS использует удаленные вызовы процедур (RPC) для маршрутизации запросов между клиентами и серверами, а это означает, что служба portmap должна быть включена и активна на надлежащих уровнях выполнения для осуществления связи NFS.

<р>2. Samba
Samba — это программное обеспечение с открытым исходным кодом, основанное на общем клиент-серверном протоколе Server Message Block (SMB) и Common Internet File System (CIFS). Это позволяет конечным пользователям получать доступ и использовать файлы, принтеры и совместно использовать ресурсы компании.

Пример экземпляра карты портов
Команда rpcinfo показывает каждую службу на основе RPC с ее номером порта, номером программы RPC, версией и типом IP-протокола (TCP или UDP). Это делается для того, чтобы убедиться, что для portmap включены соответствующие службы NFS на основе RPC и портмаппер.

Linux использует комбинацию поддержки на уровне ядра и непрерывно работающих процессов демона для обеспечения общего доступа к файлам NFS, однако для работы поддержка NFS должна быть включена в ядре Linux. NFS использует Удаленные вызовы процедур (RPC) для маршрутизации запросов между клиентами и серверами, а это означает, что служба portmap должна быть включена и активна на надлежащих уровнях выполнения для осуществления связи NFS. Работая с portmap, следующие процессы гарантируют, что данное соединение NFS разрешено и может работать без ошибок:

NFS и portmap

Функция NFS зависит от удаленных вызовов процедур (RPC). Служба portmap необходима для сопоставления запросов RPC с правильными службами. Процессы RPC уведомляют portmap при запуске, раскрывая номер порта, который они отслеживают, и номера программ RPC, которые они ожидают обслуживать. Затем клиентская система связывается с portmap на сервере с определенным номером программы RPC. Затем portmap перенаправляет клиента на правильный номер порта для связи с предполагаемой службой.

Поскольку службы на основе RPC полагаются на portmap для установления всех соединений с входящими запросами клиентов, portmap должен быть доступен до запуска любой из этих служб. Если по какой-либо причине служба portmap неожиданно завершает работу, перезапустите portmap и все службы, запущенные во время ее запуска.

Службу portmap можно использовать с файлами доступа к узлам TCP-оболочек (/etc/hosts.allow и /etc/hosts.deny), чтобы контролировать, каким удаленным системам разрешено использовать службы на основе RPC на сервере. Дополнительную информацию см. в главе 15 Оболочки TCP и xinetd. Правила управления доступом для portmap будут влиять на все службы на основе RPC. В качестве альтернативы можно указать, что каждый из демонов NFS RPC будет затронут определенным правилом управления доступом. Справочные страницы для rpc.mountd и rpc.statd содержат информацию о точном синтаксисе этих правил.

Команда rpcinfo показывает каждую службу на основе RPC с ее номером порта, номером программы RPC, версией и типом IP-протокола (TCP или UDP).

Чтобы убедиться, что для portmap включены соответствующие службы NFS на основе RPC, используйте команду rpcinfo -p:

Опция -p проверяет портмапер на указанном хосте или по умолчанию использует localhost, если конкретный хост не указан. Другие параметры доступны на справочной странице rpcinfo.

Из этого вывода видно, что запущены различные службы NFS. Если одна из служб NFS запускается неправильно, portmap не сможет сопоставить запросы RPC от клиентов для этой службы с правильным портом. Во многих случаях перезапуск NFS от имени пользователя root (/sbin/service nfs restart) приводит к тому, что эти службы правильно регистрируются в portmap и начинают работать.

Portmap — это служба, которая преобразует номера программ RPC в номера портов протокола. Он должен быть запущен, чтобы выполнять вызовы RPC. Portmap делает возможным динамическое связывание удаленных программ. NFSv3 основан на карте портов. Мы углубимся в это сегодня.

Как работает Portmap?

Служба portmap сопоставляет номера службы и версии RPC с номерами портов, специфичными для транспорта.

При запуске службы RPC она сообщает portmap, какой номер порта она прослушивает и какие номера программ RPC она готова обслуживать. Когда клиент хочет выполнить RPC-вызов с заданным номером программы, он сначала свяжется с portmap на сервере, чтобы определить номер порта, на который должны отправляться RPC-пакеты.

На рисунке показан следующий процесс:

  1. Сервер регистрируется с помощью карты портов.
  2. Клиент получает порт сервера из карты портов.
  3. Клиент вызывает сервер.

NFSv3 и карта портов

NFSv3 основан на карте портов. Следующее описание относится к монтированию NFS версии 3. Процесс монтирования NFS версии 4 не включает ни службу portmap, ни протокол MOUNT.

Когда клиенту необходимо смонтировать файловую систему с сервера, клиент должен получить дескриптор файла с сервера. Дескриптор файла должен соответствовать файловой системе. Этот процесс требует выполнения нескольких транзакций между клиентом и сервером. В этом примере клиент пытается смонтировать /home/terry с сервера. Далее следует отслеживание этой транзакции.

клиент -> сервер PORTMAP C GETPORT prog=100005 (MOUNT) vers=3 proto=UDP

сервер -> клиент PORTMAP R GETPORT port=33492

клиент -> сервер MOUNT3 C Null

сервер -> клиент MOUNT3 R Null

клиент -> сервер MOUNT3 C Mount /export/home9/terry

сервер -> клиент MOUNT3 R Монтировать OK FH=9000 Auth=unix

клиент -> сервер PORTMAP C GETPORT prog=100003 (NFS) vers=3 proto=TCP

сервер -> клиент PORTMAP R GETPORT port=2049

клиент -> сервер NFS C NULL3

сервер -> клиент NFS R NULL3

клиент -> сервер NFS C FSINFO3 FH=9000

сервер -> клиент NFS R FSINFO3 OK

клиент -> сервер NFS C GETATTR3 FH=9000

сервер -> клиент NFS R GETATTR3 OK

Процесс монтирования NFS

  • В этой трассировке клиент сначала запрашивает номер порта монтирования у службы карты портов на сервере NFS.
  • После того как клиент получает номер порта подключения (33492), этот номер используется для проверки доступности службы на сервере.
  • После того, как клиент определил, что служба работает на этом номере порта, клиент отправляет запрос на подключение.
  • Когда сервер отвечает на этот запрос, он включает дескриптор файла для монтируемой файловой системы (9000).
  • Затем клиент отправляет запрос на номер порта NFS. Когда клиент получает номер от сервера, он проверяет доступность службы NFS (nfsd). Кроме того, клиент запрашивает информацию NFS о файловой системе, в которой используется дескриптор файла.

Проверьте порт карты портов 111 в Linux

Хорошо известный номер порта для portmap — 111. Мы можем использовать rpcinfo -p, чтобы проверить, какая служба rpc зарегистрирована в portmap. Обычно эта команда отвечает всем зарегистрированным службам RPC, работающим на сервере.

В списке отображается номер программы, версия, протокол, порт и имя службы. Одним из перечисленных является сервис mountd.

сообщить об этом объявлении

сообщить об этом объявлении

Уже доступна книга Red Hat Enterprise Linux 8 Essentials.

Купите копию Red Hat Enterprise Linux 8 (RHEL 8) Essentials в формате электронной книги (24,99 доллара США) или печатной версии (36,99 доллара США)

Печатная и электронная версии Red Hat Enterprise Linux 8 Essentials (ePub/PDF/Kindle) содержат 31 главу и более 250 страниц

18.9. NFS и portmap

Следующий раздел относится только к реализациям NFSv2 или NFSv3, которым требуется служба portmap для обратной совместимости.

Программа portmapper сопоставляет службы RPC с портами, которые они прослушивают. Процессы RPC уведомляют portmap при запуске, регистрируя порты, которые они прослушивают, и номера программ RPC, которые они ожидают обслуживать. Затем клиентская система связывается с portmap на сервере с определенным номером программы RPC. Служба portmap перенаправляет клиента на правильный номер порта, чтобы он мог связаться с запрошенной службой.

Поскольку службы на основе RPC полагаются на portmap для установления всех соединений с входящими запросами клиентов, portmap должен быть доступен до запуска любой из этих служб.

Служба portmap использует оболочки TCP для управления доступом, а правила управления доступом для portmap влияют на все службы на основе RPC. В качестве альтернативы можно указать правила управления доступом для каждого из демонов NFS RPC. Справочные страницы для rpc.mountd и rpc.statd содержат информацию о точном синтаксисе этих правил.

18.9.1. Устранение неполадок NFS и portmap

Поскольку portmap обеспечивает координацию между службами RPC и номерами портов, используемыми для связи с ними, при устранении неполадок полезно просматривать состояние текущих служб RPC с помощью portmap. Команда rpcinfo показывает каждую службу на основе RPC с номерами портов, номером программы RPC, номером версии и типом IP-протокола (TCP или UDP).

Чтобы убедиться, что для portmap включены соответствующие службы NFS на основе RPC, выполните следующую команду от имени пользователя root:

Ниже приведен пример вывода этой команды:

Если одна из служб NFS запускается неправильно, portmap не сможет сопоставить запросы RPC от клиентов для этой службы с правильным портом. Во многих случаях, если NFS отсутствует в выходных данных rpcinfo, перезапуск NFS приводит к правильной регистрации службы в portmap и началу работы. Инструкции по запуску NFS см. в Раздел 18.5, «Запуск и остановка NFS».

Другие полезные параметры доступны для команды rpcinfo. Дополнительную информацию см. на справочной странице rpcinfo.


сообщить об этом объявлении

Читайте также: