LINUX.ORG.RU
ФорумAdmin

Wrong IP via DHCP


0

0

Привет LOR :)

Столкнулся с похожей проблемой - Присвоение неверного адреса DHCP.

Провайдер выдаёт через DHCP внешний IP. Используется привязка по MAC адресу. При попытке запросить IP с другим маком выдаёт IP из диапазона 10.251.0.0/16 и сообщает, что "...ваш компьютер не авторизован... необходимо в личном кабинете прописать мак адрес нового устройства..."

Для раздачи интернета использую Debian/NAT. Использовал для настройки данное howto - http://www.gentoo.org/doc/ru/home-router-howto.xml

eth0 - локальная сеть 192.168.1.0/24

eth1 - получаю от провайдера внешний IP

Теперь непосредственно к самой проблеме. В локальной сети используется isc-dhcp-server. Конфиг более чем дефолтный. Опция authoritative есть. Интерфейс в /etc/default/isc-dhcp-server указан.

Собственно в LAN исправно адреса выдаёт. Проблемы возникают у WLAN клиентов или же в виртуальной машине (для сетевого адаптера использую режим сетевого моста).

К примеру в виртуальной машине делаю dhclient eth0. В логах dhcp сервера:

Nov 21 20:06:27 deb-gw dhcpd: DHCPREQUEST for 10.251.0.6 (10.251.0.1) from 08:00:27:aa:2d:2b via eth0: wrong network.
Nov 21 20:06:27 deb-gw dhcpd: DHCPNAK on 10.251.0.6 to 08:00:27:aa:2d:2b via eth0
Nov 21 20:06:28 deb-gw dhcpd: DHCPOFFER on 192.168.1.2 to 08:00:27:aa:2d:2b via eth0

Получается хост пытается запросить IP не у локального dhcp сервера, а у сервера провайдера. Возможно ли как нибудь это подтюнить?

Возможно описал несколько сумбурно и упустил какую то важную деталь.

tcpdump -i <interface> -n port 67 or port 68 как советовали делал

00:39:53.259881 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 08:00:27:aa:2d:2b, length 300
00:39:53.260106 IP 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
00:39:53.348282 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 08:00:27:aa:2d:2b, length 300
00:39:53.353755 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 08:00:27:aa:2d:2b, length 300
00:39:53.353923 IP 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
00:39:54.000741 IP 192.168.1.1.67 > 192.168.1.2.68: BOOTP/DHCP, Reply, length 300

Спасибо за внимание :)

PS забыл написать. Если указать

host tux {
  hardware ethernet xx:xx:xx:xx:xx:xx;
  fixed-address 192.168.1.5;
}

То хосту без проблем выдаётся верный IP. Но это костыль.



Последнее исправление: deviance-x (всего исправлений: 2)

> Возможно описал несколько сумбурно и упустил какую то важную деталь.

да. ту упустил вывод ifconfig -a и содержимое конфига дхцп. хрустальный шар подсказывает что ты не совсем верно настроил бридж.

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

why bridge?

ifconfig -a

Там лишь lo eth0 eth1

cat /etc/network/interfaces

auto lo
iface lo inet loopback

iface eth0 inet dhcp

auto eth0
auto eth1

iface eth1 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255

содержимое конфига дхцп

authoritative;
option domain-name-servers 1.1.1.1, 2.2.2.2;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
default-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.100;
}
deviance-x
() автор топика
Ответ на: комментарий от deviance-x

тогда обьясни, как подключена точка доступа (я думал твой хост и есть АПешка) и как настроен «бридж» виртуалки? что это вообще за ВМ? бридж виртуалки должен быть на внутренний интерфейс. AP должна быть через свитч воткнута во внутренний интерфейс.

Nov 21 20:06:27 deb-gw dhcpd: DHCPREQUEST for 10.251.0.6 (10.251.0.1) from 08:00:27:aa:2d:2b via eth0: wrong network.
Nov 21 20:06:27 deb-gw dhcpd: DHCPNAK on 10.251.0.6 to 08:00:27:aa:2d:2b via eth0
Nov 21 20:06:28 deb-gw dhcpd: DHCPOFFER on 192.168.1.2 to 08:00:27:aa:2d:2b via eth0

Получается хост пытается запросить IP не у локального dhcp сервера, а у сервера провайдера. Возможно ли как нибудь это подтюнить?


нет, не получается. получается твоя виртуалка когда-то получала айпишку от прова. теперь она пытается получить ту же самую айпишку - что вполне соответствует rfc. твой дхцп сервер шлет ей сообение «такой айпишки я тебе не дам», она ждет или какой-нибуть другой сервер еще откликнется. по нормальному, если она видит только ответы от твоего сервера, после таймаута она примет от него оффер. покажи /var/log/messages из виртуалки, и в ней же tcpdump -i eth0 -vs 500 port 67 or port 68.

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

Вобщем всё через /dev/ololo :)

Шнурок от прова в свитч, из него шнурок в комнату (розетка). Из розетки во второй свитч. В него же Debian. И в него же AP (dlink dir-300).

Виртуалка в Win7. Vbox и VMware. В обоих использую для сетевого адаптера ВМ режим bridge (то бишь мост с адаптером в Win7).

Правильней было бы поставить вместо первого свитча этот dlink для NAT, но увы он начинает загибаться и виснет. Даже с dd-wrt. А в режиме AP более менее работает.

нет, не получается. получается твоя виртуалка когда-то получала айпишку от прова.

Поэтому для чистоты эксперимента меняю мак для ВМ и удаляю записи в dhcpd.leases

Что-то как-то не туда я воткнул :( Совсем запутался.

покажи /var/log/messages из виртуалки, и в ней же tcpdump -i eth0 -vs 500 port 67 or port 68.

Чуть позже попробую и напишу результат.

deviance-x
() автор топика
Ответ на: комментарий от deviance-x

> Шнурок от прова в свитч, из него шнурок в комнату (розетка). Из розетки во второй свитч. В него же Debian. И в него же AP (dlink dir-300).

неправильно. шнурок от прова - в сетевую eth0. шнурок от eth1 (внутренний интерфейс) в свитч, и в него же AP.

Виртуалка в Win7. Vbox и VMware. В обоих использую для сетевого адаптера ВМ режим bridge (то бишь мост с адаптером в Win7).


без дополнительной настройки и там, и там используется бридж на eth0. надо поменять чтобы бридж был на eth1, тогда все заработает.

Поэтому для чистоты эксперимента меняю мак для ВМ и удаляю записи в dhcpd.leases


это не влияет на то, что мы наблюдаем. это клиент помнит, какой у него был в прошлом IP, и его запрашивает повторно. в любом случае, это не страшно.

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

Дело в том что кабель от провайдера приходит в прихожую. И до комнаты его никак не дотянуть. Поэтому там стоит свитч. И далее сеть разведена по комнатам; в каждой ethernet розетка. Вот из этой розетки уже идёт в eth0 и т.д.

Что делать не знаю, видимо остаётся микротик какой нибудь купить, ибо не хватает скиллов :(

deviance-x
() автор топика
Ответ на: комментарий от deviance-x

ну так через свитч дотяни. просто клиенты все должны быть ЗА твоим роутером - не втыкай их в первый свитч (на самом деле это можно обхитрить, статическими айпишками или VLANами).

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

Со статическими айпишками всё работает, хоть как воткни :)

Если не затруднит, можете обрисовать схему с VLAN.

deviance-x
() автор топика
Ответ на: комментарий от val-amart

Не спится мне. Изучаю механизм VLAN. Дела ранее с этим не имел. Пока что всё как китайская грамота.

val-amart, если вам несложно, могли бы вы обрисовать концептуальную схему соединения всех узлов сети. Такие то порты в такой VLAN, такой то порт должен быть транковым (начитался тут умных слов :)).

Осталось прикупить только второй управляемый коммутатор.

Спасибо за проявленный интерес к моей теме. Прошу прощения, что сильно отклонился от первоначального вопроса.

deviance-x
() автор топика
Ответ на: комментарий от deviance-x

Вобщем в теории получилась такая схема. Осталось проверить на практике.

Первый коммутатор 8 портов. 1 порт WAN 101 VLAN | 2-3 порты 102 VLAN | 8 порт в транке

Второй коммутатор 8 портов 1 порт DEB_WAN 101 VLAN | 2-7 порты 102 VLAN (2 порт DEB_LAN) | 8 порт в транке.

Правильно ли?

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