faq обучение настройка
Текущее время: Вт июл 22, 2025 07:10

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Пн авг 18, 2008 15:26 
Имеется коммутатор DES-3526, сервер dhcp стоит на alt linux(обычный isc dhcp server v 3.0.7). На коммутаторе 3 VLANа:
1-8 порты: 192.168.1.0
9-16 порты: 192.168.2.0
17-24 порты: 192.168.3.0
вот уже третий день пытаюсь реализовать зависимость IP-адреса от номера порта при получении клиентом оного.(DHCP relay. option 82) Коммутатор вроде настроил(соотв. опции включил).
статью по DHCP Relay option 82 на сайте посмотрел, погуглил, кое-что нашел, но настроить эту фишку так и не получилось. пытался некоторое время решть этот вопрос своими силами, но не смог.
В приложении находится конфиг сервера DHCP (dhcpd.conf)
http://itanium2.narod.ru/dhcpd.conf
http://narod.ru/disk/2079664000/dhcpd.conf.html


Вернуться наверх
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 18, 2008 15:34 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Пт май 13, 2005 15:49
Сообщений: 20616
Откуда: D-Link, Moscow
Версия прошивки у вас какая? И на каком месте конкретно не получается? Снифферили весь процесс обмена сообщениями между коммутатором и сервером?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 18, 2008 15:56 
5.01-B45. при выдаче адреса результат не тот, который мне нужен. например на 1 порту адрес 1.254 вместо ожидаемого 1.11.
подскажите пожалуйста инструмент, которым можно промониторить весь процесс.


Вернуться наверх
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 18, 2008 16:29 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Пт май 13, 2005 15:49
Сообщений: 20616
Откуда: D-Link, Moscow
Обычный сниффер Wireshark например. Ну и конечно настроить обычное зеркалирование портов.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн авг 18, 2008 18:05 
Не в сети

Зарегистрирован: Пн сен 27, 2004 18:18
Сообщений: 1642
Откуда: Vault 13
antey86 писал(а):
Имеется коммутатор DES-3526, сервер dhcp стоит на alt linux(обычный isc dhcp server v 3.0.7). На коммутаторе 3 VLANа:
1-8 порты: 192.168.1.0
9-16 порты: 192.168.2.0
17-24 порты: 192.168.3.0
вот уже третий день пытаюсь реализовать зависимость IP-адреса от номера порта при получении клиентом оного.

попробуйте юзать конфиг примерно такого вида и все будет работать:
Код:
#-----------------------------------------------------------------------------
# описание классов которые используются при DHCP relay + option 82:

# в качестве условия берется МАС адрес свича:
class "your:switch:with:option_82:MAC:address:switch_port_number" {
    match if concat(
        binary-to-ascii(16, 8, ":", substring(option agent.remote-id, 3, 6)),
        ":",
        binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 5, 1))
    ) = "your:switch:with:option_82:MAC:address:switch_port_number";
}
# сокращенная запись:
class "your:switch:with:option_82:MAC:address:switch_port_number" {
    match if concat(binary-to-ascii(16,8,":",substring(optionagent.remote-id,3,6)),":",binary-to-ascii(10,8,"",substring(optionagent.circuit-id,5,1))) = "your:switch:with:option_82:MAC:address:switch_port_number";
}

# вместо MAC-а из agent.remote-id, берем IP адрес свича из пакета:
class "your.switch.with_option_82.IP_address:switch_port_number" {
    match if concat(
        binary-to-ascii(10, 8, ".", packet(24, 4)),
        ":",
        binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1))
    ) = "your.switch.with_option_82.IP_address:switch_port_number";
}
# сокращенная запись:
class "your.switch.with_option_82.IP_address:switch_port_number" {
    match if concat(binary-to-ascii(10,8,".",packet(24,4)),":",binary-to-ascii(10,8,"",suffix(optionagent.circuit-id,1))) = "your.switch.with_option_82.IP_address:switch_port_number";
}

# MAC адрес клиента как хар-ка класса:
class "some:your:client:hardware:MAC:address" {
    match if substring(hardware, 1, 7) = some:your:client:hardware:MAC:address;
}

# ну или любая другая запись вида:
# class "имя_класса" { всяко_разно_что_нужно_чтобы_класс_матчился; }


