Option 82在校园网的应用与实现(转)

来源:互联网 发布:数据库表的备注 编辑:程序博客网 时间:2024/05/29 14:37

作者:南京政治学院上海分院教育技术中心 陈晓晖

经过近几年的建设,各高校大体完成了校园网基础环境建设,将建设重点逐步转移到信息资源与应用服务上,校园网的安全也越来越受重视,迫使网络管理员比以往更加需要在加强网络安全和便于使用之间找到一个平衡点。笔者认为在具备802.1x认证的硬件条件下,引入Option 82构建一个权限分配清晰的校园网是一项可行的措施。 

DHCP Option 82说明和关键点 

DHCP报文最后有一个312字节的Option段,在RFC3046中定义了DHCP Relay Agent Information Option,也就是DHCP Option 82,该选项有两个子选项:Circuit ID和Remote ID。在实际应用中,Circuit ID和Remote ID子选项将分别对应“用户权限”和“VLAN ID”。因此,要使用Option 82认证就必须具备以下两个条件:第一,DHCP Relay Agent通常在接入交换机上工作,因此交换机必须支持RFC 3046;第二,要有一个过程或动作给Circuit ID和Remote ID赋值,以确定用户端的信息,在本文中是利用802.1x认证配合来赋值的。 

Option 82认证步骤 

为节省篇幅,本文假定校园网已成功实现了802.1x认证,各交换机和服务器已完成设置。引入Option 82后,以网络拓扑图中的用户tuser在PC-test登录为例,认证步骤如下: 

1. 在认证服务器中赋给用户(tuser)一个权限值,如10; 

2. 将该用户的接入端口(fastEthernet 0/10)划到VLAN82中,或将所有需要Option 82认证的端口都划入到VLAN82。虽然在二层交换机中没有特意声明,但在三层交换机中,明确了这是一个Tag VLAN; 

3. 用户经过接入交换机(216.70.208.10)的DHCP Relay向DHCP Server(216.70.208.19)申请IP地址; 

4. 由于交换机已经启用了Option 82认证,用户在没有认证之前,Circuit ID的值是0,如果用户通过了802.1x认证,认证服务器将会通过接入交换机将用户(tuser)的权限值10赋给Circuit ID,即agent.circuit-id=00:0a:00:52(十六进制); 

5. 将用户的Tagged VLAN的Tag和权限与事先在DHCP Server中定义好的约定进行匹配,从相应的IP地址池获得IP地址。 

技术实现 

1. Linux DHCP Server设置 

ddns-update-style ad-hoc; 

default-lease-time 28800; 

max-lease-time 43200; 

ignore client-updates; 

class “nvlan831”{ //vlan831用户不认证时匹配 

match if option agent.circuit-id=00:00:03:3f; } //前两个字节匹配用户权限值,为0表示不认证;后两个字节匹配VLAN ID 831,用十六进制表示。 

class “vlan831”{ //vlan831用户认证时匹配 

match if option agent.circuit-id=00:0a:03:3f; } //前两个字节匹配用户权限值10;后两个字节匹配VLAN ID 831。 

class “nvlan82”{ //vlan82用户不认证时匹配 

match if option agent.circuit-id=00:00:00:52; } 

class “vlan82”{ //vlan82用户认证时匹配 

match if option agent.circuit-id=00:0a:00:52; } //前两个字节匹配用户权限值10;后两个字节匹配VLAN ID 82。 

