Некоторые догадки ниже, так что будьте бдительны. Однако это очень типичная установка, которая сбивает с толку многих людей, которые начинают с объединения маршрутизации, фильтрации пакетов (брандмауэр) и NAT (преобразование сетевых адресов).
Вы не указали это четко, но я предполагаю, что ваша сеть выглядит следующим образом:
Internet <-A-> SOHO Router <-B-> Server/workstation <-C-> VM
Ваш DNS-сервер находится в сети B, которая находится по адресу 192.168.1.0/24.
Я предполагаю, что ваш интернет-маршрутизатор SOHO 192.168.1.1 и установлен в качестве шлюза по умолчанию для сети. Это будет чрезвычайно распространенная установка.
Вы сами утверждаете, что DNS-сервер находится по адресу 192.168.1.2, а мостовой интерфейс сервера — 192.168.1.10. За этим у вас есть сеть 10.9.9.0/24.
Ваша установка iptables будет пересылать все пакеты на интерфейс. На практике вы отправляете все пакеты из одной сети в другую, даже локальные пакеты. Это важное отличие.
В конфигурации pf вы не пересылаете все пакеты на интерфейс. Вы указали сеть em1:сеть
.У нас нет полной конфигурации, но я предполагаю, что у вас действительно есть хорошая и рабочая базовая конфигурация. Что вас кусает, так это недостающие маршруты.
Когда вы отправляете пакет из сети 10.9.9.0/24, он достигает сети 192.168.1.0/24. У вашего сервера есть доступ к этой сети, поэтому вы напрямую доберетесь до своего DNS. Но DNS-сервер в сети B понятия не имеет, как получить доступ к нелокальной сети C 10.9.9.0/24. Затем все ответы будут отправлены на «маршрутизатор по умолчанию», который, как я полагаю, является вашим маршрутизатором SOHO. Этот маршрутизатор также знает только, где найти сеть 192.168.1.0/24 (а не 10.9.9.0/24), и обычно направляет все на ваш внешний интернет-канал. В этом случае вы используете правильные частные адреса, поэтому вместо этого пакет будет отброшен, поскольку частные адреса не маршрутизируются в Интернете.
«Правильным» решением было бы настроить маршрут на вашем SOHO-маршрутизаторе, который указывает ему направлять пакеты для 10.9.9.0/24 на 192.168.1.10. Приличный маршрутизатор позволит вам сделать это. Многие дешевые маршрутизаторы SOHO, к сожалению, этого не делают. В этом случае вы можете добавить маршрут на свой DNS-сервер, чтобы проверить его.
Если вам не нужна/не нужна фильтрация пакетов, я бы посоветовал вам не использовать брандмауэр. То, что вы пытаетесь сделать, должно обрабатываться простой маршрутизацией.
Проверьте журнал ошибок Apache. Если вы обнаружите сообщения, в которых говорится «клиент отклонен конфигурацией сервера», значит, у вас нет соответствующего блока
, позволяющего Apache обслуживать файлы из /Users/crmpicco/Sites/crmpicco.co. uk /
.
Если в журнале ошибок упоминается (13) Permission denied
, то это означает, что ОС останавливает Apache, обслуживающий файлы из этого каталога (а не саму конфигурацию Apache), и вам следует посмотреть разрешения всех каталогов в путь. Помните, что Apache должен иметь возможность пройти весь путь, а не только последний компонент.
Если весь путь в порядке, то, вероятно, у вас работает какое-то программное обеспечение безопасности, которое не позволяет Apache обслуживать файлы.