#-----------------------------------------------------------------------------
# подсети с классами
shared-network "clients" {
    # подсеть с железом
    # описание небходимо чтобы DHCP знал топологию сети
    subnet 10.90.90.0 netmask 255.255.255.0 { }

    # подсети с юзерами
    # для примера даны 3 подсети, чтобы было видно как прописывается classless static route
    # в каждой сети, для примера, даны 5 хостов
    subnet 192.168.1.0 netmask 255.255.255.0 {
        ping-check off;
        option routers 192.168.1.1;
        option domain-name-servers 192.168.1.1;

        pool { range 192.168.1.5; allow members of "имя_класса"; }
        pool { range 192.168.1.6; allow members of "имя_класса"; }
        pool { range 192.168.1.7; allow members of "имя_класса"; }
    }

    subnet 192.168.2.0 netmask 255.255.255.0 {
        ping-check off;
        option routers 192.168.2.1;
        option domain-name-servers 192.168.2.1;

        pool { range 192.168.2.5; allow members of "имя_класса"; }
        pool { range 192.168.2.6; allow members of "имя_класса"; }
        pool { range 192.168.2.7; allow members of "имя_класса"; }
    }

    subnet 192.168.3.0 netmask 255.255.255.0 {
        ping-check off;
        option routers 192.168.3.1;
        option domain-name-servers 192.168.3.1;

        pool { range 192.168.3.5; allow members of "имя_класса"; }
        pool { range 192.168.3.6; allow members of "имя_класса"; }
        pool { range 192.168.3.7; allow members of "имя_класса"; }
    }
}

_________________
с уважением, БП


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 19, 2008 10:03 
Не в сети

Зарегистрирован: Пт дек 14, 2007 04:38
Сообщений: 47
Откуда: Санкт-Петербург
описание генерации строк класса и пула, отсюда можно убрать мак клиента если не нужна привязка к маку
(кусок из тз)
для каждого пользователя {skip} дожнобыть создано 2 строки
1я: (пример строки)
class "4@22_22" {match if option agent.remote-id = 0:6:0:17:9a:7a:7e:23 and option agent.circuit-id = 0:4:0:7b:0:4 and pick-first-value (dhcp-client-identifier, hardware) = 1:00:1b:2e:62:9e:a3;}
2я (пример строки)
pool {failover peer "dhcp"; range 10.30.0.21 10.30.0.21; allow members of "4@22_22"; deny dynamic bootp clients;}
порядок строк соблюдать обязательно!!!

принцип построения 1й строки
class "<$2>" {match if option agent.remote-id = 0:6:<$3> and option agent.circuit-id = 0:4:0:<$4>:0:<$5> and pick-first-value (dhcp-client-identifier, hardware) = 1:<$6>;}
принцип построения 2й строки
pool {failover peer "dhcp"; range <$7> <$7>; allow members of "<$2>"; deny dynamic bootp clients;}
где
$2 - идентификатор клиента в формате <порт коммутатора>@<IP коммутатора>
$3 - мак адрес коммутатора (буквы строчные разделены двоеточиями, двойные нули объеденены (пример 0:17:9a:7e:7f:23))
$4 - тэг влана в HEX формате (нижний регистр) (например влан 77 должен быть записан как 4d)
$5 - порт коммутатора в HEX формате (нижний регистр) (например порт 23 должен быть записан как 17)
$6 - мак адрес клиента (буквы строчные разделены двоеточиями, двойные нули объеденены (пример 0:17:9a:7e:7f:23))
$7 - IP адрес клиента


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 19, 2008 11:47 
Спасибо! просто и со вкусом:)
... чет нифига не получается. постоянно выдается ИП 100.254. Посмотри конфиг, плз, может что-то криво написал?
ЗЫ. с раскомментареным shared-network тож не катит.
Код:
ddns-update-style none;
local-address 192.168.0.1;
option domain-name-servers      192.168.0.1;
option nis-domain               "domain.org";
option domain-name              "domain.org";
option routers                  192.168.0.1;
default-lease-time 21600;
max-lease-time 43200;

class "1@192.168.1.1" {
match if option agent.remote-id = 0:6:0:1b:11:21:66:b9 and option agent.circuit-id = 0:4:0:64:0:1;
#and pick-first-value (dhcp-client-identifier, hardware) = 1:00:1b:2e:62:9e:a3;
}

#shared-network "clients" {
    subnet 10.90.90.0 netmask 255.255.255.0 { }

    subnet 10.10.14.0 netmask 255.255.255.0 { }

    subnet 192.168.0.0 netmask 255.255.255.0 {
        option subnet-mask 255.255.255.0;
        range 192.168.0.1 192.168.0.254;
    }

    subnet 192.168.1.0 netmask 255.255.255.0 {
        pool {range 192.168.1.1 192.168.1.1; allow members of "1@192.168.1.1"; deny dynamic bootp clients;}
    }

    subnet 192.168.2.0 netmask 255.255.255.0 {
       option subnet-mask 255.255.255.0;
       range 192.168.2.1 192.168.2.254;

    }

    subnet 192.168.3.0 netmask 255.255.255.0 {
       option subnet-mask 255.255.255.0;
       range 192.168.3.1 192.168.3.254;

    }

    subnet 192.168.100.0 netmask 255.255.255.0 {
        option subnet-mask 255.255.255.0;
        range 192.168.100.1 192.168.100.254;
    }
