wtyd Опубликовано 20 декабря, 2016 Хотим выдавать список 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]. Подскажите, как это можно сделать применительно конфига выше ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 20 декабря, 2016 Хотим выдавать список 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 сервера, но главное всегда одни и те же. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wtyd Опубликовано 21 декабря, 2016 Хотим выдавать список 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 этого делать не хочу :-). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 21 декабря, 2016 Можно ли такое на unlang реализовать ? Не нашёл я там деления или других обычных для языка программирования операций. Через SQL этого делать не хочу :-). Я делал на perl. Добавляете код в обработчик post_auth и делаете с указанными атрибутами что хотите. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
orlik Опубликовано 21 декабря, 2016 Ну и если уж перл прикручивать то можно привязаться к какому нить параметру, например последний октет мак адреса, если он четнй то выдаешь один набор адресов если не четный то другой Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wtyd Опубликовано 21 декабря, 2016 Ну и если уж перл прикручивать то можно привязаться к какому нить параметру, например последний октет мак адреса, если он четнй то выдаешь один набор адресов если не четный то другой Я так и хотел бы сделать, но только с октетом выдаваемого ip-адреса, не суть важно. На unlang это можно сделать ? Если да, то как ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wtyd Опубликовано 21 декабря, 2016 (изменено) ... кстати, заметил, что так(см. конфиг выше) почему-то не работает. Выдаёт только второй адрес, либо два вторых адреса. Не могу объяснить почему :-). UPDATE: вроде работает -- поменял в конфиге индексы у &DHCP-Domain-Name-Server с 1 и 2 на 0 и 1, потом в конфиге модуля cache соответственно. После чего в tcpdump стало видно по два разных ip-адреса DNS. Изменено 21 декабря, 2016 пользователем wtyd Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
orlik Опубликовано 21 декабря, 2016 Я так и хотел бы сделать, но только с октетом выдаваемого ip-адреса, не суть важно. На unlang это можно сделать ? Если да, то как ? ХЗ как с unlang , с perl проблем быть не должно Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...