Hi Heikki,

On Mon, 28 Mar 2011, Heikki Vatiainen wrote:

> On 03/28/2011 01:30 PM, Adam Bishop wrote:
>
>> Which attribute does radiator use for comparison when using
>> MAC-filtering on a client block?  Trying to pin down why one of our
>> clients isn't being picked up by the client block we have set:
>
> The attribute is Calling-Station-Id. Its format is like what you have
> below with hyphens being optional.

I just had a look at the code myself. It seems like it uses Called-Station-Id:

Function find in Client.pm

   #####################################################################
   # Find a Client with the packed Host same as the RecvFrom host
   # If not found, try to find one with the MAC address given in
   # Called-Station-Id
   # If not found, try to find one for DEFAULT
   # REVISIT: Should probably add regexp matching too?
   sub find
   {
       my ($p) = @_;

       my ($client_port, $client_addr) =
   Radius::Util::unpack_sockaddr_in($p->{RecvFrom});
       my $ret = $Radius::Client::clients{$client_addr};
       # Look for a IPV4 CIDR match.
       $ret = findCidrAddress($client_addr)
          unless defined $ret;
       if (!defined $ret)
       {
          # Try to deduce a MAC address from Called-Station-Id
          no warnings "uninitialized";
>>>       my $mac = $p->getAttrByNum($Radius::Radius::CALLED_STATION_ID);
          $ret = $Radius::Client::clients{'MAC:' . $mac}
              if ($mac =~
   
/^[0-9a-fA-F]{2}-?[0-9a-fA-F]{2}-?[0-9a-fA-F]{2}-?[0-9a-fA-F]{2}-?[0-9a-fA-F]{2}-?[0-9a-fA-F]{2}$/);

          # Still nothing, fall back to the default
          $ret = $Radius::Client::clients{DEFAULT}
              unless defined $ret;
       }
       return $ret;
   }

This is most propably the access points mac address on the air which is
not necessarily the same as the mac adresse seen on the ethernet.

Greetings
Christian

-- 
Christian Kratzer                      CK Software GmbH
Email:   c...@cksoft.de                  Wildberger Weg 24/2
Phone:   +49 7032 893 997 - 0          D-71126 Gaeufelden
Fax:     +49 7032 893 997 - 9          HRB 245288, Amtsgericht Stuttgart
Web:     http://www.cksoft.de/         Geschaeftsfuehrer: Christian Kratzer
_______________________________________________
radiator mailing list
radiator@open.com.au
http://www.open.com.au/mailman/listinfo/radiator

Reply via email to