shared-network subnet208 { // subnet 192.168.1.0和subnet 216.70.208.0在三层交换机上属于相同的物理端口,因此要先定义一个shared-network。 

subnet 192.168.1.0 netmask 255.255.255.0 { 

option routers 192.168.1.2; 

option domain-name-servers 192.168.1.9; } 

subnet 216.70.208.0 netmask 255.255.255.0 { 

option subnet-mask 255.255.255.0; 

option broadcast-address 20.70.208.255; 

option routers 216.70.208.5; 

option domain-name-servers 216.70.208.13, 21.18.1.2; } 

pool { range 192.168.1.10 192.168.1.19; 

allow members of “nvlan82”; } 

pool { range 216.70.208.250 216.70.208.254; 

allow members of “vlan82”; } 



shared-network subnet224 { 

subnet 192.168.2.0 netmask 255.255.255.0 { 

option routers 192.168.2.2; } 

subnet 216.70.224.0 netmask 255.255.255.0 { 

option subnet-mask 255.255.255.0; 

option broadcast-address 20.70.224.255; 

option routers 216.70.224.1; 

option domain-name-servers 216.70.208.13, 21.18.1.2; } 

pool { range 192.168.2.10 192.168.2.19; 

allow members of “nvlan82”; } 

pool { range 216.70.224.250 216.70.224.254; 

allow members of “vlan82”; } 



2. 接入交换机设置 

hostname wk-2150g 

vlan 1 



vlan 82 //需要认证的端口将划分到此VLAN 



radius-server host 216.70.208.24 

aaa authentication dot1x 

aaa accounting server 216.70.208.24 

aaa accounting 

aaa accounting update 

enable secret level 1 5 &&2*T7+.tZ9[V/,|7U1/W&&-/-2)sv'~1' 

enable secret level 15 5 &&2o+/7R:Z9E,1u_;U1&&-8U0<2n'.tj9= 



service dhcp 

ip helper-address 216.70.208.19 //设置DHCP Server的IP地址 

ip dhcp relay information option dot1x //设置DHCP option 82信息是基于802.1x的 

interface fastEthernet 0/9 

switchport access vlan 82 

dot1x port-control auto //设置802.1x的受控口 



interface fastEthernet 0/10 

switchport access vlan 82 

dot1x port-control auto //设置802.1x的受控口 



interface gigabitEthernet 1/1 

switchport mode trunk //设置交换机的上联口,使多个VLAN都可通过这个上联口与上级交换机相连 



interface vlan 1 //设置交换机的管理VLAN 

no shutdown 

ip address 216.70.208.10 255.255.255.0 



dot1x client-probe enable 

aaa authorization ip-auth-mode dhcp-server //设置授权模式是DHCP Server 

dot1x timeout tx-period 5 

dot1x timeout server-timeout 5 

dot1x accout-update-interval 60 

radius-server key aaa 

ip default-gateway 216.70.208.5 

snmp-server community public ro 

end 

3. 三层交换机设置 

三层交换机要允许在一个或一组物理端口上定义多个VLAN,很多交换机可以通过Tag VLAN的方式来实现,或者在一个VLAN接口上定义多个IP地址。本文采用了前者: 

# Config information for VLAN test82. 

configure vlan "test82" tag 82 # VLAN-ID=0x52 Global Tag 11 

configure stpd s0 add vlan "test82" 

configure vlan "test82" ipaddress 192.168.1.2 255.255.255.0 

configure vlan "test82" add port 3:4 tagged 

Option 82在校园网的应用模式 

1. 入网验证系统 

即本文前面拓扑图表现的模式,当一个新用户进入到校园网时首先进入的是一个隔离区。此时,网管员允许或指引他访问特定的主页,用户可以下载认证客户端软件,但主要目的是要求用户安装各种安全软件,以使其在进入真正的校园网时使用的是一台干净的、系统本身对网络无害的计算机。这也是作者最初研究Option 82的目的。 

2. 对重点、敏感的应用或数据进行保护 

在一个校园网内,用户可以自由访问各种公共资源,如BBS、电子邮件、图书馆等,而带有一定加密级的应用和数据则划分到一个特定的子网,只有通过认证的用户才能访问,通过前面例子里讲到的用户权限设定,可以将校园网的数据公开度或重要性划分为多个层次,通过用户的IP严格区分不同用户间的权限。 

3. 计费策略 

根据用户IP地址的不同实现不同的计费策略,如用户不需要认证就可免费访问校园网内网信息资源,用户认证后获得更高权限的IP,或公有IP地址,按相关的费率付费访问外网。 

本文在一个相对简单的环境内,用一台Linux DHCP Server实现了多个VLAN的Option 82认证。下一步的任务将是研究和探索在一个多品牌网络设备的校园网环境下如何实现Option 82认证,这还有很多工作要做。 

 

网络拓扑图