Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Шлюз на FreeBSD 8

253
28 февраля 2010 года
Proger_XP
1.5K / / 07.08.2004
Есть комп с FreeBSD 8, который я пытаюсь использовать как шлюз для компов с WinXP.
Я пересобрал ядро с поддержкой ipfw, всё настроил, и всё вроде работает, кроме одного: DNS.

Вот что я пробовал (на кливентской системе в адресе шлюзе указан IP моего шлюза, он пингуется):
  • если у клиента в DNS не указывать ничего, то с этой машины DNS не работает (nslookup в качестве сервера по умолчанию пишет 127.0.0.1);
  • тоже самое получается, если указать адрес шлюза как DNS;
  • если же явно указать адрес DNS прова, то всё замечательно работает.

Заметил, что, если я подключаюсь к сети напрямую (без шлюза), то в свойствах соединения адрес DNS автоматически ставится как адрес DNS прова.
Вопрос - как сделать так, чтобы шлюз автоматически отправлял этот адрес клиенту? Или по крайней мере пропускал запросы DNS через себя?

Я ради интереса попробовал поднять named на шлюзе с forwarders { адрес-DNS-прова; }; - у клиента указал адрес шлюз как DNS и это тоже заработало. Но не хочется же держать BIND только ради этого...

Конфиги:

Код:
# ipfw list
00100 divert 8668 ip from any to any via rl0
00200 allow ip from any to any
65535 allow ip from any to any

# netstat -r
Routing tables
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            172.хх.16.1        UGS         1      254    rl0
localhost          link#3             UH          0        0    lo0
172.xx.16.0/21     link#1             U           0        0    rl0
172.xx.17.210      link#1             UHS         0        0    lo0
192.168.4.0        link#2             U           1      559    ed0
192.168.4.1        link#2             UHS         0        0    lo0

# cat /etc/rc.conf
gateway_enable="YES"
hostname="ga.ter"
inetd_enable="YES"
sshd_enable="YES"
named_enable="YES"

ifconfig_rl0="dhcp"
ifconfig_ed0="inet 192.168.4.1 netmask 255.255.255.0"

defaultrouter="172.xx.0.4"
natd_enable="YES"
natd_interface="rl0"
natd_flags=""
firewall_enable="YES"
firewall_type="/usr/local/etc/firewall.conf"


rl0 - интерфейс во внешнюю сеть, ed0 - внутренняя сеть. Странно, что default gateway = 172.хх.16.1, хотя я указал ему 172.хх.0.4
245
28 февраля 2010 года
~ArchimeD~
1.4K / / 24.07.2006
А как еще? Шлюз сам по себе не днс-сервер. Нужен днс-форвардер, что ты собственно и сделал. Или другой вариант, который ты тоже сделал - указать клиентам внешний днс. Можно по dhcp, чтобы у компов в локалке руками не ковырять настройки.
253
28 февраля 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
А как еще? Шлюз сам по себе не днс-сервер.


Аа... я просто сколько прочитал статей по поводу поднятия шлюза, так там всё было просто: пересобрать ядро с ipfw и добавить его в rc.conf вместе с gateway
_enable и defaultrouter. Про то, что у клиентов тоже надо руками прописывать, не было сказано.
Так что я думал всё это будет прозрачно.

Цитата:
Можно по dhcp, чтобы у компов в локалке руками не ковырять настройки.


Я тоже думал в сторону DHCP, но для моей сетки это будет слишком круто.

Спасибо за разъяснение, ~ArchimeD~ :)

245
28 февраля 2010 года
~ArchimeD~
1.4K / / 24.07.2006
И да, ядро пересобирать не надо. ipfw если не изменяет память со склерозом присутствует в модулях. А насчет крутизны - че там :) У меня локалка из 2х компов дома и дхцп стоит.
На всякий случай, /usr/ports/net/isc-dhcp31-server

