LINUX.ORG.RU
ФорумAdmin

Раздача dns без dhcp


0

1

Сразу извиняюсь за дурацкий вопрос,но:

Есть две карты eth0 - мир, eth1 - локалка. Есть dns провайдера. В локалке у всех компьютеров указан dns 192.168.0.1, то бишь - eth1. Ещё одно лирическое отступление, использование dhcp исключается, т.к ip должны быть статические.

Собственно, вопрос:

Как возможно получать dns провайдера на клиентские машины, при обращении к адресу 192.168.0.1. И, думаю вариант поднять dns сервер не рассматривается, ибо, не стоит оно того, да и должен быть способ проще.

★★

Ответ на: комментарий от aol

а, да, для уточнения: это надо сделать на твоем dns-сервере.

aol ★★★★★ ()

использование dhcp исключается, т.к ip должны быть статические.

используй dhcp с привязкой по mac

uspen ★★★★★ ()

использование dhcp исключается, т.к ip должны быть статические.

О резервациях по MAC-адресам (hardware ethernet) и опции 50 протокола DHCP (dhcp-requested-address, http://www.ietf.org/rfc/rfc2132.txt, п.п. 9.1), благодаря которой клиент может запросить тот адрес, который захочет, вы, конечно, слыхать не слыхывали?

Если вы считаете поддержку статических адресов вручную обходом все ПК в локальной сети нормальной практикой, то почему вы не считаете нормальной практикой обойти все ПК и дописать им DNS провайдера тоже вручную?

Если нет, то воспользуйтесь первыми двумя советами, или DNS-сервером dnsmasq или bind9 в режиме forward.

anonymous ()

ну, ладно, ладно... есть у меня еще пара хромированных костыликов для тебя..

посмотри в сторону iptables вон, видишь, стоят в углу поблескивают, твои родимые ;)
что уж там потребуется-то? DNAT?

а вообще, анон верно подметил всё..

aol ★★★★★ ()
Ответ на: комментарий от anonymous

Объясню. Есть сеть, со статическими адресами, в качестве прокси-сервера там используется машина с вендой, которая используется ещё и как рабочая. От такого уё...тва вся система подвержена постоянному грохингу.

По поводу mac адресов, можно конечно использовать arp-scan, или обойти все компьютеры. Но зачем? Гораздо проще использовать существовавшую до этого авторизацию по ip. Единственное, вместо win+ccproxy+win шара+тетенька будет debian+squid+samba. То бишь, офисные тетеньки не должны заметить перемен. Как-то так.

Я не спорю, удобнее было бы делать авторизацию по mac и поднять dhcp, но, пока, увы так.(

bind9 - это dns-сервер. Хотелось бы обойтись без него, но, если по другому нельзя... Ушел гуглить.

nixit ★★ ()
Ответ на: комментарий от nixit

Но зачем?

сколько тебе лет, что ты так недальновиден?

во-первых, squid чудесно работает под вендой инфа 100%, начни с этого, замени ccproxy просто сегодня, когда все уйдут.

авторизация по ip на прокси никуда не денется от перехода от статических ip каждому ПК к раздаче этих же ip dhcp-сервером в соответствии с резервациями по MAC-адресам этих ПК. Понимаешь? Те же ПК получат те же ip, но от dhcp-сервера. Обходить все компьютеры не нужно, есть nmap - просто включи все ПК, и nmap -sP 192.168.0.0/24 от рута даст тебе все MAC'и и текущие их ip в пару к ним. Я тебе даже скрипт напишу, который преобразует выхлоп nmap в кусок конфига isc-dhcp. А на прокси останется та же авторизация по тем же ip

anonymous ()
Ответ на: комментарий от nixit

aol предложил костыль в виде проброса 53-его порта, на котором работает DNS с внутреннего интерфейса твоего шлюза на 53-й порт DNS-сервера провайдера.

Не делай так, сделай по-нормальному.

anonymous ()
Ответ на: комментарий от nixit

Делаешь dhcp, прописав для каждого MAC статический IP в конфиге dnsmasq. Проходишь по всем компьютерам и убираешь статику. Даже если там десятки машин (сотни и тысячи? что-то неправдоподобно), не верю, что так трудно снять на них 1 флажок в настройках.

KivApple ★★★★★ ()
Ответ на: комментарий от anonymous

Угу, всё больше склоняюсь к этой мыли. nmap не нужен, есть arp-scan например.) С конфигом попробую справиться сам.

