FreeBSD virtual environment management and repository

2020-10 upd: we reached the first fundraising goal and rented a server in Hetzner for development! Thank you for donating !

Внимание! Данные страницы описывают CBSD версии 13.0.x. Если вы используете более раннюю версию, рекомендуется сначала обновиться.

Работа с NAT

Команды natcfg, naton, natoff

			% cbsd natcfg
			% cbsd naton
			% cbsd natoff
		

Описание:

Не всегда клеткам требуются внешние IP, либо, по причинам безопасности, ряд сервисов разворачивают на приватных IP, чтобы они были недоступны со стороны Internet. При этом, самим клетками доступ в Internet может быть необходим. В этом случае используется NAT, транслирующий приватные IP адреса клетки на внешний IP сервера. Функционал CBSD имеет шаблон конфигурации NAT правил для трансляции приватных сетей RFC1918. Для этого, первым делом необходимо через команду:

			% cbsd natcfg
		

выбрать соответствующий фунционал, для которого будут сгенерирована конфигурация NAT: pf, ipfw или ipfilter, по именам соответствующих фреймворков

Внимание: При конфигурировании, системных /boot/loader.conf ноды будет изменен для загрузки соответствующих модулей.

Выбор фреймворка и IP в качестве NAT alias выполняется при первом запуске cbsd initenv, в последствии может быть переконфигурирован через cbsd initenv-tui. Для того, чтобы измененный natip вступил в силу, необходимо запустить cbsd natcfg и cbsd naton еще раз. В данный момент, средства CBSD по конфигурации nat ограничиваются только созданием правил для трансляции приватных сетей и если вам необходимо получить от NAT чего-то большее, вы можете отредактировать созданный файл правил вручную в каталоге $workdir/etc/ в файлах:

  • pfnat.conf, если используется PF
  • ipfw.conf, если используется IPFW
  • ipfilter.conf, если используется IPNAT из пакета IPFilter

Примечание:

Если nodeip (IP ноды) сам находится в пределах RFC1918 сетей, для этой подсети правило трансляции NAT создано не будет. Для отключения управлением nat средствами CBSD, воспользуйтесь запуском команды:

			% cbsd natoff
		

Внимание: Будьте аккуратны, если активируете NAT через ipfw. Это правило подгружает модуль ipfw.ko, в настройках которого по-умолчанию запрещены все пакеты. Если вы проводите эту операцию удаленно, вы можете через /boot/loader.conf включить ipfw с правилом, по-умолчанию разрешающих все пакеты:

ipfw_load="YES"
net.inet.ip.fw.default_to_accept=1
		

Пример. Запускаем конфигуратор и активируем NAT через pf, в качестве aliasing-IP используется 192.168.1.2, ранее инициализированный в /etc/rc.conf:

% cbsd natcfg
Configure NAT for RFC1918 Network?
[yes(1) or no(0)]
yes
Set IP address as the aliasing NAT address, e.g: 192.168.1.2

Which NAT framework do you want to use: [pf]
(type FW name, eg pf,ipfw,ipfilter or "exit" for break)

% cbsd naton
No ALTQ support in kernel
ALTQ related functions disabled
No ALTQ support in kernel
ALTQ related functions disabled
pfctl: pf already enabled