LINUX.ORG.RU
ФорумAdmin

Как заставить FreeRADIUS выдавать один IP а не два ?

 ,


0

1

Из лога видно что выдача Framed-IP-Address тот который нужен --> [ Framed-IP-Address := 10.10.10.160 ]

-------------------------------------------------------------------------------------

Sending Access-Accept of id 0 to 127.0.0.1 port 3799

Framed-IP-Address := 10.10.10.160

WISPr-Bandwidth-Max-Down := 8192000

WISPr-Bandwidth-Max-Up := 8192000

Session-Timeout := 31536000

Idle-Timeout := 0

WISPr-Session-Terminate-Time := «2013-9-14T24:00:00»

Acct-Interim-Interval := 120

Finished request 21.

Going to the next request

Waking up in 4.9 seconds.

rad_recv: Accounting-Request packet from host 127.0.0.1 port 3799, id=1, length=142

Acct-Status-Type = Start

User-Name = «A0-0B-BA-E9-C8-08»

Calling-Station-Id = «A0-0B-BA-E9-C8-08»

Called-Station-Id = «20-CF-30-D7-14-F5»

NAS-Port-Type = Wireless-802.11

NAS-Port = 0

NAS-Port-Id = «00000000»

NAS-IP-Address = 0.0.0.0

NAS-Identifier = «nas01»

Framed-IP-Address = 10.10.10.130

Acct-Session-Id = «5053414600000000»

-------------------------------------------------------------------------------------

А тут из этого же лога видно что выдает динамику, совсем другой IP не тот который нужен --> [ Framed-IP-Address = 10.10.10.130 ]

Вообщем этот 10.10.10.160 в пакете Access-Accept назначается правильно. Он берется из базы, а этот 10.10.10.130 в пакете Accounting-Request ( подсказка для NSAа ) назначается автоматом. Как сделать что бы не выдавался автоматом или что бы при выдаче был первый 10.10.10.160 ?


Ничего не понятно в твоем описании. freeradius -X лог покажи. Только полный кусок от получения запроса, до отсылки ответа.

ventilator ★★★ ()
Ответ на: комментарий от ventilator

Вот лог из FreeRADIUSа ....

rad_recv: Access-Request packet from host 127.0.0.1 port 3799, id=202, length=162
	User-Name = "A0-0B-BA-E9-C8-08"
	User-Password = "password"
	Calling-Station-Id = "A0-0B-BA-E9-C8-08"
	Called-Station-Id = "20-CF-30-D7-14-F5"
	NAS-Port = 1
	NAS-IP-Address = 0.0.0.0
	Service-Type = Login-User
	NAS-Identifier = "nas01"
	Acct-Session-Id = "505b43a600000001"
	NAS-Port-Type = Wireless-802.11
	Message-Authenticator = 0x646802f7c7dcc7bd210a151f67c63ebb
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
[suffix] No '@' in User-Name = "A0-0B-BA-E9-C8-08", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[unix] returns notfound
++[files] returns noop
	expand: %{User-Name} -> A0-0B-BA-E9-C8-08
[sql] sql_set_user escaped user --> 'A0-0B-BA-E9-C8-08'
rlm_sql (sql): Reserving sql socket id: 4
	expand: SELECT id, username, attribute, value, op           FROM radcheck           WHERE username = '%{SQL-User-Name}'           ORDER BY id -> SELECT id, username, attribute, value, op           FROM radcheck           WHERE username = 'A0-0B-BA-E9-C8-08'           ORDER BY id
[sql] User found in radcheck table
	expand: SELECT id, username, attribute, value, op           FROM radreply           WHERE username = '%{SQL-User-Name}'           ORDER BY id -> SELECT id, username, attribute, value, op           FROM radreply           WHERE username = 'A0-0B-BA-E9-C8-08'           ORDER BY id
	expand: SELECT groupname           FROM radusergroup           WHERE username = '%{SQL-User-Name}'           ORDER BY priority -> SELECT groupname           FROM radusergroup           WHERE username = 'A0-0B-BA-E9-C8-08'           ORDER BY priority
