Campus Network as a Service
Introduktion
Varje kund har två stycken RADIUS-servrar, t.ex. kmh-nac1.cnaas.sunet.se och kmh-nac2.cnaas.sunet.se. Båda servrarna kan vara aktiva samtidigt och autentisera klienter, det finns alltså ingen form av HA-lösning utom switcharna och accesspunkterna i nätet väljer själv vilken server dom vill prata med för stunden.
Båda servrarna har en RADIUS-server som för nyare kunder kör direkt på systemet och för äldre kunder kör i en container. Båda servrarna har också en Postgres-databas som alltid kör i en container.
Felsökning
På varje server finns det ett script ("/root/radiustest.sh") som testar det mesta som rör inloggning av klienter. Exempel hos KMH:
: 07:50 root@kmh-nac1: ~ # ./radiustest.sh
[Fri Oct 27 07:50:15 UTC 2023] Container nac_nac_api_1: PASS: Container nac_nac_api_1 is running!
[Fri Oct 27 07:50:15 UTC 2023] Container nac_nac_postgres_1: PASS: Container nac_nac_postgres_1 is running!
[Fri Oct 27 07:50:15 UTC 2023] Container nac_front_nac_front_1: PASS: Container nac_front_nac_front_1 is running!
[Fri Oct 27 07:50:15 UTC 2023] Disk: PASS: Enough free space on "/dev/root (29% used)"
[Fri Oct 27 07:50:15 UTC 2023] Disk: PASS: Enough free space on "/dev/vda15 (6% used)"
[Fri Oct 27 07:50:15 UTC 2023] EAP: PASS: Eduroam with user testuser1@sunet.se works!
[Fri Oct 27 07:50:15 UTC 2023] EAP: PASS: AD/LDAP with user xxx works!
[Fri Oct 27 07:50:16 UTC 2023] RADIUS: PASS: Port-auth to RADIUS-server works!
[Fri Oct 27 07:50:17 UTC 2023] Ping: PASS: Could ping Eduroam R1 (192.36.171.226)!
[Fri Oct 27 07:50:18 UTC 2023] Ping: PASS: Could ping Eduroam R2 (192.36.171.227)!
[Fri Oct 27 07:50:19 UTC 2023] Ping: PASS: Could ping KMH NAC2 (10.103.1.13)!
: 07:50 root@kmh-nac1: ~ #
Varje server har en Postgres-databas med information om klienter. Det att kolla i databasen om några klienter lyckas autentisera. I databasen finns en tabell som heter radpostauth som innehåller information om när en klient senast försökte autentisera och om det gick bra eller ej. Databasen består av en Docker-container med Postgres och går att ansluta till:
: 07:53 root@kmh-nac1: ~ # docker exec -it nac_nac_postgres_1 psql -U cnaas nac
psql (11.16 (Debian 11.16-1.pgdg90+1))
Type "help" for help.
nac=#
För att se vilka klienter som senast loggat in:
nac=# select username,reply,authdate from radpostauth order by id desc limit 100;
username | reply | authdate
-------------------------------------------+---------------+-------------------------------
aaa@vassar.edu | Access-Accept | 2023-10-27 07:56:35.817391+00
bbb@student.kmh.se | Access-Reject | 2023-10-27 07:56:34.513482+00
50:a0:30:08:27:18 | Access-Reject | 2023-10-27 07:56:27.071413+00
78:7b:8a:e1:b1:40 | Access-Reject | 2023-10-27 07:56:26.94749+00
ccc@kmh.se | Access-Accept | 2023-10-27 07:56:26.225286+00
ddd@kmh.se | Access-Accept | 2023-10-27 07:56:26.192282+00
Som man ser ovan syns användarnamnet eller MAC-adressen som försökt autentisera, resultatet och tidpunkten. Det är helt normalt att användare både lyckas (Access-Accept) och misslyckas (Access-Reject). Om en användare t.ex. försöker med fel lösenord får dom en reject. Det viktiga är att det kommer in nya användare och att någon får en accept.