А зачем винда, зачем лишняя нагрузка? К тому же, ИМХО - не для серверов винда совсем... И, я уточнил, это была рабочая машина... Т.е. за ней работает человек, по мимо того, что она исполняет обязанности прокси-сервера. Как бы, не комильфо... И главное, за linux без иксов, у директора сей фирмы мысль посадить кого-то работать никогда не придёт. Да и даже с иксами.) Сеть не моя, я отношение к ней не имею, попросили хорошие люди посмотреть, я как увидел ЭТО, согласился всё бесплатно сделать, даже отдать под сервер свой старый ПК. Только, чтобы не существовало это поделие во вселенной! Хотя, фЫрма не бедная, но, почему-то считают, что всё должно само по себе работать и на ИТ нужно экономить. Просто, одно из условий было, тетеньки ничего не должны менять в настройках...

Ну и всем ниже/выше отписавшимся - мерси. Буду поднимать dhcp. Спасибо что наставили на путь истинный.)

nixit ★★ ()
Ответ на: комментарий от anonymous

Прикинул, думаю, будет примерно так:

dhcpd3-server

ddns-update-style none;

option domain-name "server"; 

option domain-name-servers ДНС'ы провайдера;

#Время жизни адресов

default-lease-time 600;

max-lease-time 7200;

subnet 192.168.0.0 netmask 255.255.255.0 {

  range 192.168.0.2 192.168.0.254;

  option routers 192.168.0.1;

  option broadcast-address 192.168.0.255;

  interface eth1;

host vasa {

hardware ethernet 00:40:C7:34:90:1E;

fixed-address 192.168.0.2;

}

host petia {

hardware ethernet 00:40:C7:34:90:1D;

fixed-address 192.168.0.3;

}

Как то так? И обошлись без dnsmasq. Осталось сделать логирование в отдельный файл. Однако, два вопроса:

Какое время жизни адресов выставлять? А если, чисто теоретически, в сети будут два одинаковых mac адреса... В прочем, это уже придирки.

nixit ★★ ()
Ответ на: комментарий от nixit

Ещё есть третий вопрос, на каждой машине теперь необходимо указывать адрес прокси-сервера и порт. Нельзя ли и эти настройки раздавать по dhcp?

nixit ★★ ()
Ответ на: комментарий от nixit

Ещё, при таком раскладе, может оказаться, что ip адрес, который зарезервирован, может уже быть назначен другой машине. Видимо, нужно убирать их из диапазона выдаваемых? Или, в моём случае, строка

 range 192.168.0.2 192.168.0.254; 
не нужна?..

nixit ★★ ()
Ответ на: комментарий от nixit

как увидел ЭТО, согласился всё бесплатно сделать, даже отдать под сервер свой старый ПК

это вы зря. Директор фирмы с жадности поставивший работоспособность сети в зависимость от висит_венда/не_висит/перегружается, должен таки оплатить роутер и работу.

Чисто принципиально, любая работа должна оплачиваться. Если это ваши лучшие друзья, то пусть оплата будет символической - но она должна быть.

даже отдать под сервер свой старый ПК

и пусть бух сойдёт с ума от столь нового основного средства :)

MKuznetsov ★★★★★ ()
Ответ на: комментарий от nixit

option domain-name «server»;

сюда обычно пишут что-то типа firma.local

Какое время жизни адресов выставлять?

рабочий день

если, чисто теоретически, в сети будут два одинаковых mac адреса

