...
Блок кода | ||||
---|---|---|---|---|
| ||||
@Override public void preprocessDhcpRequest( DhcpPacket request, DhcpPacket response ) throws Exception { DhcpOption circuitId = request.getSubOption( (byte)1 ); DhcpOption remoteId = request.getSubOption( (byte)2 ); request.setOption( InetDhcpProcessor.AGENT_REMOTE_ID, new String( remoteId.value, "UTF-8" ) ); request.setOption( InetDhcpProcessor.INTERFACE_ID, new String( circuitId.value, "UTF-8" ) ); } |
При необходимости, для релея можно отключить проверку на наличие DHCP Option 82 в пакете. В этом случае поиск абонента должен осуществляться без их использования, например, по MAC-адресу.
Блок кода | ||||
---|---|---|---|---|
| ||||
# Требуется ли наличие DHCP Option 82 в пакете (за исключением RENEW-запросов),
# 0 - не требуется, 1 (по умолчанию) - требуется.
dhcp.option82.required=0 |
Поиск абонента
По описанным выше значениям AGENT_REMOTE_ID, INTERFACE_ID и VLAN, которые будут извлечены из пакета, происходит поиск устройства и сервиса. Конфигурация поиска устройства и сервиса на устройстве:
...
<servSearchMode> может принимать значения:
- 0 - поиск по логину на всех устройствах (извлечение значения логина должно быть настроено в конфигурации или произведено в предобработке);
- 1 - поиск по интерфейсу на (найденном) устройстве;
- 2 - поиск по VLAN'у на устройстве;
- 3 - поиск на устройстве по интерфейсу и MAC-адресу;
- 4 - поиск по VLAN'у на устройстве и его дочерних устройствах;
- 5 - поиск по MAC-адресу на устройстве;
- 6 - поиск по MAC-адресу на устройстве и дочерних устройствах;
- 10 - поиск по MAC-адресу на всех устройствах;
- 11 - поиск по VLAN и MAC-адресу на устройстве, а также на его потомках и его предках;
- 12 - поиск по VLAN и порту на устройстве. ;
- 20 - поиск по логину аналогично 0, но только на устройстве и его дочерних устройствах.
После поиска сервиса можно дополнительно использовать поиск дочернего устройства (как элемент дополнительной авторизации).
...
Также адреса для динамической выдачи можно указать с помощью именованных пулов IP-адресов:
Блок кода | ||||
---|---|---|---|---|
| ||||
dhcp.ipPool=myWhitePool dhcp.disable.ipPool=myGreyPool |
...
При необходимости выдачи IP-адресов из разных пулов в зависимости от опций Inet, необходимо описать именованный пул IP-адресов. и указать данный пул в конфигурации опции Inet:
...