LINUX.ORG.RU
ФорумAdmin

dhcp + vlan

 ,


0

1

DHCP сервер не выдает ip-адрес клиенту, находящемуся в vlan-e, причем клиенты из основной сети адреса получают. В логе /var/log/messages клиент посылает запрос DHCPDISCOVER серверу, сервер отвечает DHCPOFFER, но до клиента ответ не доходит и он снова посылает DHCPDISCOVER...В файрволе добавлены строчки iptables -I INPUT 24 -i vlan12 -p UDP --sport 67:68 --dport 67:68 -j ACCEPT и iptables -I OUTPUT 24 -o vlan12 -p UDP --sport 67:68 --dport 67:68 -j ACCEPT. Эти строчки добавлены сразу после аналогичных для основного интерфейса. В таблице INPUT счетчик пакетов меняется, в таблице OUTPUT остается по нолям. Заранее спасибо!

Меняешь политику по-умолчанию на ACCEPT и через 10 секунд уже знаешь, кто виноват и что делать. Меняешь обратно и начинаешь думать. Если сервер DHCP в другом влане - то рассказывай, как маршрутизируешь запросы между ними.

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)
Ответ на: комментарий от zgen

После изменения политики на iptables -P OUTPUT ACCEPT счетчик пакетов не изменился, до клиента ответ сервера так и не доходит. Сервер DHCP установлен на той же машине, что и шлюз. Т.е. на ней же и vlan-ы и файрвол.

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

После изменения политики на iptables -P OUTPUT ACCEPT

А на все остальные дядя вася менять будет?

Сервер DHCP установлен на той же машине, что и шлюз

Сервер DHCP биндится на определенный интерфейс обычно.

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

а где посмотреть на какой интерфейс он биндится, не подскажите? в файле dhcpd.conf я не увидел никакого упоминания об интерфейсах

greedisgood42rus
() автор топика
Ответ на: комментарий от serega74422

Подскажите, правильно ли это утверждение? Ведь и в той ссылке, что вы дали, нет никакого явного указания на интерфейс в файле dhcpd.conf «Сервер будет раздавать свою конфигурацию в тот интерфейс, который настроен на аналогичную подсеть с той, что указана в dhcpd.conf. То есть, например, если у вас в dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; } то DHCP будет вещать на интерфейсе, настроенном на подсеть 192.168.1.0/24.»

greedisgood42rus
() автор топика
Ответ на: комментарий от serega74422

У меня centos, есть строчка /etc/sysconfig/dhcpd, которая вроде как отвечает за то, на каких интерфейсах работает dhcp сервер. Там стоит пустое значение DHCPDARGS="". Даже если ставлю туда имя своего интерфейса, клиент адрес не получает все равно.

greedisgood42rus
() автор топика
Ответ на: комментарий от serega74422

vlan12 VID: 12 REORDER_HDR: 1 dev->priv_flags: 1 total frames received 2431 total bytes received 300102 Broadcast/Multicast Rcvd 100

total frames transmitted 243 total bytes transmitted 79722 total headroom inc 0 total encap on xmit 0 Device: eth0 INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 EGRESS priority mappings:

greedisgood42rus
() автор топика

0-вые счетчики в output ничего не говорят - dhcpd может не отвечать на эти запросы.

Смотри логи dhcpd

Если dhcpd не указывать список интерфейсов, то он будет слушать все доступные для него интерфейсы и их список он показывает при старте.

убедись, что для vlan12 есть subnet в конфиге dhcpd

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

В /var/log/messages при старте пишет Listening on LPF/vlan12/b4:b5:2f:54:69:20/172.16.12.0/24 Sending on LPF/vlan12/b4:b5:2f:54:69:20/172.16.12.0/24 subnet в настройке dhcpd.conf для vlan12 аналогичен eth0, который работает. Я проверил записи об остальных vlan-ах в журнале, пишет тоже самое: DHCPDISCOVER from e0:cb:4e:20:08:f3 (Asgard2013) via vlan12 DHCPOFFER on 172.16.12.100 to e0:cb:4e:20:08:f3 (Asgard2013) via vlan12 DHCPDISCOVER from e0:cb:4e:20:08:f3 (Asgard2013) via eth0 DHCPOFFER on 10.42.17.12 to e0:cb:4e:20:08:f3 (Asgard2013) via eth0. Таким образом dhcp не работает на 4-х vlan-ах, но работает на двух основных интерфейсах.