кто раньше встал того и тапки

раздать прокси и порт

google://dhcp+wpad.dat

anonymous ()
Ответ на: комментарий от nixit

Ы, сделать прозрачный прокси средствами iptables, сам и ответил.

Что-то понесло меня, пойду-ка спать.

nixit ★★ ()
Ответ на: комментарий от MKuznetsov

Ну да.)

Похоже, способ с wpad будет получше, мерси.

nixit ★★ ()
Ответ на: комментарий от anonymous

Тогда, возник ещё вопрос, wpad скрипт:

function FindProxyForURL(url, host)

{

if (isInNet(host, "192.168.0.1", "255.255.255.0"))

return "DIRECT";

else

return "PROXY 192.168.0.1:8080";}

А если мне будет нужна ещё подсеть, то необходимо будет в него добавить:

{

if (isInNet(host, "xx.xx.xx.0", "255.255.255.0"))

return "DIRECT";

else

return "PROXY xx.xx.xx.xx:8080";}
?

nixit ★★ ()
Ответ на: комментарий от nixit
function FindProxyForURL(url, host)

{

if (localHostOrDomainIs(host,"127.0.0.1")||localHostOrDomainIs(host,"localhost")||isInNet(host, "192.168.0.0", "255.255.255.0"))

return "DIRECT";

else

return "PROXY 192.168.0.1:8080";}

адрес сети указывать надо 192.168.0.0/255.255.255.0

anonymous ()
Ответ на: комментарий от nixit

А, нет, видимо так:

function FindProxyForURL(url, host) {

var resolved_ip = dnsResolve(host);

if (isInNet(resolved_ip, "10.0.0.0", "255.0.0.0") ||

isInNet(resolved_ip, "172.16.0.0", "255.240.0.0") ||

isInNet(resolved_ip, "192.168.0.0", "255.255.0.0") ||

isInNet(resolved_ip, "127.0.0.0", "255.255.255.0"))

return "DIRECT";

if (shExpMatch(url, "http:*")) return "PROXY proxy1.domain.com:3128";


if (shExpMatch(url, "https:*")) return "PROXY proxy2.domain.com:3128";

if (shExpMatch(url, "ftp:*")) return "PROXY proxy3.domain.com:3128";

}
nixit ★★ ()
Ответ на: комментарий от GreyDoom

Для какой цели он мне нужен? Чтобы получить dns'ы хватит и dhcp,

nixit ★★ ()
Ответ на: комментарий от nixit

Что-то с wpad ничего не выходит.

Создал файл wpad.dat в /var/www.

function FindProxyForURL(url, host)

{

if (isInNet(host, "192.168.0.0", "255.255.255.0"))

return "DIRECT";

else

return "PROXY 192.168.0.1:3128";}

В dhcpd.conf добавил:

option wpad-url code 252 = text;

option wpad-url "http://192.168.0.1/wpad.dat\000";

В винде пишем netsh winhttp show proxy

Без прокси сервера... Как же так?.. Машина ip по dhcp получает. В настройках винды автоматически определять проксю.

nixit ★★ ()

Как возможно получать dns провайдера на клиентские машины, при обращении к адресу 192.168.0.1

NAT, разрешаю.

И, думаю вариант поднять dns сервер не рассматривается, ибо, не стоит оно того, да и должен быть способ проще.

Наоборот, свой dns будет лучше.

erfea ★★★★★ ()
Ответ на: комментарий от anonymous

Доступен. При открытии он скачивается как файл.

nixit ★★ ()
Ответ на: комментарий от nixit

попробуйте явно указать в браузере URL автоматического определения прокси. Если заработает, надо выяснять версию dhcp-сервера и почему он не отправляет или клиент не принимает опцию wpad.

anonymous ()
Ответ на: комментарий от anonymous

При явном указании работает, но всё виснет к чертям через минуту. Дампы ничего особенного не показывают.

nixit ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.