UPD: Я тут подумал насчет еще одного бредового варианта - редиректить фаерволом порт (53 кажется) на днс-сервер прова, но что-то я настолько смутно себе представляю, как оно уживется с натом, что не буду дальше развивать мысль.
1
01 марта 2010 года
kot_
7.3K / / 20.01.2000
не знаю как в 7-8 - но в более ранних версиях ядро пересобирать надо. Выходом в данной ситуации был бы обычный кеширующий DNS-сервер. DHCP - это кому как нравится. У меня в домашней сетке из 3-х ноутов и сервера DHCP поднят - ибо удобно.
2
01 марта 2010 года
squirL
5.6K / / 13.08.2003
не надо ковырять ядро. и не надо хотеть в 2010-м году пользоваться natd
pf_enable="YES" в rc.conf
в /etc/pf.conf
 
Код:
ext_if="rl0"
nat on $ext_if from !($ext_if) to any -> ($ext_if)

DNS можно в дефолтной конфигурации использовать, либо прописать ему forwarders'ов прововских.
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-dns.html
2
01 марта 2010 года
squirL
5.6K / / 13.08.2003
Цитата: Proger_XP

Вопрос - как сделать так, чтобы шлюз автоматически отправлял этот адрес клиенту? Или по крайней мере пропускал запросы DNS через себя?

Я ради интереса попробовал поднять named на шлюзе с forwarders { адрес-DNS-прова; }; - у клиента указал адрес шлюз как DNS и это тоже заработало. Но не хочется же держать BIND только ради этого...



вообще-то - держать bind для таких целей - нормальная практика.
и да, что мешает выдавать DNS по DHCP?

253
01 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
не надо хотеть в 2010-м году пользоваться natd
pf_enable="YES" в rc.conf
в /etc/pf.conf


Хм, про pf нигде не читал. Спасибо, попробую, когда пров вернёт мне инет.

Цитата:
вообще-то - держать bind для таких целей - нормальная практика.


А, ясно. Я первый раз что-то такое делаю, так что пока не знаю, что нормально, а что нет :)

Цитата:
и да, что мешает выдавать DNS по DHCP?


Читал где-то, что DHCP используется в больших сетях, вот и подумал, что тяжеловато будет для сети в несклько компов. Впрочем, попробую поставить, тем более все так его советуют :)

Спасибо за ответы.

2
01 марта 2010 года
squirL
5.6K / / 13.08.2003
Цитата: Proger_XP

Читал где-то, что DHCP используется в больших сетях, вот и подумал, что тяжеловато будет для сети в несклько компов. Впрочем, попробую поставить, тем более все так его советуют :)


DHCP используется в сетях от двух до бесконечности компов. разницы - нету.

253
01 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Всё, настроил себе DHCP - работает замечательно :) Спасибо всем за помощь.

upd:
Хм, интересно, при старте системы named занимает почти 50 метров оперативки, а если перезапустить его, то 15. Потом с течением времени снова набирает, прчём комп не подключен к инету и запросов, которые мог бы кэшировать, тоже не было. Почему он такой огромный?..
253
01 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: Proger_XP
Хм, интересно, при старте системы named занимает почти 50 метров оперативки, а если перезапустить его, то 15.


Всё-таки не понятно, чего он столько занимает. Пробовал погуглить, но нахошел только про опции datasize и max-cache-size. Я их пробовал в named.conf ставить, но изменений вообще никаких. При том, что на другом сервере с FreeBSD 6 named занимает едва ли 4 метра.
BIND v9.

named.conf:

Код:
acl mynet {
        192.168.4.0/8;
};

options {
        directory       "/etc/namedb";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";

        allow-query     { mynet; };
        allow-transfer  { mynet; };
        allow-recursion { mynet; };

        forwarders { };
};

zone "." { type hint; file "named.root"; };


#top -o size:
Код:
last pid: 77343;  load averages:  1.05,  1.11,  0.95    up 0+00:35:28  16:43:00
38 processes:  2 running, 36 sleeping
CPU: 39.0% user,  0.0% nice, 60.6% system,  0.0% interrupt,  0.4% idle
Mem: 68M Active, 255M Inact, 83M Wired, 23M Cache, 60M Buf, 65M Free
Swap: 4096M Total, 4096M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
77342 root        1  98    0 44172K 41588K RUN      0:01  8.98% cc1plus
77325 bind        4  76    0 15388K  9620K kqread   0:00  0.00% named
12932 root        1  44    0  9400K  3148K select   0:01  0.00% sshd
  840 root        1  44    0  6676K  2724K select   0:00  0.00% sshd
  847 root        1  44    0  6072K  2436K select   0:00  0.00% sendmail
  851 smmsp       1  44    0  6072K  2392K pause    0:00  0.00% sendmail