greedisgood42rus
() автор топика

iptables + dhcp - ГЕНИАЛЬНО! Можешь обкакаться с политиками... :) Толку не будет. dhcp уровень ниже.

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

Да не будет никакого результата... etables же..!

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

Я это выполнял - безрезультатно, более того, iptables -F ничего не дал, так что дело не в файрволе

greedisgood42rus
() автор топика
Ответ на: комментарий от victorb

Объясните, пожалуйста, для баранов. Я так понимаю, dhcrelay нужен когда есть dhcp сервер в одной сети, а нужно передавать запросы в другую, через маршрутизатор, на котором и ставится этот агент, правильно? Параметр -i показывает, с какого сетевого интерфейса получать запросы от клиентов и отправлять на DHCP-сервер, а параметр -a это что, адрес DHCP-сервера? п.с. перевод из man-а не дал понимания. После выполнения строчки dhcrelay -i vlan12 -a 127.0.0.1 ничего не изменилось

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

у isc-dhcrelay есть особенность - в список интерфейсов нужно включать интерфейс через который ретранслируется запрос, иначе он ответ сервера не видит.

«dhcrelay -i vlan12 -a 127.0.0.1» лишено смысла, т.к. ответить с адреса 127.0.0.1 за пределы своей машины нельзя. Да и клиенту будет не просто подтвердить аренду полученного адреса на сервере 127.0.0.1

Если isc dhcpd не отвечает на запросы, то это значит, что он это сделать не может. Причин может быть несколько - отсутствие свободных адресов в диапазонах подсети, запрет выдачи адресов неизвесным клиентам.

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

Спасибо за Ваше участие! Дак вот что интересно, что судя по /var/log/messages, dhcp-сервер видит запрос клиента, отправляет ему ответ, но клиент его не видит. Если выполнить «tcpdump host 172.16.12.1 -nn», где 172.16.12.1 - адрес шлюза в vlan12, то видно следующее: «IP 172.16.12.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300»

«IP 172.16.12.1.67 > 172.16.12.100.68: BOOTP/DHCP, Reply, length 300» Где 172.16.12.100 - первый адрес в строке range файла dhcpd.conf, больше в данном vlan-е никого нет. Если я переключаю этот же порт на свиче, в который воткнут клиент, в основной интерфейс,то клиент сразу же получает адрес, хотя его mac не закреплен за ip-адресом в файле dhcpd.conf. Вот тут люди сталкиваются с подобной проблемой, но, к сожалению, не пишут о решении http://www.opennet.ru/openforum/vsluhforumID1/77837.html

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

значит надо смотреть настройки коммутаторов и fbd на них.

накосячить с настройками vlan не сложно

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

Объясните, пожалуйста, для баранов. Я так понимаю, dhcrelay нужен когда есть dhcp сервер в одной сети, а нужно передавать запросы в другую, через маршрутизатор, на котором и ставится этот агент, правильно?

Не нужен вам никакой dhrelay если у вас с ваших же слов:

Сервер DHCP установлен на той же машине, что и шлюз. Т.е. на ней же и vlan-ы и файрвол.

Все очень просто. На шлюзе у вас файервол и dhcp сервер. Вы заводите на коммутатор ваши vlan и обычные интерфейсы. Допустим у вас 2 vlan и 2 обычных: eth0.100, eth0.101, eth1, eth2. Поднимаете эти интерфейсы развешиваете на них адреса каждый из своей подсети:

eth0.100 - 10.1.100.1/24
eth0.101 - 10.1.101.1/24
eth1 - 10.1.51.1/24
eth2 - 10.1.52.1/24

Далее описываете в dhcpd.conf эти четыре подсети. При запуске dhcpd передаете ему 4 аргумента соответствующие именам интерфейсов соединенных с сетями в которые dhcpd будет раздавать адреса:

/usr/sbin/dhcpd eth1 eth2 eth0.100 eth0.101
dhcpd сам поймет какие адреса куда раздавать помотрев какой ip висит на том или ином интерфейсе.

Открываете на вход udp 67,68 и проверяете.

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

Вы заводите на коммутатор На маршрутизатор конечно же.

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

Все очень просто.

Все так и настроено, как Вы советуете, но не работает, к сожалению.

Не нужен вам никакой dhrelay если у вас с ваших же слов:

Я понимаю, что он применяется в другой ситуации, которую я уже описал

dhcrelay нужен когда есть dhcp сервер в одной сети, а нужно передавать запросы в другую, через маршрутизатор, на котором и ставится этот агент, правильно?

Расспрашивал я про dhcrelay с целью своего рода «обмана» dhcp-сервера, раз он не хочет по-православному работать. Меня вот что интересует, правильно ли утверждение коллеги выше

0-вые счетчики в output ничего не говорят - dhcpd может не отвечать на эти запросы.

Разве могут пакеты, созданные один и тем же локальным процессом маршрутизатора (dhcp-сервером) для одного интерфейса (eth0) проходить по цепочке netfilter-а, а для другого интерфейса нет? (У меня в таблице output в строчке, где открыты порты 67 и 68 для основного интерфейса, счетчик пакетов меняется, а для vlan-а нет) Получается, что бессмысленно искать причины неправильной настройки vlan-ов коммутатора, который стоит после маршрутизатора, если пакет просто до него не доходит, правильно? п.с.: если забить вручную адрес у клиента, находящегося в vlan-е, то все работает, шлюз он видит и т.д.

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

Неплохо бы знать модель вашего коммутатора. Если есть подозрение на netfilter то тогда предоставьте пожалуйста:

iptables -vnL
iptables -t nat -vnL
iptables -t mangle -vnL

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

Кроме того есть еще полезная утилита под названием dhcping которая позволяет симулировать получение данных по dhcp без их применения вживую.

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

Подскажите, пожалуйста,так ли следует пользоваться shared-network?

п.с.: eth0 - основной интерфейс, eth0.9, vlan12 - вланы на нем

eth3 - основной интерфейс, eth3.8 - влан на нем

п.п.с: демон dhcpd не запускается, если eth3.8 и eth0.9 не в кавычках, пишет «ожидается точка с запятой».

authoritative;
default-lease-time 12000;
max-lease-time 864010;
#option netbios-node-type 8;

shared-network ISC-rz {
  subnet 10.142.117.0 netmask 255.255.255.0 {
    interface eth0; 
    range 10.142.117.2 10.142.117.254;
    option domain-name-servers 10.142.117.64, 10.142.117.68;
    option domain-name "rz.local";
    option netbios-node-type 8;
    option netbios-name-servers 10.142.117.250;
    option routers 10.142.117.1;
    option broadcast-address 10.142.117.255;
}
include "/etc/dhcp/includes/rz.conf";
}

shared-network ISC-mt {
  subnet 172.16.8.0 netmask 255.255.255.224 {
    interface "eth3.8"; 
    range 172.16.8.2 172.16.8.30;
    option domain-name-servers 10.142.116.1;
    option routers 172.16.8.1;
    option broadcast-address 172.16.8.31;
}   
include "/etc/dhcp/includes/st-mt.conf";
}


shared-network ISC-gsm {
  subnet 172.16.9.0 netmask 255.255.255.224 {
    interface "eth0.9";
    range 172.16.9.2 172.16.9.30;
    option domain-name "rz.local";
    option domain-name-servers 10.142.117.64;
    option routers 172.16.9.1;
    option broadcast-address 172.16.9.31;
}
include "/etc/dhcp/includes/alpha.conf";
}      


shared-network ISC-kd {
  subnet 10.142.150.0 netmask 255.255.255.0 {
    interface eth3; 
    range 10.142.150.200 10.142.150.254;
    option domain-name-servers 10.142.150.64, 10.142.150.68;
    option domain-name "rz.local";
    option netbios-node-type 8;
    option netbios-name-servers 10.142.117.250, 10.142.150.64;
    option routers 10.142.150.1;
    option broadcast-address 10.142.150.255;
}
include "/etc/dhcp/includes/of-kd-1-2.conf";
}


