Итак, тем, кому необходимо чтобы веб-сервер находящийся в локальной сети был доступен по его доменному имени как из локальной сети, так и снаружи, предлагаю простой способ. В то время как внешние DNS сервера разрешают доменное имя веб-сервера во внешний IP zentyal, внутренний DNS сервер, обслуживающий локальную сеть, должен разрешать его в локальный IP сервера. Для простой "плоской" локальной сети, где веб-сервер находится в одном broadcast domain со всеми остальными компьютерами, достаточно лишь пробросить 80-й порт снаружи на веб-сервер и настроить внутренний DNS. Если внутри сети DNS запросы обслуживает zentyal, последнее можно сделать например так:
DNS -> Domains -> Add new
Domain: example.com (имя вашего домена)
IP Address: 192.168.1.253 (локальный IP веб-сервера)
Add
Save changes
теперь снаружи nslookup example.com выдаст:
Non-authoritative answer:
Name: example.com
Address: 192.0.43.10
а изнутри:
Name: example.com
Address: 192.168.1.253
внешние пользователи будут попадать на веб-сервер через проброшенный на zential порт, а внутренние - непосредственно по локальному IP, минуя zentyal.
Это, повторюсь, простой случай. Теперь для GriefNorth'а. У вас веб-сервер находится в DMZ, отгороженный от остальной локальной сети. Так что клиенты из локальной сети пойдут на веб-сервер через zentyal. Само по себе это никак не мешает работе способа приведенного выше. Zentyal - прежде всего маршрутизатор, и передавать пакеты из одной сети в другую - его работа. Однако прозрачный squid ломает эту схему. Он перехватывает все пакеты с 80-м портом назначения не адресованные непосредственно интерфейсу, который он слушает и где-то запутывается - ничего не работает. Проверено, что стоит отключить squid - все работает прекрасно. Понятно, что squid отключать не хочется, а надо сделать так, чтобы он не перехватывал 80 порт, когда запрос идет на внутренний веб-сервер.
Сделать это можно пробросом 80-го порта с интерфейса eth2 на адрес веб-сервера.
eth2 Zentyal TCP 80 Any 192.168.1.253 Same
Т.к. squid не перехватывает пакеты адресованные самим интерфейсам zentyal, опубликовав 80-й порт на eth2 мы избавимся от глючного проксирования локального веб-сервера. Теперь для локальной сети 192.168.2.0/24 адресом веб сервера будет локальный адрес zentyal (192.168.2.56). Но мы хотим обращаться к сайту по имени. Для нашего случая настройки DNS будут другими:
DNS -> Domains -> Add new
Domain: имя вашего домена
IP Address: 192.168.2.56
Add
Save changes