13389 root        1  44    0  5556K  2196K pause    0:00  0.00% csh
  917 root        1  44    0  5556K  2124K pause    0:00  0.00% csh
 3045 root        1  44    0  5556K  2056K ttyin    0:00  0.00% csh
76809 root        1  76    0  4212K  1524K wait     0:00  0.00% gmake
76161 root        1  76    0  4212K  1476K wait     0:00  0.00% gmake
76014 root        1  76    0  4212K  1472K wait     0:00  0.00% gmake
60557 root        1  76    0  4212K  1200K wait     0:00  0.00% gmake
  909 root        1  46    0  3808K  1404K wait     0:00  0.00% login
  910 root        1  44    0  3808K  1404K wait     0:00  0.00% login
77339 root        1  44    0  3680K  1556K RUN      0:00  0.00% top
76162 root        1  76    0  3624K  1184K wait     0:00  0.00% sh
253
02 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Что-то у меня вообще с памятью ерунда какая-то... В добавок к named mysqld (v6) тоже занимает нереальный объём (100М+). Я пробовал и my-small.cnf, и my-medium.cnf - разница только в 19 метров (~100 и ~119). Ощутимый эффект даёт skip-innodb и skip-falcon - тогда оно снижается до 50 мб.

Правда, я всё это смотрю через TOP, а там 2 колонки - SIZE & RES. RES всегда показывает, действительно, немного (30 мб при -medium, даже со включенными falcon и innodb), но почему такой огромный SIZE?
Я поискал в инете, и так понял (хотя толком никто точно сказать не мог), что RES - это то, что используется процессом, а SIZE - некий общий размер, который может использоваться в принципе.

Отсюда вопросы:
1. насколько нормален такой разброс между size & res? На втором сервере (VDS) с FreeBSD 6 и MySQL 5 такого разброса нет ни у одного процесса - мускул (39m & 35m), named (4m & 3m), все httpd (~16m & ~11m).
2. почему, в конце концов, настолько большой size?..
3. всё это вообще странно, поскольку в компе стоит всего 128 мб RAM, а по выводу top там можно насчитать, будто у меня все 512 (по size). В то же время:
Mem: 80M Active, 996K Inact, 26M Wired, 1868K Cache, 22M Buf, 6836K Free
4. немного не по теме, но всё же: почему top показывает, что swap total = swap free? Вообще не используется свап?

Вот ещё что интересно - хотя у меня в my.cnf есть skip-innodb, в логе MySQL всё равно каждый раз записывается:
InnoDB: Started; log sequence number 0 46419
2
02 марта 2010 года
squirL
5.6K / / 13.08.2003
забей на память. это нормальное поведение FreeBSD.
6
02 марта 2010 года
George
4.1K / / 05.01.2007
оффтоп, хотя и не совсем.
немножко про днсы - меня мои местные задолбали - работали через одно место - инет работал через раз. погуглил и нашел гугловские днсы:
8.8.8.8
8.8.4.4
поставил - все стало работать на отлично. так что рекомендую.
253
03 марта 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
забей на память. это нормальное поведение FreeBSD.


Всмысле забить :eek: А как мне оценивать что сколько памяти ест тогда? Полагаться на RES?
Кстати, был бы признателен, если б ты намекнул насколько возможно, из-за чего такая разница size <-> res и отсутствие оной на VDS с фрёй 6. Я могу понять (хотя и со скрипом), что это может объясняться какими-то внутренними механизмами работы памяти, не доступными винд-программеру, но всё же...

Цитата:
немножко про днсы - меня мои местные задолбали - работали через одно место - инет работал через раз. погуглил и нашел гугловские днсы:
8.8.8.8
8.8.4.4


Ого, они их не закрывают для всех, кому не лень? Интересно, возьму на заметку :)

зы:
В силе остаётся вопрос о том, почему мускул упорно говорит, что грузит innodb, хотя её поддержка отключена (хотя тут может не стоило 6 версию ставить, рановато ещё)...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог