Amir писал(а):
При авторизации по 802.1X можно MAC-адрес подставлять в сервис
serv.macAddress.auto=2 (всегда перетирать MAC-адрес после успешной авторизации)
InetSimpleDhcpProcessor просто выдает прописанные адреса, InetDhcpProcessor в этом случае должен лучше подойти:
dhcp.servSearchMode=6 (поиск по MAC-адресу на устройстве с которого пришел DHCP-пакет (определяется по giaddr, а если есть, дополнительно по agentRemoteId) и его дочерних устройствах)
Здесь, теоретически, можно скриптом подставить в поле Идентификатор сервиса выданный IP-адрес, а в конфигурации устройства-ISG сделать аутентификацию по идентификатору (сейчас такой аутентификации нет).
Получается, после авторизации на ISG ему IP-адрес переназначается с того, что был выдан по DHCP? Авторизация происходит в портале ISG или по какому событию?
Обычная схема ISG с DHCP, когда клиент посылает DHCP-запрос, ISG его получает, посылает биллингу RADIUS Access-Request, после получения Access-Accept пересылает этот DHCP-запрос биллингу (далее от ISG идут RADIUS Accounting-запросы), не подходит?
Ок, спасибо, попробую настроить.
ISG просто выпускает в Интернет внутрисетевой IP и навешивает сервисы (получает от биллинга FramedIP, чтобы сделать NAT 1-в-1).
ISG не получает DHCP, На ISG авторизуем по приходу IP-пакета от клиента. Поэтому, при авторизации, мы видим с ISG RADIUS запрос, где только внутрисетевой IP, выданный клиенту через DHCP или прописанный статикой.
Получается, что надо как то в биллинге на дочерний к level1 сервис навесить "логин-пароль" (или идентификатор), соответствующий ip-адресу, выданному по DHCP (или прописанному в биллинге)..
Чтобы в последствии биллинг смог найти и авторизовать запрос с ISG
// --- UPD ----
При авторизации клиента на level1
получаем такой пакет, биллинг отрабатывает, выдает назначенный серый IP и записывает на сервис MAC.
Код:
radius 11-20/15:04:44 INFO [rdsLstnr-p-9-t-4] RadiusListenerWorker - REQUEST:
Packet type: Access-Request
Identifier: 10
Authenticator: {CE E7 7E BA 5C 2B EC AC 54 63 71 E0 AD D5 B8 3F}
Attributes:
User-Name=00-30-48-5a-f2-31
User-Password=#b,Ȫ�������
NAS-IP-Address=172.25.98.3
Message-Authenticator={14 F1 08 1B 1B BA 21 B5 F1 05 4F 25 48 D6 2D E8}
NAS-Port=1
Connect-Info=100Mbps
Framed-MTU=1536
NAS-Port-Type=15
Calling-Station-Id=00:30:48:5A:F2:31
Called-Station-Id=00:0C:46:EC:C7:69
radius 11-20/15:04:44 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Access-Request
Identifier: 10
Authenticator: {CE E7 7E BA 5C 2B EC AC 54 63 71 E0 AD D5 B8 3F}
Attributes:
User-Name=172.25.98.3:1
User-Password=
NAS-IP-Address=172.25.98.3
Message-Authenticator={14 F1 08 1B 1B BA 21 B5 F1 05 4F 25 48 D6 2D E8}
NAS-Port=1
Connect-Info=100Mbps
Framed-MTU=1536
NAS-Port-Type=15
Calling-Station-Id=00:30:48:5A:F2:31
Called-Station-Id=00:0C:46:EC:C7:69
Common options: {agentRemoteId=172.25.98.3, macAddress=00:30:48:5A:F2:31, interfaceId=1, agentCircuitId=1}
radius 11-20/15:04:44 INFO [rdsLstnr-p-9-t-4] InetNas - Search by mac on device and descendants=0030485af231
radius 11-20/15:04:44 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - [username=172.25.98.3:1] Authenticated as inetServId:17
radius 11-20/15:04:44 INFO [rdsLstnr-p-9-t-4] InetNas - AgentDevice not found.
radius 11-20/15:04:44 INFO [rdsLstnr-p-9-t-4] InetApplication - inetServ[id=17] balance ok: 0.00 [0]
radius 11-20/15:04:44 INFO [rdsLstnr-p-9-t-4] InetApplication - TariffOptionMap: {}
radius 11-20/15:04:44 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - Set ip from serv
radius 11-20/15:04:44 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - Return code=0
radius 11-20/15:04:44 INFO [rdsLstnr-p-9-t-4] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS:
Packet type: Access-Accept
Identifier: 10
Authenticator: {}
Attributes:
Message-Authenticator={00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
Framed-IP-Address=172.25.98.12
Process time auth: 3
Дальше прилетает DHCP (с клиентом нас связывает только MAC, авторизованный на порт на предыдущем этапе)
Код:
dhcp 11-20/15:25:09 INFO [dhcpLstnr-p-11-t-2] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: 1516230530, secs: -256, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 172.25.98.1
Client MAC: {0030485AF231}
Agent information{82}=
sub{2}={020A0000AC1962010A000000}
dhcp 11-20/15:25:09 INFO [dhcpLstnr-p-11-t-2] InetDhcpProcessor - InetServ not found.
Дальше дает о себе знать ISG:
(в запросе есть мак-адрес, но это мак адрес граничного коммутатора, никак не связан с клиентом)
Код:
radius 11-20/15:26:53 INFO [rdsLstnr-p-9-t-6] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Access-Request
Identifier: 16
Authenticator: {E8 5C A5 AF AE 5F A9 19 B1 E4 88 29 4D F8 41 AE}
Attributes:
User-Name=172.25.98.12
NAS-Identifier=172.191.224.3
User-Password=172.25.98.12
NAS-IP-Address=172.191.224.3
NAS-Port=1
Service-Type=2
NAS-Port-Type=5
Calling-Station-Id=172.25.98.12
Called-Station-Id=172.191.224.3
cisco-avpair=client-mac-address=0011.bc49.3c00
Common options: {macAddress=0011.bc49.3c00, identifier=172.25.98.12}
radius 11-20/15:26:53 INFO [rdsLstnr-p-9-t-6] InetNas - Search by username=172.25.98.12
radius 11-20/15:26:53 INFO [rdsLstnr-p-9-t-6] InetRadiusProcessor - [username=172.25.98.12] InetServ not found (and is not card).
radius 11-20/15:26:53 INFO [rdsLstnr-p-9-t-6] InetRadiusProcessor - Return code=1
radius 11-20/15:26:53 INFO [rdsLstnr-p-9-t-6] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS:
Packet type: Access-Reject
Identifier: 16
Authenticator: {}
Attributes:
Reply-Message=1
Process time auth: 2
Настроил пока так (во вложениях)