FreeRADIUS InkBridge

Attributes

Much of the information in this section is also in the raddb/dictionary file

All of the attributes have been renamed from v3. This change was necessary in order to support new functionality in v4. The unfortunate side effect of this change is that all of the names in SQL, LDAP, and the files module are incompatible with v4.

We recognize that is is difficult to change every entry in a database, especially when there’s no clear mapping between the "old" and "new" names. This renaming is made more complex because the "new" names need to be grouped and arranged in ways that the old ones were not.

The "old" names were all in flat lists, so that User-Name appeared next to Cisco-AVPAir. This organization was simple enough to work for 20 years, but its time has come. The new names are hierarchical, and are nested by definition.

For v4, the Cisco-AVPair attribute is called AVPair, and it lives inside of the Cisco namespace, which in turn lives inside of the Vendor-Specific namespace. So the old Cisco-AVPair attribute is now named Vendor-Specific.Cisco.AVPair.

This renaming process continues for many thousands of vendor-specific attributes.

Happily, it is possible to (mostly) use the old names with v4. There are limitations, but it will mostly work. The main reason for enabling the old names is to try out v4 with a database which is also used by v3. This lets you test that v4 works, without going through a complex "upgrade everything" process.

The old v3 names are in "alias" dictionaries, in the ${dictdir}/alias/ directory. To find out where this directory is on your local system, run "radiusd -h" or "radclient -h". Then look for the "-D" command-line option, and it will tell you where the dictionary files are located.

The v3 names are in a file named ${dictdir}/radius/alias/VENDOR.txt where VENDOR is the name of the vendor, which is taken from the VENDOR definition in the v3 dictionaries.

You will need to add a $INCLUDE line for each vendor-specific dictionary which is used by your local system. The default v4 dictionaries do not enable all of v3 compatibility names. The reason is simple: the alias names mostly work, in most situations. But there are situations where the aliases do not behave correctly.

We recognize that this process is a bit of work. However, we wish to encourage everyone using v4 to upgrade to using the new v4 features. Our experience shows that if we automatically enable "compatibility features", then those compatibility features will be used for a decade, and no one will upgrade to use the new features. So we need to find a balance between upgrades and ongoing support. Easy upgrades will mean complex ongoing support. Complex upgrades make ongoing support easier, but also make it less likely that people will upgrade.

Attribute References

Use of attributes in xlats e.g. %{User-Name} remains unchanged.

As of v3, the preferred format for unknown attributes is Attr-oid.oid.oid, e.g. Attr-26.11344.255. However, v3 would still parse (but not generate) attributes of the form Vendor-FreeRADIUS-Attr-255. The Vendor- syntax has been removed in version 4. The server would never produce such names, and allowing them as input made attribute parsing significantly more complex.

List references

The old-style request: and reply: syntax for lists has been deprecated. Please use request and reply instead.

Many lists have been removed. e.g._`proxy`, proxy-reply, coa, coa-reply, disconnect, and disconnect-reply. The underlying functionality still exists, but it has been moved to different keywords, such as subrequest.