Есть идея модернизировать существующую сеть (около 2000 абонентов). Что планируем сделать:
1. DHCP-сервер isc-dhcp на FreeBSD 6.2 ( option 82, выдача ip абоненту по номеру порта на коммутаторе)
2. из оборудования DES-3526 и DES-3828
3. биллинг NetUp UTM5
4. большое количество VLAN'ов
Планируем выдавать абонентам статический айпи по номеру порта коммутатора, к которому он подключен. При таком количестве пользователей (около 2000) прописывание для каждого class'ов и пулов достаточно трудное дело при подключении более 5 человек в день, да и обслуживание в дальшейшем тоже трудоемкая задача.
Вот пример тестового конфига для одного человека:
Код: Выделить всё
# dhcpd.conf
#
lease-file-name "/var/db/dhcpd/dhcpd.leases";
option domain-name-servers "dnsserver1", "dnsserver2";
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
authoritative;
ddns-update-style none;
log-facility local7;
class "proba" {
match if option agent.remote-id = 0:6:0:17:9a:bb:d5:09 and option agent.circuit-id = 0:4:0:5:0:18;
}
shared-network test {
subnet 192.168.1.0 netmask 255.255.255.0 { not authoritative; }
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.172;
}
pool {
range 192.168.0.161 192.168.0.161;
allow members of "proba";
}
}
if exists agent.circuit-id
{
log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), " is connected to interface, binary-to-ascii (10, 8, "/", suffix ( option agent.circuit-id, 2)), " (add 1 to port number!), VLAN ", binary-to-ascii (10, 16, ""
, substring( option agent.circuit-id, 2, 2)), " on switch ", binary-to-ascii(16, 8, ":", substring( option agent.remote-id, 2, 6))));
log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), " raw option-82 info is CID: ", binary-to-ascii (10, 8, ".", option agent.circuit-id), " AID: ", binary-to-ascii(16, 8, ".", option agent.remote-id)));
}
Впринципе, dhcpd.conf можно генерировать автоматически скриптом, например:
1. создаём базу, где привязываем мак свича к имени вилана (виланы у нас на дом или на подъезд, т.е. фактически 1 свич - 1 вилан, если нет - в стек поставим 2 свича)
2. при заведении юзверя в нетапе прописываем ему порт свича и вилан в одно из полей
3. пишем скриптик на чём-то, который выдирает из нетапа вилан (преобразует его в мак и номер свича(в случае стека)) и порт, и выдаёт готовую записть для dhcp конфига.
4. прописываем в конфиге dhcp директориии, из которых читать конфиги, например:
/dhcp/vlan2
/dhcp/vlan3
......
/dhcp/vlan222
5. создаём скриптом файл /dhcp/vlanN/IPабонента и запись, указывающую в конфиге dhcp, что читать теперь и файл /dhcp/vlanN/IPабонента
6. перезапускаем dhcpd
Но это только предположение, хотелось бы увидеть действующие реализации подобного, более автоматизированные.
Спасибо