wtyd Posted December 20, 2016 · Report post Хотим выдавать список dns рандомно для распредлеения нагрузки, т.е. на один запрос выдавать dnsip1 и dnsip2, а на следующий запрос выдавать dnsip2 и dnsip1. Есть такой конфиг: update reply { &DHCP-Domain-Name-Server[1] = 192.168.1.1 &DHCP-Domain-Name-Server[2] = 192.168.0.1 &DHCP-Subnet-Mask = 255.255.255.0 &DHCP-Renewal-Time = 86300 &DHCP-Rebinding-Time = 86330 &DHCP-IP-Address-Lease-Time = 86400 &DHCP-DHCP-Server-Identifier = 192.168.0.14 &DHCP-Relay-Circuit-Id := "%{request:DHCP-Relay-Circuit-Id}" &DHCP-Relay-Remote-Id := "%{request:DHCP-Relay-Remote-Id}" } Вот, хотелось бы рандомить &DHCP-Domain-Name-Server[1] и &DHCP-Domain-Name-Server[2]. Подскажите, как это можно сделать применительно конфига выше ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
max1976 Posted December 20, 2016 · Report post Хотим выдавать список dns рандомно для распредлеения нагрузки, т.е. на один запрос выдавать dnsip1 и dnsip2, а на следующий запрос выдавать dnsip2 и dnsip1. Есть такой конфиг: update reply { &DHCP-Domain-Name-Server[1] = 192.168.1.1 &DHCP-Domain-Name-Server[2] = 192.168.0.1 &DHCP-Subnet-Mask = 255.255.255.0 &DHCP-Renewal-Time = 86300 &DHCP-Rebinding-Time = 86330 &DHCP-IP-Address-Lease-Time = 86400 &DHCP-DHCP-Server-Identifier = 192.168.0.14 &DHCP-Relay-Circuit-Id := "%{request:DHCP-Relay-Circuit-Id}" &DHCP-Relay-Remote-Id := "%{request:DHCP-Relay-Remote-Id}" } Вот, хотелось бы рандомить &DHCP-Domain-Name-Server[1] и &DHCP-Domain-Name-Server[2]. Подскажите, как это можно сделать применительно конфига выше ? Советую не делать этого. Я делал рандомную выдачу dns - клиенты на винде сразу начинают тупить: если будут выданы другие dns или в другом порядке, то винда будет игнорить dhcp ack от сервера, что в итоге приведет к потерю клиентом лизы и нового dhcp discover. Можно сделать "псевдо" рандомно, выдавая определенным подсетям свои dns сервера, но главное всегда одни и те же. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
wtyd Posted December 21, 2016 · Report post Хотим выдавать список dns рандомно для распредлеения нагрузки, т.е. на один запрос выдавать dnsip1 и dnsip2, а на следующий запрос выдавать dnsip2 и dnsip1. Есть такой конфиг: update reply { &DHCP-Domain-Name-Server[1] = 192.168.1.1 &DHCP-Domain-Name-Server[2] = 192.168.0.1 &DHCP-Subnet-Mask = 255.255.255.0 &DHCP-Renewal-Time = 86300 &DHCP-Rebinding-Time = 86330 &DHCP-IP-Address-Lease-Time = 86400 &DHCP-DHCP-Server-Identifier = 192.168.0.14 &DHCP-Relay-Circuit-Id := "%{request:DHCP-Relay-Circuit-Id}" &DHCP-Relay-Remote-Id := "%{request:DHCP-Relay-Remote-Id}" } Вот, хотелось бы рандомить &DHCP-Domain-Name-Server[1] и &DHCP-Domain-Name-Server[2]. Подскажите, как это можно сделать применительно конфига выше ? Советую не делать этого. Я делал рандомную выдачу dns - клиенты на винде сразу начинают тупить: если будут выданы другие dns или в другом порядке, то винда будет игнорить dhcp ack от сервера, что в итоге приведет к потерю клиентом лизы и нового dhcp discover. Можно сделать "псевдо" рандомно, выдавая определенным подсетям свои dns сервера, но главное всегда одни и те же. Хорошо, это аргумент, с этим согласен. Но так как у нас в радиусе есть кеширование и привязка ip-mac, то можно было бы одному и тому же адресу выдавать первый список ДНС, второму -- второй. Например, нечётным ip выдавать первый список, чётным - второй. Можно ли такое на unlang реализовать ? Не нашёл я там деления или других обычных для языка программирования операций. Через SQL этого делать не хочу :-). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
max1976 Posted December 21, 2016 · Report post Можно ли такое на unlang реализовать ? Не нашёл я там деления или других обычных для языка программирования операций. Через SQL этого делать не хочу :-). Я делал на perl. Добавляете код в обработчик post_auth и делаете с указанными атрибутами что хотите. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
orlik Posted December 21, 2016 · Report post Ну и если уж перл прикручивать то можно привязаться к какому нить параметру, например последний октет мак адреса, если он четнй то выдаешь один набор адресов если не четный то другой Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
wtyd Posted December 21, 2016 · Report post Ну и если уж перл прикручивать то можно привязаться к какому нить параметру, например последний октет мак адреса, если он четнй то выдаешь один набор адресов если не четный то другой Я так и хотел бы сделать, но только с октетом выдаваемого ip-адреса, не суть важно. На unlang это можно сделать ? Если да, то как ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
wtyd Posted December 21, 2016 (edited) · Report post ... кстати, заметил, что так(см. конфиг выше) почему-то не работает. Выдаёт только второй адрес, либо два вторых адреса. Не могу объяснить почему :-). UPDATE: вроде работает -- поменял в конфиге индексы у &DHCP-Domain-Name-Server с 1 и 2 на 0 и 1, потом в конфиге модуля cache соответственно. После чего в tcpdump стало видно по два разных ip-адреса DNS. Edited December 21, 2016 by wtyd Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
orlik Posted December 21, 2016 · Report post Я так и хотел бы сделать, но только с октетом выдаваемого ip-адреса, не суть важно. На unlang это можно сделать ? Если да, то как ? ХЗ как с unlang , с perl проблем быть не должно Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...