rlm_sql (sql): Released sql socket id: 4
++[sql] returns ok
rlm_sqlcounter: Entering module authorize code
rlm_sqlcounter: Could not find Check item value pair
++[max_all_mb] returns noop
rlm_sqlcounter: Entering module authorize code
rlm_sqlcounter: Could not find Check item value pair
++[noresetcounter] returns noop
[expiration] Checking Expiration time: 'September 14 2013 24:00:00'
++[expiration] returns ok
++[logintime] returns noop
[pap] Found existing Auth-Type, not changing it.
++[pap] returns noop
Found Auth-Type = Accept
Auth-Type = Accept, accepting the user
+- entering group session {...}
	expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
	expand: %{User-Name} -> A0-0B-BA-E9-C8-08
++[radutmp] returns ok
+- entering group post-auth {...}
	expand: %{User-Name} -> A0-0B-BA-E9-C8-08
[sql] sql_set_user escaped user --> 'A0-0B-BA-E9-C8-08'
	expand: %{User-Password} -> password
	expand: INSERT INTO radpostauth                           (username, pass, reply, authdate)                           VALUES (                           '%{User-Name}',                           '%{%{User-Password}:-%{Chap-Password}}',                           '%{reply:Packet-Type}', '%S') -> INSERT INTO radpostauth                           (username, pass, reply, authdate)                           VALUES (                           'A0-0B-BA-E9-C8-08',                           'password',                           'Access-Accept', '2012-09-20 19:26:14')
rlm_sql (sql) in sql_postauth: query is INSERT INTO radpostauth                           (username, pass, reply, authdate)                           VALUES (                           'A0-0B-BA-E9-C8-08',                           'password',                           'Access-Accept', '2012-09-20 19:26:14')
rlm_sql (sql): Reserving sql socket id: 3
rlm_sql (sql): Released sql socket id: 3
++[sql] returns ok
++[exec] returns noop
jetv ()
Ответ на: комментарий от ventilator
Sending Access-Accept of id 202 to 127.0.0.1 port 3799
	Framed-IP-Address := 10.10.10.160
	WISPr-Bandwidth-Max-Down := 8192000
	WISPr-Bandwidth-Max-Up := 8192000
	Session-Timeout := 31034026
	Idle-Timeout := 0
	WISPr-Session-Terminate-Time := "2013-9-14T24:00:00"
	Acct-Interim-Interval := 120
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
rad_recv: Accounting-Request packet from host 127.0.0.1 port 3799, id=203, length=142
	Acct-Status-Type = Start
	User-Name = "A0-0B-BA-E9-C8-08"
	Calling-Station-Id = "A0-0B-BA-E9-C8-08"
	Called-Station-Id = "20-CF-30-D7-14-F5"
	NAS-Port-Type = Wireless-802.11
	NAS-Port = 1
	NAS-Port-Id = "00000001"
	NAS-IP-Address = 0.0.0.0
	NAS-Identifier = "nas01"
	Framed-IP-Address = 10.10.10.141
	Acct-Session-Id = "505b43a600000001"
+- entering group preacct {...}
++[preprocess] returns ok
[acct_unique] Hashing 'NAS-Port = 1,Client-IP-Address = 127.0.0.1,NAS-IP-Address = 0.0.0.0,Acct-Session-Id = "505b43a600000001",User-Name = "A0-0B-BA-E9-C8-08"'
[acct_unique] Acct-Unique-Session-ID = "6631ba8a6c87d456".
++[acct_unique] returns ok
[suffix] No '@' in User-Name = "A0-0B-BA-E9-C8-08", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
++[files] returns noop
+- entering group accounting {...}
	expand: /var/log/freeradius/radacct/%{Client-IP-Address}/detail-%Y%m%d -> /var/log/freeradius/radacct/127.0.0.1/detail-20120920
