情况:
我正在尝试让 802.1X 为我工作。我希望 RADIUS 服务器根据特定用户的 RADIUS 回复属性将 VLAN 动态分配给端口。我有一个 HP E2620 交换机和一个 FreeRADIUS 服务器。请求者是一台 Windows 8.1 机器
我在 freeradius 网站上提到了这个文件。
到目前为止我所做的:
在 FreeRADIUS 上,我使用以下参数创建了一个用户:
dot1xtest User-Password := "secret"
Tunnel-Type = "VLAN",
Tunnel-Medium-Type = "IEEE-802",
Tunnel-Private-Group-ID = "100"
我也尝试过Tunnel-Pvt-Group-ID
,但它在 FreeRADIUS 上不起作用,只是对我吠叫(我在 Microsoft NPS 上的配置资源中看到了这一点,其中之一)。我还尝试了隧道介质类型的值“802”、802、6。
我还尝试使用实际的 VLAN 名称而不是 VLAN-ID 作为组 ID 值。无论如何它的数据类型是字符串。
我将 HP 交换机配置为将此 RADIUS 服务器用于 AAA,并将其设置为端口 10:
aaa port-access gvrp-vlans
aaa authentication port-access eap-radius
aaa port-access authenticator 10
aaa port-access authenticator 10 auth-vid 150
aaa port-access authenticator 10 unauth-vid 200
aaa port-access authenticator active
VLAN:
VLAN 100 - VLAN which I want to get after authentication.
VLAN 150 - VLAN which I get now, because my config is not working
VLAN 200 - Unauthorized VLAN which is used on auth. failure
笔记:
端口10还具有分配给它的标记的VLAN 150:
vlan 150 untagged 10
。而且我无法摆脱静态分配上面列出的所有 VLAN 都存在于交换机的 VLAN 数据库中。
每当我插入此端口时,它都会要求我提供凭据;在我通过身份验证成功后,它只会将我发送到 VLAN150,如果我尝试失败,我会到达 VLAN200。
就像这里描述的那样,我在 Windows 连接上启用了 802.1X 身份验证。
我尝试启用 GVRP - 它不会改变任何东西
诊断/显示命令输出:
端口 10 的静态 VLAN 分配。VLAN 150 未标记
SW # show vlans ports 10 detail
Status and Counters - VLAN Information - for ports 10
VLAN ID Name | Status Voice Jumbo Mode
------- -------------------------------- + ---------- ----- ----- --------
150 VLAN150 | Port-based No No Untagged
在 show logging
我看到这个:
I 08/28/14 08:29:24 00077 ports: port 10 is now off-line
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by AAA
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by STP
I 08/28/14 08:29:29 00076 ports: port 10 is now on-line
I 08/28/14 08:29:29 00001 vlan: VLAN200 virtual LAN enabled
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by AAA
I 08/28/14 08:29:29 00002 vlan: UNUSED virtual LAN disabled
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by STP
I 08/28/14 08:29:29 00076 ports: port 10 is now on-line
I 08/28/14 08:29:29 00001 vlan: UNUSED virtual LAN enabled
I 08/28/14 08:29:47 00002 vlan: UNUSED virtual LAN disabled
show port-access authenticator
输出:
SW # show port-access authenticator
Port Access Authenticator Status
Port-access authenticator activated [No] : Yes
Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : Yes
Auths/ Unauth Untagged Tagged % In RADIUS Cntrl
Port Guests Clients VLAN VLANs Port COS Limit ACL Dir
---- ------- ------- -------- ------ --------- ----- ------ -----
10 1/0 0 150 No No No No both
RADIUS用户测试:
Linux-server # radtest dot1xtest secret localhost 0 secretkey
Sending Access-Request of id 158 to 127.0.0.1 port 1812
User-Name = "dot1xtest"
User-Password = "secret"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=158, length=37
Tunnel-Type:0 = VLAN
Tunnel-Medium-Type:0 = 802
Tunnel-Private-Group-Id:0 = "100"
这是我在 RADIUS 服务器上的 TCPdump 中看到的。我正在使用源端口 1812 捕获传出的 UDP 流量。这就是我的交换机得到的(如果确实如此,不确定如何检查......)
Tunnel Type Attribute (64), length: 6, Value: Tag[Unused]#13
0x0000: 0000 000d
Tunnel Medium Attribute (65), length: 6, Value: Tag[Unused]802
0x0000: 0000 0006
Tunnel Private Group Attribute (81), length: 5, Value: 100
0x0000: 3130 30
调试:
debug security radius-server
debug security port-access authenticator
debug destination buffer
之后,我拔下并插入电缆并做了show debug buffer
,这是它的复制粘贴。很奇怪,没有提到任何与 VLAN 相关的属性。
问题:
我究竟做错了什么?
我已经阅读了一堆资源,如果 RADIUS 分配了一个 VLAN ID 交换机,首先会使用它。如果身份验证成功,则它会回退到为端口访问身份验证器配置的授权 VLAN。如果不存在,则分配在端口上配置的 Untagged VLAN。为什么我没有得到这种行为?
我有点开始认为Tunnel-Private-Group-Id
这些开关不支持该属性。似乎每个资源都引用了Tunnel-Pvt-Group-Id
(在 Microsoft 上配置)。太糟糕了,我没有要检查的 Windows Server。
可能跟固件有关?还没有尝试升级,我使用 RA_15_06_0009.swi 并且已经有 RA_15_14_0007.swi
更新
刚刚试了一个3500yl-24G-PWR
模型,还是不行。所以..我猜,交换机只是没有从 RADIUS 服务器获取配置(或者我是否使用了不正确的属性或运算符?)。我该如何解决这个问题?