#}



Вернуться наверх
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 19, 2008 12:25 
Не в сети

Зарегистрирован: Пн сен 27, 2004 18:18
Сообщений: 1642
Откуда: Vault 13
в конфиг свича добавляете:
Код:
config dhcp_relay add ipif System 10.90.90.254
config dhcp_relay option_82 state enable
enable dhcp_relay

в конфиг сервера пишите:
Код:
authoritative;
ddns-update-style none;

default-lease-time  3600;
max-lease-time      3600;
min-lease-time      3600;

one-lease-per-client on;

deny duplicates;
deny bootp;

ping-check off;

option arp-cache-timeout 3600;
option netbios-node-type 1;


include "/usr/local/etc/dhcp/conf/1.0.class";
include "/usr/local/etc/dhcp/conf/2.0.class";
include "/usr/local/etc/dhcp/conf/3.0.class";


shared-network "clients" {
    subnet 10.90.90.0 netmask 255.255.255.0 { }

    subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.1.1;
        option domain-name-servers 192.168.1.1;

        include "/usr/local/etc/dhcp/conf/1.0.subnet";
    }

    subnet 192.168.2.0 netmask 255.255.255.0 {
        option routers 192.168.2.1;
        option domain-name-servers 192.168.2.1;

        include "/usr/local/etc/dhcp/conf/2.0.subnet";
    }

    subnet 192.168.3.0 netmask 255.255.255.0 {
        option routers 192.168.3.1;
        option domain-name-servers 192.168.3.1;

        include "/usr/local/etc/dhcp/conf/3.0.subnet";
    }
}

файл /usr/local/etc/dhcp/conf/1.0.class выглядит так:
Код:
# host template
#class "10.90.90.x:y" { match if concat(binary-to-ascii(10, 8, ".", packet(24, 4)), ":", binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1))) = "10.90.90.x:y"; }

class "10.90.90.10:1" { match if concat(binary-to-ascii(10, 8, ".", packet(24, 4)), ":", binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1))) = "10.90.90.10:1"; }
class "10.90.90.10:2" { match if concat(binary-to-ascii(10, 8, ".", packet(24, 4)), ":", binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1))) = "10.90.90.10:2"; }
class "10.90.90.10:3" { match if concat(binary-to-ascii(10, 8, ".", packet(24, 4)), ":", binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1))) = "10.90.90.10:3"; }

файл /usr/local/etc/dhcp/conf/1.0.subnet выглядит так:
Код:
# host template
#pool { range 192.168.1.z; allow members of "10.90.90.x:y"; }  # %username%

pool { range 192.168.1.5; allow members of "10.90.90.10:1"; }  # Vasya
pool { range 192.168.1.6; allow members of "10.90.90.10:2"; }  # Petya
pool { range 192.168.1.7; allow members of "10.90.90.10:3"; }  # Sasha

остальные файлы your.network.class/subnet выглядят аналогично ...

запускаете и смотрите (-:

_________________
с уважением, БП


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 20, 2008 11:09 
нифига! выдает 100.254 и все!


Вернуться наверх
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 20, 2008 14:14 
Не в сети

Зарегистрирован: Пн сен 27, 2004 18:18
Сообщений: 1642
Откуда: Vault 13
конфиг свича касательно IP адреса и DHCP Relay + конфиг сервера - в студию!

P.S. тег code плииз не забывайте ;)

_________________
с уважением, БП


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 20, 2008 14:40 
Код:
DES-3526:admin#sh ipif
Command: show ipif

IP Interface Settings

Interface Name : System
IP Address     : 192.168.100.2   (MANUAL)
Subnet Mask    : 255.255.255.0
VLAN Name      : vlan1000
Admin. State   : Enabled
Link Status    : Link UP
Member Ports   : 26

DES-3526:admin#show dhcp_relay
Command: show dhcp_relay

