Система Freebsd-8, поднят bind-9 и pf. Dns кэширующий + slave зона внутреннего домена (MS AD). Если пинговать по имени хоста (локальный домен)с фри, то ip-ник определяется без проблем:
# nslookup comp-1
Server: 127.0.0.1
Address: 127.0.0.1#53Name: comp-1.domen.com
Address: 192.168.1.5В pf.conf:
table <test> {comp-1, comp-2}
block all
pass on $ext_if from <test> to anyПри проверке конфига ошибки нет, при загрузке выдает ошибку:
#pfctl -nf /etc/pf.conf
#pfctl -f /etc/pf.conf
no IP address found for comp-1
/etc/pf.conf:10: could not parse host specification
pfctl: Syntax error in config file: pf rules not loadedесли указать полное имя comp-1.domen.com, тоже выдает ошибку.
Как заставить PF определять локальные (внутренние) доменные имена?
>[оверквотинг удален]
> block all
> pass on $ext_if from <test> to any
> При проверке конфига ошибки нет, при загрузке выдает ошибку:
> #pfctl -nf /etc/pf.conf
> #pfctl -f /etc/pf.conf
> no IP address found for comp-1
> /etc/pf.conf:10: could not parse host specification
> pfctl: Syntax error in config file: pf rules not loaded
> если указать полное имя comp-1.domen.com, тоже выдает ошибку.
> Как заставить PF определять локальные (внутренние) доменные имена?а что у вас в /etc/resolve.conf
> а что у вас в /etc/resolve.confresolve.conf:
domain domen.com
nameserver 127.0.0.1
nameserver xxx.xxx.xxx.xxx
А покажите еще nsswitch.conf
>[оверквотинг удален]
> block all
> pass on $ext_if from <test> to any
> При проверке конфига ошибки нет, при загрузке выдает ошибку:
> #pfctl -nf /etc/pf.conf
> #pfctl -f /etc/pf.conf
> no IP address found for comp-1
> /etc/pf.conf:10: could not parse host specification
> pfctl: Syntax error in config file: pf rules not loaded
> если указать полное имя comp-1.domen.com, тоже выдает ошибку.
> Как заставить PF определять локальные (внутренние) доменные имена?это проблема курицы и яйца
во время загрузки правил сеть может быть настроена, но не должна работать, в том смысле, что должна не работатьP.S. обеспечьте или прямое указание IP, или укажите соответствие в файле /etc/hosts
P.P.S. и не пытайтесь решать проблемы, посильные только барону Мюнхгаузену, старайтесь их избегать
> это проблема курицы и яйца
> во время загрузки правил сеть может быть настроена, но не должна работать,
> в том смысле, что должна не работатьзачем сеть, если копия зоны домена есть в DNS (bind-9) и по идее PF, перед загрузкой правил может проверить соответствие ip-шников.
> P.S. обеспечьте или прямое указание IP, или укажите соответствие в файле /etc/hosts
в локальном домене IP раздаются DHCP (MS AD + DHCP + DNS), так что ip-шники прописать не получится.
потому и задал вопрос.
>> это проблема курицы и яйца
>> во время загрузки правил сеть может быть настроена, но не должна работать,
>> в том смысле, что должна не работать
> зачем сеть, если копия зоны домена есть в DNS (bind-9) и по
> идее PF, перед загрузкой правил может проверить соответствие ip-шников.
>> P.S. обеспечьте или прямое указание IP, или укажите соответствие в файле /etc/hosts
> в локальном домене IP раздаются DHCP (MS AD + DHCP + DNS),
> так что ip-шники прописать не получится.
> потому и задал вопрос.только прикол в том, что pf в момент загрузки правил запросит их ip и дальше будет работать с этими ip до следующей перезагрузки правил. если у клиента со временем ip изменится pf на это не обратит внимание до следующей перезагрузки правил.
> только прикол в том, что pf в момент загрузки правил запросит их
> ip и дальше будет работать с этими ip до следующей перезагрузки
> правил. если у клиента со временем ip изменится pf на это
> не обратит внимание до следующей перезагрузки правил.это уже другая проблема. а как его заставить взять IP с DNS и не выдавать ошибку при загрузке правил?
>> только прикол в том, что pf в момент загрузки правил запросит их
>> ip и дальше будет работать с этими ip до следующей перезагрузки
>> правил. если у клиента со временем ip изменится pf на это
>> не обратит внимание до следующей перезагрузки правил.
> это уже другая проблема. а как его заставить взять IP с DNS
> и не выдавать ошибку при загрузке правил?fBSD80# cat /etc/pf.conf
table <tt> { server, www }
block all
pass on em1 from <tt> to anyfBSD80# pfctl -f /etc/pf.conf
fBSD80# pfctl -sT
ttfBSD80# pfctl -t tt -Ts
192.168.11.1
192.168.11.11
fBSD80#
> fBSD80# cat /etc/pf.conf
> table <tt> { server, www }
> block all
> pass on em1 from <tt> to any
> fBSD80# pfctl -f /etc/pf.confПравила не загружаются выдает ошибку:
#pfctl -f /etc/pf.conf
no IP address found for comp-1
/etc/pf.conf:10: could not parse host specification
pfctl: Syntax error in config file: pf rules not loaded> fBSD80# pfctl -sT
> tt
> fBSD80# pfctl -t tt -Ts
> 192.168.11.1
> 192.168.11.11
> fBSD80#При проверке таблица не создана:
#pfctl -t test -Ts
pfctl: Table does not exist.По какой-то причине PF не проверяет (не может найти)имя "comp-1" в локальном DNS freebsd.
Что нужно указать, или прописать, чтоб PF начал проверять имена в bind-е?
>[оверквотинг удален]
>> fBSD80# pfctl -t tt -Ts
>> 192.168.11.1
>> 192.168.11.11
>> fBSD80#
> При проверке таблица не создана:
> #pfctl -t test -Ts
> pfctl: Table does not exist.
> По какой-то причине PF не проверяет (не может найти)имя "comp-1" в локальном
> DNS freebsd.
> Что нужно указать, или прописать, чтоб PF начал проверять имена в bind-е?я показал вывод с чистой freeBSD 8.0 подняв только bind и ни чего не пересобирая.
попробуйте в /etc/resolve.conf оставить один nameserver 127.0.0.1, в bind включите логирование запросов и проверьте
> попробуйте в /etc/resolve.conf оставить один nameserver 127.0.0.1, в bind включите логирование запросов и проверьтеПопробывал, не получилось. В логах на запросы видно, что обращения по именам идут от 127.0.0.1, то есть от самой фри.
вот что странно, при проверке правил, если добавить ключ -v, PF корректно определяет IP:
#pfctl -vnf /etc/pf.conf
table <test> {192.168.1.5, 192.168.1.6}block all
pass on $ext_if from <test> to anyНо тогда почему он не хочет их загружать? может это глюк в PF?
>> попробуйте в /etc/resolve.conf оставить один nameserver 127.0.0.1, в bind включите логирование запросов и проверьтене /etc/resolve.conf, а /etc/resolv.conf
> не /etc/resolve.conf, а /etc/resolv.confВ /etc/resolv.conf и пробывал оставить 127.0.0.1.
PF выдает ошибку при загрузке правил.
>> не /etc/resolve.conf, а /etc/resolv.conf
> В /etc/resolv.conf и пробывал оставить 127.0.0.1.
> PF выдает ошибку при загрузке правил.мой совет обеспечить или прямое указание IP, или указать соответствие в файле /etc/hosts все еще в силе
поскольку Вы его упорно игнорируете, мое участие в этом топике сводится к указанию на явные ошибки
кстати говоря,
> в локальном домене IP раздаются DHCP (MS AD + DHCP + DNS), так что ip-шники прописать не получится.
> потому и задал вопрос.это ошибочное мнение
> мой совет обеспечить или прямое указание IPпо некоторым причинам нужно было указывать имя хоста
> или указать соответствие в файле /etc/hosts все еще в силе поскольку Вы его упорно игнорируете, мое участие в этом топике сводится к указанию на явные ошибки кстати говоря
не игнорирую. учитывая ситуацию что хост по имени "comp-1" может изменить ip с 192.168.1.5 на любой другой, считаю не целесообразным вносить соответствие в файл /etc/hosts, по той причине что его постоянно нужно будет корректировать при изменении ip, а так как в сети больше сотни хостов, можно заколупатся постоянно править файл /etc/hosts.
использовать скрипт, чтоб сам вносил изменения, тоже не выход, так как могут быть ошибки на разных этапах.>> в локальном домене IP раздаются DHCP (MS AD + DHCP + DNS), так что ip-шники прописать не получится.
>> потому и задал вопрос.
> это ошибочное мнениепочему? поясни если не сложно.
>[оверквотинг удален]
> с 192.168.1.5 на любой другой, считаю не целесообразным вносить соответствие в
> файл /etc/hosts, по той причине что его постоянно нужно будет корректировать
> при изменении ip, а так как в сети больше сотни хостов,
> можно заколупатся постоянно править файл /etc/hosts.
> использовать скрипт, чтоб сам вносил изменения, тоже не выход, так как могут
> быть ошибки на разных этапах.
>>> в локальном домене IP раздаются DHCP (MS AD + DHCP + DNS), так что ip-шники прописать не получится.
>>> потому и задал вопрос.
>> это ошибочное мнение
> почему? поясни если не сложно.потому, что обеспечить актуальность записей, к примеру, в /etc/hosts и обеспечить перезагрузку правил pf при изменении /etc/hosts или занесение/удаление IP по FQDN в таблицу будет проще и эффективней, чем пытаться обеспечить загрузку правил с FQDN на старте системы и получить ее (систему) с неактуальными правилами (еще и при том, что эта загрузка через раз срабатывать будет в зависимости от фаз луны и других небесных, а иногда и не небесных тел)
Учитывая то, что PF по ряду причин не корректно работает с FQDN, в данной ситуации остается указывать только IP адреса в правилах. Привязку IP к имени хоста реализовать в MS DHCP резервированием.Всем спасибо за участие в топике. Отдельная благодарность Aquarius.
Тема закрыта.
> Учитывая то, что PF по ряду причин не корректно работает с FQDN,Поясните пожалуйста.
AFAIR там нет никакой магии, а совершенно обычный getaddrinfo(3)
>> Учитывая то, что PF по ряду причин не корректно работает с FQDN,
> Поясните пожалуйста.
> AFAIR там нет никакой магии, а совершенно обычный getaddrinfo(3)для загрузки правил, содержащих FQDN на стадии первоначальной загрузки должны быть соблюдены некоторые условия:
1. если на локальном хосте есть сервер DNS, единственный указанный в /etc/resolv.conf, он должен быть запущен и содержать информацию на момент загрузки правил PF
для этого:
2. если на локальном хосте нет сервера DNS, указанного в /etc/resolv.conf, сервер, указанный в /etc/resolv.conf, должен быть directly connected
3. если ни на локальном хосте, ни в локальной сети нет сервера DNS, указанного в /etc/resolv.conf, маршруты, позволяющие соединиться с сервером DNS, должны быть в таблице маршрутизации
4. помимо этого, всякий раз, как меняется соответствие между FQDN, задействованном в правилах и IP, кто-то должен позаботиться о перезагрузке правил
>[оверквотинг удален]
> он должен быть запущен и содержать информацию на момент загрузки правил
> PF
> для этого:
> 2. если на локальном хосте нет сервера DNS, указанного в /etc/resolv.conf, сервер,
> указанный в /etc/resolv.conf, должен быть directly connected
> 3. если ни на локальном хосте, ни в локальной сети нет сервера
> DNS, указанного в /etc/resolv.conf, маршруты, позволяющие соединиться с сервером DNS,
> должны быть в таблице маршрутизации
> 4. помимо этого, всякий раз, как меняется соответствие между FQDN, задействованном в
> правилах и IP, кто-то должен позаботиться о перезагрузке правилЭто вы все к чему пишите???
Я просил пояснить тезис о некорректной работе pf с fqdn, типа а вдруг надо бежать
pr открывать)
>[оверквотинг удален]
>> указанный в /etc/resolv.conf, должен быть directly connected
>> 3. если ни на локальном хосте, ни в локальной сети нет сервера
>> DNS, указанного в /etc/resolv.conf, маршруты, позволяющие соединиться с сервером DNS,
>> должны быть в таблице маршрутизации
>> 4. помимо этого, всякий раз, как меняется соответствие между FQDN, задействованном в
>> правилах и IP, кто-то должен позаботиться о перезагрузке правил
> Это вы все к чему пишите???
> Я просил пояснить тезис о некорректной работе pf с fqdn, типа а
> вдруг надо бежать
> pr открывать)пояснения по вашей просьбе; у новичков обычно своеобразные представления о корректной работе