shared-network ISC-inet {
  subnet 172.16.12.0 netmask 255.255.255.0 {
    interface vlan12;
    range 172.16.12.100 172.16.12.199;
    option domain-name-servers 10.142.117.64, 10.142.117.68;
    option domain-name "rz.local";
    option netbios-node-type 8;
    option netbios-name-servers 10.142.117.250;
    option routers 172.16.12.1;
    option broadcast-address 172.16.12.255;
}

  host asgard	{	#test
	hardware ethernet E0:CB:4E:20:08:F3;
	fixed-address 172.16.12.150;
}
}
[/bash]
greedisgood42rus
() автор топика
Ответ на: комментарий от trancefer

Неплохо бы знать модель вашего коммутатора.

Коммутатор hp procurve 2510g-48, Вланы настраивались при подключении по протоколу ssh, через menu-switch configuration-vlan menu. Вроде как там все просто и понятно...Можно ли там что-то упустить? п.с.: dhcping отвечает «no answer» на vlan-ах и «Got answer from» на основном интерфейсе

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

Судя про dhcpd.conf у вас на каждый vlan своя подсеть (что логично) - в этом случае shared-network вам не нужен, должно быть просто:

subnet 172.16.12.0 netmask 255.255.255.0 {
    range 172.16.12.100 172.16.12.199;
    option domain-name-servers 10.142.117.64, 10.142.117.68;
    option domain-name "rz.local";
    option netbios-node-type 8;
    option netbios-name-servers 10.142.117.250;
    option routers 172.16.12.1;
    option broadcast-address 172.16.12.255;
}

остальное аналогично.

Можно вывод команды

sh vlan
с вашего коммутатора?

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

Можно вывод команды с вашего коммутатора?

VLAN ID Name                 Status       Voice Jumbo
  ------- -------------------- ------------ ----- -----
  1       DEFAULT_VLAN         Port-based   No    No   
  2       mktdl                Port-based   No    No   
  3       sk                   Port-based   No    No   
  4       ofkd                 Port-based   No    No   
  5       gsm-ter              Port-based   No    No   
  6       cam                  Port-based   No    No   
  7       cam2                 Port-based   No    No   
  8       mt                   Port-based   No    No   
  9       gsm                  Port-based   No    No   
  10      dsp                  Port-based   No    No   
  12      inet                 Port-based   No    No   
  
greedisgood42rus
() автор топика

а если вручную настроить адрес на клиенте и пропинговать адрес сервера привязанный к влану?

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

п.с.: если забить вручную адрес у клиента, находящегося в vlan-е, то все работает, шлюз он видит и т.д.

greedisgood42rus
() автор топика
Ответ на: комментарий от aeX1pu2b
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether b5:b4:2f:59:64:30 brd ff:ff:ff:ff:ff:ff
    inet 10.142.117.1/24 brd 10.142.117.255 scope global eth0
    inet6 gs60::v4b3:3sds:fe54:6920/64 scope link
       valid_lft forever preferred_lft forever
24: vlan12@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether b5:b4:2f:59:64:30 brd ff:ff:ff:ff:ff:ff
    inet 172.16.12.1/24 brd 172.16.12.255 scope global vlan12
    inet6 gs60::v4b3:3sds:fe54:6920/64 scope link
       valid_lft forever preferred_lft forever
greedisgood42rus
() автор топика
Ответ на: комментарий от trancefer

и увидеть конифгурационные файл(ы) ваших интерфейсов.

DEVICE="eth0"
BOOTPROTO=none
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="23hjd-v23v-232-vwed-232323fe"
HWADDR=W3:C4:3Q:23:57:34
NAME="System eth0"
IPADDR=10.142.117.1
PREFIX=24
IPV4_FAILURE_FATAL=yes
IPV6INIT=no


LAN=yes
DEVICE=vlan12
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=172.16.12.1
PREFIX=24
greedisgood42rus
() автор топика
Ответ на: комментарий от greedisgood42rus

посмотри ещё настройки на коммутатор(е|ах) соединяющих клиента и dhcp-сервер, может в настройках установлен недоверенный порт для dhcp.
Как вариант возможно подключить другой коммутатор или обновить прошивку для текущего(я встречался с подобными глюками для длинка)

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