最近、同じ問い合わせを複数受けたので少し調べてみました。
最近のFreeRADIUSは、802.1X認証時のRADIUS Accept に Framed-MTUを意図せず含むことがあるようです。
このFramed-MTU値が小さいため、通信が遅くなったり、同一ポートで複数端末が認証しているようなケースで2台目以降が認証に失敗してしまいます。
手元の環境で確認した限り、FreeRADIUS 3.0.20 ではこのような事象は発生せず、FreeRADIUS 3.2.7 で発生するようになっていました。
確認してみると FreeRADIUS側の以下の設定による影響だとわかりました。
※設定箇所はLinux環境によって異なるかもしれません。以下は、Ubuntu、FreeRADIUS 3.2.7はソースインストールした環境です。
/usr/local/etc/raddb/sites-enabled/default
(省略)
update{
&reply: += &session-state:
}
(省略)
上記設定が加えられている結果、session-state に EAPトンネル内 で計算・取得された属性が入り、
update { &reply += &session-state: } で、その属性(Framed-MTUなど)が自動的にレスポンスへ付与されてしまいます。
その結果「3.2 にアップグレード後、勝手に Framed-MTU がレスポンスに含まれる」 と思われます。
自動的に設定されるFramed-MTUの値は環境によって異なるため、994, 1004, 1014 bytes などいくつかのケースが確認できています。
EAPに関連しているため、MAC認証(PAP/CHAP)では発生しません。
また、FreeRADIUS以外にも、アプライアンスの認証サーバでも似たような事象が発生することもあるそうで、
アプライアンスの場合は、原因、回避策などはメーカ側に問い合わせてみるようにして下さい。
回避策
具体的なFreeRADIUS側の設定方法は、FreeRADIUSの設計、構築ベンダ様に確認いただくべきかと思いますが、
単純に上記の設定3行を削除するだけで、自動的にFramed-MTUが返ってくることは無くなることが確認できています。
もしくは、意図的に1500 byteなど高い値をRADIUS Attributeに設定しても回避することが可能です。
Aruba CX Switch での確認方法
RADIUS AttributeのFramed-MTUによりMTU値が設定されてしまっているかどうかは、認証後のクライアント情報を確認するとすぐにわかります。
6000# show port-access clients detail | begin Attributes
RADIUS Attributes
------------------
User-Name : test-user
Framed-MTU : 994 bytes
------------------------------
Keita Shimono,
Aruba Japan SE Manager & Airheads Leader
------------------------------