Octet

RADIUS or TACACS+: what is the difference, and when do you use each?

Show the answer

Say this first

RADIUS runs over UDP 1812 for authentication and 1813 for accounting (older devices use 1645 and 1646), combines authentication and authorization in one reply, and hides only the password attribute. TACACS+ runs over TCP 49, encrypts the whole packet body, and keeps authentication, authorization and accounting as separate exchanges, which is what makes per-command authorization possible. I use RADIUS for network access (802.1X, MAB, VPN, Wi-Fi) and TACACS+ for engineers logging in to network devices.

Go deeper

Side by side

RADIUSTACACS+
TransportUDP 1812 auth, 1813 accountingTCP 49
What is protectedonly the User-Password attributethe whole body (header in clear)
AAA structureauthentication and authorization in one Access-Acceptthree separate exchanges
Per-command authorizationnoyes
StandardIETF, RFC 2865 and RFC 2866Cisco origin, documented in RFC 8907
Extensionsvendor-specific attributes (attribute 26)attribute-value pairs
Typical usenetwork access: 802.1X, MAB, VPN, wirelessdevice administration

RADIUS message flow

Access-Request, then any number of Access-Challenge and Access-Request rounds (EAP runs here), then Access-Accept or Access-Reject. The Accept can carry policy: a VLAN, a downloadable ACL, a session timeout, a security group tag. Accounting-Request start, interim and stop records go to port 1813.

Why TACACS+ for administrators

Each command can be authorized and logged on its own, and the command text is encrypted on the wire. TCP also tells the device at once when a server is down, instead of waiting for UDP timeouts and retries.

Traps

  • Saying TACACS+ is Cisco only. Juniper, Arista, Palo Alto and Fortinet all support it.
  • Swapping which protocol encrypts what. RADIUS hides the password, TACACS+ encrypts the body.
How did you do?Book 8.4 Authentication Protocols