Primeiro faça um bakcup, para se por acaso algo dê errado (já testei e funcionou, mas mesmo assim é bom se precaver)
No terminal do mk-auth, logado como root digite ou cole o seguinte conteudo:
mysql -pvertrigo [enter]
use mkradius [enter]
/*verifica se existe uma tabela temporária com esse nome e a exclui se for o caso */
 drop temporary table if exists cli_ramais;
 /*cria uma tabela temporária com o resultado da consulta */
 create temporary table cli_ramais 
 /*Esta instrução retorna os dados da instrucao abaixo mais o nome do ramal*/
  (select radpost.id, radpost.username, radpost.ramal,nas.shortname from nas inner join 
  /*Esta instrução retorna a dados da linha que contem a última autenticação cliente para isso utiliza o retorna da instrucao abaixo */
  (select radpostauth.id, username, ramal from radpostauth inner join 
  /* Esta instrução select retorna uma tabela de uma coluna com o id do último acesso do cliente*/
  (select max(id) as id from radpostauth where reply = "Access-Accept" group by username) as postauth on radpostauth.id = postauth.id where ramal is not null) as radpost on  radpost.ramal = nas.nasname);
 
 /*verifica se existe uma tabela temporária com esse nome e a exclui se for o caso */
 drop temporary table if exists tmp_radcheck;
 
 /*cria uma tabela temporária com o resultado da consulta */
 create temporary table tmp_radcheck 
 (select idcliente,login, username from radcheck where attribute = "Password" and tipo = "log" and username <> value group by username);
 
 /*Altera o nome do ramal que o cliente autenticou por na tabela sis_cliente utilizando os dados da tabela temporária criada*/             
 update sis_cliente, cli_ramais set sis_cliente.ramal = shortname where cli_ramais.username = sis_cliente.login;
 
 /*Apaga todas as informacoes de ramal que estiver na tabela e autenticação para poder inserir o último que o cliente autenticou*/
 delete from radcheck where attribute = "NAS-IP-Address" and username in (select username from cli_ramais);
 
 /*Utiliza os dados da tabela temporária para definir o ramal que o cliente poderá autenticar */
 insert into radcheck (username, attribute, op, value, ativo, ativo2, login, idcliente, tipo)
 select cli_ramais.username, "Nas-IP-Address" as atributo, "==" as opr, cli_ramais.ramal, "s" as ativo, "s" as ativo2, tmp_radcheck.login, tmp_radcheck.idcliente, "log" as tipo from cli_ramais left join tmp_radcheck on cli_ramais.username = tmp_radcheck.username;


Respostas
Pedro,
talvez seja interessante colocar um campo de refencia com o id da autenticação que forneceu o mac ou ip e só pegar novagemente se a informação for provieniente de uma autenticacao com id maior
Pedro Filho disse:
legal, Jossy vc tem algo amigo que caso o cliente remova o ramal e deseje pegar novamente um ramal, ele não use mais o ramal anterior, estava precisando algo do tipo para usar com o auto ip e automac...