[detail] /var/log/freeradius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /var/log/freeradius/radacct/127.0.0.1/detail-20120920
	expand: %t -> Thu Sep 20 19:26:14 2012
++[detail] returns ok
++[unix] returns ok
	expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
	expand: %{User-Name} -> A0-0B-BA-E9-C8-08
++[radutmp] returns ok
	expand: /var/log/freeradius/sradutmp -> /var/log/freeradius/sradutmp
	expand: %{User-Name} -> A0-0B-BA-E9-C8-08
++[sradutmp] returns ok
	expand: %{User-Name} -> A0-0B-BA-E9-C8-08
[sql] sql_set_user escaped user --> 'A0-0B-BA-E9-C8-08'
	expand: %{Acct-Delay-Time} -> 
	expand:            INSERT INTO radacct             (acctsessionid,    acctuniqueid,     username,              realm,            nasipaddress,     nasportid,              nasporttype,      acctstarttime,    acctstoptime,              acctsessiontime,  acctauthentic,    connectinfo_start,              connectinfo_stop, acctinputoctets,  acctoutputoctets,              calledstationid,  callingstationid, acctterminatecause,              servicetype,      framedprotocol,   framedipaddress,              acctstartdelay,   acctstopdelay,    xascendsessionsvrkey)           VALUES             ('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}',              '%{SQL-User-Name}',              '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}',              '%{NAS-Port-Type}', '%S', NULL,              '0', '%{Acct-Authentic}', '%{Connect-Info}',              '', '0', '0',              '%{Called-Station-Id}', '%{Calling-Station-Id}', '',              '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}',              '%{%{Acct-Delay-Time}:-0}', '0', '%{X-Ascend-Session-Svr-Key}') ->            INSERT INTO radacct             (acctsessionid,    acctuniqueid,     username,              realm,            nasipaddress,     nasportid,              nasporttype,      acctstarttime,    acctstoptime,              acctsessiontime,  acctauthentic,    connectinfo_start,              connectinfo_stop, acctinputoctets,  acctoutputoctets,              calledstationid,  callingstationid, acctterminatecause,              servicetype,      framedprotocol,   framedipaddress,              acctstartdelay,   acctstopdelay,    xascendsessionsvrkey)           VALUES             ('505b43a600000001', '6631ba8a6c87d456',              'A0-0B-BA-E9-C8-08',              '', '0.0.0.0', '1',              'Wireless-802.11', '2012-09-20 19:26:14', NULL,              '0', '', '',              '', '0', '0',              '20-CF-30-D7-14-F5', 'A0-0B-BA-E9-C8-08', '',              '', '', '10.10.10.141',              '0', '0', '')
rlm_sql (sql): Reserving sql socket id: 2
rlm_sql (sql): Released sql socket id: 2
++[sql] returns ok
	expand: %{User-Name} -> A0-0B-BA-E9-C8-08
 attr_filter: Matched entry DEFAULT at line 12
++[attr_filter.accounting_response] returns updated
Sending Accounting-Response of id 203 to 127.0.0.1 port 3799
Finished request 1.
Cleaning up request 1 ID 203 with timestamp +40
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 0 ID 202 with timestamp +40
Ready to process requests
jetv ()

Вы путаете access-request и accounting request. Судя по всему адреса пользователи получают по dhcp, а вашей точке доступа глубоко всеравно на атрибут Framed-IP-Address который она получает в ответ на access-request. В аккаунтинге же отсылается фактическая информация о клиенте, в том числе IP который он получил, вероятнее всего от DHCP.

Для того чтобы ваши wifi клиенты получали ip от радиуса, это должны поддерживать точки доступа, либо вы должны использовать сторонний dhcp сервер, который работает с radius(последние версии freeradius могут работать как dhcp, однако нестабильно)

ventilator ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.