DHCP/BOOTP Relay Status         : Enabled
DHCP/BOOTP Hops Count Limit     : 4
DHCP/BOOTP Relay Time Threshold : 0
DHCP Relay Agent Information Option 82 State  : Enabled
DHCP Relay Agent Information Option 82 Check  : Disabled
DHCP Relay Agent Information Option 82 Policy : Replace
DHCP Relay Agent Information Option 82 Remote ID : 00-1B-11-21-66-B9

Interface     Server 1         Server 2         Server 3         Server 4
------------  ---------------  ---------------  ---------------  --------------
System        192.168.0.1      192.168.100.1



Код:
Command: show vlan

VID             : 1          VLAN Name     : default
VLAN TYPE       : static     Advertisement : Enabled
Member ports    :
Static ports    :
Current Tagged ports   :
Current Untagged ports :
Static Tagged ports    :
Static Untagged ports  :
Forbidden ports :

VID             : 100        VLAN Name     : vlan100
VLAN TYPE       : static     Advertisement : Disabled
Member ports    : 1-8,26
Static ports    : 1-8,26
Current Tagged ports   : 26
Current Untagged ports : 1-8
Static Tagged ports    : 26
Static Untagged ports  : 1-8
Forbidden ports :

VID             : 200        VLAN Name     : vlan200
VLAN TYPE       : static     Advertisement : Disabled
Member ports    : 9-16,26
Static ports    : 9-16,26
Current Tagged ports   : 26
Current Untagged ports : 9-16
Static Tagged ports    : 26
Static Untagged ports  : 9-16
Forbidden ports :

VID             : 300        VLAN Name     : vlan300
VLAN TYPE       : static     Advertisement : Disabled
Member ports    : 17-24,26
Static ports    : 17-24,26
Current Tagged ports   : 26
Current Untagged ports : 17-24
Static Tagged ports    : 26
Static Untagged ports  : 17-24
Forbidden ports :

VID             : 1000       VLAN Name     : vlan1000
VLAN TYPE       : static     Advertisement : Disabled
Member ports    : 26
Static ports    : 26
Current Tagged ports   : 26
Current Untagged ports :
Static Tagged ports    : 26
Static Untagged ports  :
Forbidden ports :

Total Entries : 5


Код:
authoritative;
ddns-update-style none;
local-address 192.168.0.1;
option domain-name-servers      192.168.0.1;
option nis-domain               "domain.org";
option domain-name              "domain.org";
option routers                  192.168.0.1;

default-lease-time  36000;
max-lease-time      360000;

option arp-cache-timeout 3600;
option netbios-node-type 1;

class "1p" { match if concat(binary-to-ascii(10, 8, ".", packet(24, 4)), ":", binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)))= "1"; }

shared-network "clients" {
    subnet 10.10.14.0 netmask 255.255.255.0 { }

    subnet 192.168.0.0 netmask 255.255.255.0 {
        option subnet-mask 255.255.255.0;
        range 192.168.0.1 192.168.0.254;
    }

    subnet 192.168.1.0 netmask 255.255.255.0 {
      option subnet-mask 255.255.255.0;
#     range 192.168.1.1 192.168.1.3;
      pool {range 192.168.1.1; allow members of "1p";}
    }

    subnet 192.168.2.0 netmask 255.255.255.0 {
       option subnet-mask 255.255.255.0;
       range 192.168.2.1 192.168.2.254;
    }

    subnet 192.168.3.0 netmask 255.255.255.0 {
       option subnet-mask 255.255.255.0;
       range 192.168.3.1 192.168.3.254;
    }

    subnet 192.168.100.0 netmask 255.255.255.0 {
        option subnet-mask 255.255.255.0;
        range 192.168.100.1 192.168.100.254;
    }
}


Вернуться наверх
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 20, 2008 15:46 
да и опции 82 че-то нет в списке.
http://narod.ru/disk/2121292000/ws.png.html[/code]


Вернуться наверх
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 20, 2008 17:01 
Не в сети

Зарегистрирован: Сб ноя 17, 2007 18:41
Сообщений: 102
возможно я не прав, но при dhcp_relay option_82 System ipif и клиентская сеть должна быть в одной сети.

Мне кажется Вам нужно dhcp_local_relay (option_82 Insertion).

Еще раз уточню - мне так показалось.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 20, 2008 17:39 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Пт май 13, 2005 15:49
Сообщений: 20616
Откуда: D-Link, Moscow
Нет как раз при стандартном Relay и Option 82 это не обязательно.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср авг 20, 2008 18:34 
Не в сети

Зарегистрирован: Чт апр 24, 2008 11:50
Сообщений: 335
хм... а у нас через локал релей.

Поясните почему не обязательно и в каком случае стало бы обязательно?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Putin-Rostov и гости: 135


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB