Страница 1 из 1

FreeBSD не работает как DNS сервер

Добавлено: 2015-12-10 9:44:06
Reken
Здравствуйте, помогите пожалуйста разобраться...

есть тестовый шлюз на FreeBSD 9.3 над ним есть вышестоящий прокси-сервер...

Задача такая, что бы FreeBSD служил DNS сервером и шлюзом для компов которые к нему "приуеплены" ко второй сетевухе.

Параметры FreeBSD:

etc/rc.conf

Код: Выделить всё

hostname="name.local"
keymap="ru.koi8-r.kbd"

gateway_enable="YES"
ifconfig_bfe0="inet 192.168.99.88 netmask 255.255.255.0" # внешняя сетевая карта
ifconfig_rl0="inet 192.168.0.4 netmask 255.255.255.0"   # внутрення сетевая карта
defaultrouter="192.168.99.4"                            # Вышестоящий шлюз

firewall_nat_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall.my"
squid_enable="YES"

sshd_enable="YES"
ntpd_enable="YES"
named_enable="YES"
/etc/resolv.conf

Код: Выделить всё

nameserver 192.168.99.5   # Вышестоящий DNS сервер 
nameserver 127.0.0.1      # Стандартный DNS
nameserver 8.8.8.8        # DNS от google
/etc/namedb/named.conf
Внесены следующие изменения:

Код: Выделить всё

listen-on { 127.0.0.1; 192.168.0.4; };
forwarders {
127.0.0.1; 192.168.99.5; 8.8.8.8;
};
/etc/rc.firewall.my

Код: Выделить всё

FwCMD="/sbin/ipfw -q"
LanOut="bfe0"

${FwCMD} -f -q flush

${FwCMD} nat 1 config log if ${LanOut} same_ports
${FwCMD} add nat 1 ip from any to any
Проблема в том, что с FreeBSD не проходит ping до компа, который прицеплен к внутренней сетевухе. Пинг до вышестоящего шлюза проходит.
Комп(192.168.0.6) который прицеплен к внутренней карте FreeBSD, может пропинговать FreeBSD, с таким результатом:

Код: Выделить всё

Ответ от 192.168.0.6: Заданный узел не доступен
Ответ от 192.168.0.6: Заданный узел не доступен
Ответ от 192.168.0.6: Заданный узел не доступен
Ответ от 192.168.0.6: Заданный узел не доступен
Пакетов отправлено =4, получено = 4, потеряно = 0
При попытке пропинговать с компа ya.ru, комп не преобразовывает ya.ru в ip, и пишет что не удалось обнаружить узел ya.ru. Следовательно FreeBSD не отрабатывает как DNS. В настройках компа в качестве DNS сервера и шлюза указан FreeBSD (192.168.0.4). Ну и интернет на компе не работает, пишет что сетевой кабель не подключен, на иконке сетевой карты отображается "без доступа к сети"...

Отправлено спустя 25 минут 24 секунды:
Я кажется понял в чем дело...
Команда ifconfig показывает что есть две сетевые карты rl0 и bfe0. Но у внутренней сетевухи (rl0) нет параметра inet... Следовательно она работает некорректно

FreeBSD не работает как DNS сервер

Добавлено: 2015-12-10 10:21:36
snorlov
Ну так приведите

Код: Выделить всё

ifconfig -a

FreeBSD не работает как DNS сервер

Добавлено: 2015-12-10 10:44:52
Reken
snorlov писал(а):Ну так приведите

Код: Выделить всё

ifconfig -a
rl0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=2008<VLAN_MTU,WOL_MAGIC>
ether 00:c0:26:21:2e:2f
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: active

bfe0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80008<VLAN_MTU,LINKSTATE>
ether 00:1a:a0:2e:dd:e9
inet 192.168.99.88 netmask 0xffffff00 broadcast 192.168.99.255
inet6 fe80::21a:a0ff:fe2e:dde9%bfe0 prefixlen 64 scopeid 0x8
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active

plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo. prefixlen 64 scopeid 0xa
inet 127.0.0.1 netmask 0xff000000
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

FreeBSD не работает как DNS сервер

Добавлено: 2015-12-10 10:48:36
snorlov
Копайте rc.conf там явно что-то не подребное в строке ifconfig_rl0, может описка типа буквы о

FreeBSD не работает как DNS сервер

Добавлено: 2015-12-10 11:03:36
Reken
snorlov писал(а):Копайте rc.conf там явно что-то не подребное в строке ifconfig_rl0, может описка типа буквы о
Спасибо за наводку...
Нужно ifconfig, а у меня было ifcongig
Внимательность рулит :good:

P.S. Всё заработало...

FreeBSD не работает как DNS сервер

Добавлено: 2015-12-10 11:31:10
Electronik
Reken писал(а): nameserver 192.168.99.5 # Вышестоящий DNS сервер
nameserver 127.0.0.1 # Стандартный DNS
nameserver 8.8.8.8 # DNS от google


/etc/namedb/named.conf
Внесены следующие изменения:

Код: Выделить всё
listen-on { 127.0.0.1; 192.168.0.4; };
forwarders {
127.0.0.1; 192.168.99.5; 8.8.8.8;
};
так может в /etc/resolv.conf поднимите на верх 127.0.0.1 .....
а то смысл "Стандартный DNS", если первоначально сервер запрашивает всегда у вышестоящего?

FreeBSD не работает как DNS сервер

Добавлено: 2015-12-11 13:11:08
guest
Electronik писал(а):
Reken писал(а): nameserver 192.168.99.5 # Вышестоящий DNS сервер
nameserver 127.0.0.1 # Стандартный DNS
nameserver 8.8.8.8 # DNS от google


/etc/namedb/named.conf
Внесены следующие изменения:

Код: Выделить всё
listen-on { 127.0.0.1; 192.168.0.4; };
forwarders {
127.0.0.1; 192.168.99.5; 8.8.8.8;
};
так может в /etc/resolv.conf поднимите на верх 127.0.0.1 .....
а то смысл "Стандартный DNS", если первоначально сервер запрашивает всегда у вышестоящего?
если бы только это:
nameserver 192.168.99.5 # Вышестоящий DNS сервер
nameserver 127.0.0.1 # Стандартный DNS
nameserver 8.8.8.8 # DNS от google
первым должен стоять свой: мастер или кеширующий, затем можно один или два
дополнительных на случай проблем с первым
/etc/namedb/named.conf
Внесены следующие изменения:

Код: Выделить всё
listen-on { 127.0.0.1; 192.168.0.4; };
forwarders {
127.0.0.1; 192.168.99.5; 8.8.8.8;
};
Пытайтесь обдумывать то что делаете, ваши действия (без учета ошибки с resolv.conf):
"вешаем свой DNS сервер на 127.0.0.1 - на lo0, это только для самого себя"
"вешаем свой DNS сервер на 192.168.0.4 - для своих клиентов локальной сети"
а далее, форвардим запросы снова на себя -> forwarders 127.0.0.1 и загоням резолвер
в цикл. Форвардят на другие сервера.

Неужели лень прочитать книгу про DNS?

resolv.conf - используют для dns резолвинга самой локальной машины
dns сервер в локалке делают - master, для резолвинга собственных и локальных зон,
или кеширующий, чтобы уменьшить трафик и кол-во обращений к внешним серверам.