AAA
- AAA(Authentication, Authorization,andAccounting)是一种管理框架。
- AAA是Authentication(认证)、Authorization(授权)和Accounting(计费)的简称,是网络安全的一种管理机制,提供了认证、授权、计费三种安全功能。
AAA常见架构
- AAA常见网络架构中包括用户、NAS(Network Access Server)、AAA服务器(AAA Server)。
- NAS负责集中收集和管理用户的访问请求。基于域来对用户进行管理,每个域都可以配置不同的认证、授权和计费方案,用于对该域下的用户进行认证、授权和计费。可以是路由器或者交换机。
- 当收到用户接入网络的请求时,NAS会根据用户名来判断用户所在的域,根据该域对应的AAA方案对用户进行管控。
认证(Authentication)
- AAA支持的认证方式有:不认证,本地认证,远端认证。
授权(Authorization)
- AAA支持的授权方式有:不授权,本地授权,远端授权。
- 授权信息包括:所属用户组、所属VLAN、ACL编号等。
计费(Accouting)
- 计费功能用于监控授权用户的网络行为和网络资源的使用情况。
- AAA支持的计费方式有:不计费,远端计费。
AAA的协议RADIUS
- RADIUS是一种分布式的、客户端/服务器结构的信息交互协议,可以实现对用户的认证、计费和授权功能。
- 通常由NAS作为RADIUS客户端,负责传输用户信息到指定的RADIUS服务器,然后根据从服务器返回的信息进行相应处理(如接受/拒绝用户接入)。
- RADIUS服务器一般运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信息,负责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受/拒绝认证请求)。RADIUS使用UDP(User Datagram Protocol)作为传输协议,并规定UDP端口1812、1813分别作为认证、计费端口,具有良好的实时性;同时也支持重传机制和备用服务器机制,从而具有较好的可靠性。
AAA的配置
[R1]aaa
[R1-aaa]local-user huawei password cipher huawei123
[R1-aaa]local-user huawei service-type telnet
[R1-aaa]local-user huawei privilege level 0
广域网
广域网络设备的角色
- 广域网络设备基本角色有三种,CE(Customer Edge,用户边缘设备)、PE (Provider Edge,服务提供商边缘设备) 和P(Provider ,服务提供商设备)。具体定义是:
-
- CE:用户端连接服务提供商的边缘设备。CE连接一个或多个PE,实现用户接入。
- PE:服务提供商连接CE的边缘设备。PE同时连接CE和P设备,是重要的网络节点。
- P:服务提供商不连接任何CE的设备。
PPP
- PPP(Point-to-Point Protocol,点到点协议)是一种常见的广域网数据链路层协议,主要用于在全双工的链路上进行点到点的数据传输封装。
-
- PPP协议提供LCP(Link Control Protocol,链路控制协议),用于各种链路层参数的协商,例如最大接收单元,认证模式等。
- PPP提供了安全认证协议族PAP(Password Authentication Protocol,密码验证协议)和CHAP(Challenge Handshake Authentication Protocol,挑战握手认证协议)。
- PPP协议提供各种NCP(Network Control Protocol,网络控制协议)用于各网络层参数的协商,更好地支持了网络层协议。
-
- R1发的只能是R2收,R2发的只能是R1收,所以没有MAC地址和ARP的概念。
PPP链路建立流程
- PPP链路的建立有三个阶段的协商过程,链路层协商(LCP)、认证协商(可选PAP或CHAP)和网络层(NCP)协商。
-
- 链路层协商:通过LCP报文进行链路参数协商,建立链路层连接。
- 认证协商(可选):通过链路建立阶段协商的认证方式进行链路认证。
- 网络层协商 :通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。
- 链路层主要协商有没有环路,MRU最大接收单元,需不需要认证。
- 认证层主要协商账号、密码等信息。
- 网络层主要协商PPP封装的上层协议,形成互访的重要参数,例如路由。
PPP链路协商时的状态机
- PPP运行过程中,可以随时中断连接,物理链路断开、认证失败、超时定时器时间到、管理员通过配置关闭连接等动作都可能导致链路进入Terminate阶段。
- 通信双方开始建立PPP链路时,首先是Dead,当链路侦听到载波信号(有电信号产生)之后,就会进入到Establish阶段。
- 在Establish阶段,进行LCP协商:协商通信双方的MRU(Maximum Receive Unit,最大接收单元)、认证方式和魔术字(Magic Number)等选项。协商成功后进入Opened状态,表示底层链路已建立。
- 如果配置了认证,将进入Authenticate阶段。否则直接进入Network阶段。
- 在Authenticate阶段,会根据连接建立阶段协商的认证方式进行链路认证。认证方式有两种:PAP和CHAP。如果认证成功,进入Network阶段,否则进入Terminate阶段,拆除链路,LCP状态转为Down。
- 在Network阶段,PPP链路进行NCP协商。通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。最常见的NCP协议是IPCP,用来协商IP参数。
- 在Terminate阶段,如果所有的资源都被释放,通信双方将回到Dead阶段。
LCP链路控制协议
LCP报文格式
- Flag的值固定是0X7E,表示为PPP报文。
- Address与Contol的值是固定的。
- Protocol段里面的值可以告知信息交给哪个上层的协议去处理。
- Information内容字段,安装Type Length value格式去开发的,即TLV架构。一个TLV可以有一种功能,可以将各种TLV组合起来实现某种功能,也可以直接替换一个TLV,如果OSPFv2是用了TLV的架构,那么它就不会因为需要支持IPv6而重新开发了OSPFv3。TLV可以嵌套。
LCP协商过程-正常协商
- PPP中的报文全部都是单向协商。
- LCP协商由不同的LCP报文交互完成。协商由任意一方发送Configure-Request报文发起。如果对端接收此报文且参数匹配,则通过回复Configure-Ack响应协商成功。
-
- MRU最大接收单元,这个接口一次最大能接收多少字节,1500字节。
- 认证类型,需要与自己用PAP认证。
- 魔术字,随机数,用于防止环路产生,如果发出去的魔术字和自己收到的一样,就是环路了。
LCP协商过程-参数不匹配
- 在LCP报文交互中出现LCP参数不匹配时,接收方回复Configure-Nak响应告知对端修改参数然后重新协商。
LCP协商过程-参数不识别
- 在LCP报文交互中出现LCP参数不识别时,接收方回复Configure-Reject响应告知对端删除不识别的参数然后重新协商。
PPP认证协商
PAP认证
- PAP认证双方有两次握手。协商报文以明文的形式在链路上传输。
CHAP认证
- CHAP认证双方有三次握手。协商报文被加密后再在链路上传输。
NCP协商
静态协商
- 静态IP地址协商需要手动在链路两端配置IP地址。
- 会将对方的ip地址加入到自己的直连路由中。会生成一条以对方ip为目的,掩码为32位的直连路由。
动态协商
- 动态IP地址协商支持PPP链路一端为对端配置IP地址。
- R1向R2发送一个Configure-Request报文,此报文中会包含一个IP地址0.0.0.0,表示向对端请求IP地址;
- R2收到上述Configure-Request报文后,认为其中包含的地址(0.0.0.0)不合法,使用Configure-Nak回应一个新的IP地址10.1.1.1;
- R1收到此Configure-Nak报文之后,更新本地IP地址,并重新发送一个Configure-Request报文,包含新的IP地址10.1.1.1;
- R2收到Configure-Request报文后,认为其中包含的IP地址为合法地址,回应一个Configure-Ack报文;
- 同时,R2也要向R1发送Configure-Request报文请求使用地址10.1.1.2,R1认为此地址合法,回应Configure-Ack报文。
[R1-Serial1/0/0]dis this
[V200R003C00]
#
interface Serial1/0/0
link-protocol ppp
ppp authentication-mode chap
remote address 2.2.2.2
ip address 1.1.1.1 255.255.255.0
#
return
--------------------------------------------------------------
[R2-Serial1/0/0]dis this
[V200R003C00]
#
interface Serial1/0/0
link-protocol ppp
ppp chap user dalong
ppp chap password cipher %$%$WvxFAP5iB,5:|THTuu[-,.M3%$%$
ip address ppp-negotiate
#
return
- 可以用来模拟运营商的工作原理,运营商创建了aaa用户名密码,家里的光猫去连接上运营商设备之后,运营商就可以给光猫分配地址。
PPPOE
- PPPoE(PPP over Ethernet,以太网承载PPP协议)是一种把PPP帧封装到以太网帧中的链路层协议。PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入服务器。
- PPPoE集中了PPP和Ethernet两个技术的优点。既有以太网的组网灵活优势,又可以利用PPP协议实现认证、计费等功能。
PPPOE的会话过程
- PPPoE的会话建立有三个阶段,PPPoE发现阶段、PPPoE会话阶段和PPPoE终结阶段。
PPPOE的报文
PPPOE的发现
- PPPoE协议发现有四个步骤:客户端发送请求、服务端响应请求、客户端确认响应和建立会话。
-
- PADI用来发现PPPoE服务器,以广播的形式。
- PADO用来回复客户端我是服务器,以单播的形式。
- PADR用来请求PPPoE服务器,你来当我的服务器,单播。
- PADS回复客户端我当服务器,并给你一个SESSION ID号。
- 客户端向session id号,服务器才知道他是谁。
PPPOE的会话阶段
- PPPoE会话阶段会进行PPP协商,分为LCP协商、认证协商、NCP协商三个阶段。
PPPOE的关闭连接
- 当PPPoE客户端希望关闭连接时,会向PPPoE服务器端发送一个PADT报文,用于关闭连接。
- 同样,如果PPPoE服务器端希望关闭连接时,也会向PPPoE客户端发送一个PADT报文。
PPPOE的配置
服务器端:
作为运营商,需要给客户端分配宽带账号密码,并且使用ppp协议
aaa
local-user dalong password cipher dalong
local-user zhang service-type ppp
输入宽带账号和密码之后,服 务器需要给光猫分配一个地址,地址是在地址池里面拿出的。
ip pool pppoe
network 202.100.1.0 mask 255.255.255.0
gateway-list 202.100.1.1
创建拨号模板(如果一个接口一个接口的配置,那么需要配置很多的接口,所以创建模板批量应用到很多接口)
interface virtual-template1
ppp authentication-mode chap
ip add 202.100.1.1 24
remote address pool pppoe
将拨号模板绑定到接口
int g0/0/0
pppoe-server bind virutal-template 1
运营商到此完毕
客户端:
dialer-rule 配置拨号访问组
dialer-rule 1 ip permit 指定允许所有的IPv4报文通过
-----------------------------------
int dialer 1 创建拨号口
dialer user 123 现实中不需要这一步
dialer bundle 1
ppp chap user dalong
ppp chap password cipher dalong
ip add ppp-ne 远端获取地址
-----------------------------------
interface g0/0/0
pppoe-clinet dial-bundl 1 关联到物理接口
向外指定默认路由
ip route-static 0.0.0.0 0 dialer 1
做NAT地址转换
int dialer 1
nat outbound 2000