DHCP
DHCP服务器能够为大量主机分配IP地址并集中管理
报文类型
- DHCP discover:客户端用来寻找DHCP服务器(广播)
- DHCP offer:DHCP服务器用来响应DHCP discover报文(单播)
- DHCP request:客户端请求配置确认,或者续借租期(广播,50%续租的时候是单播)
- DHCP ACK:服务器对request报文的确认响应(单播)
- DHCP NAK:服务器对request报文的拒绝响应(单播)
- DHCP release:客户端要释放地址时用来通知服务器(单播)
另外,地址池有分为全局地址池和接口地址池,其中接口地址池的优先级比全局地址池优先级高:
- 接口地址池,为连接到同一网段的主机或终端分配地址:dhcp select interface
- 全局地址池,为所有连接到DCHCP服务器的终端分配IP地址:DHCP select global
配置方法
在全局下配置:
dhcp enable
# 开启dhcp服务功能
ip pool name
# 创建全局地址池
network IP mask IP_mask
# 全局地址池下可分配的网段地址
gateway-list IP
# 设置全局地址池的出口网关
lease day time
# 设置释放的时间,缺省是1天
在接口下配置:
dhcp select interface
# 用命令关联接口和接口地址池,在接口下配置
dhcp server dns-list
# 指定接口地址池下的dns服务器地址
dhcp server excluded-ip-address
# 配置接口地址池中不参与自动分配的IP地址范围
dhcp server lease
# DHCP服务器接口地址池中IP地址的租用有效期
Telnet
telnet客户端和服务器基于TCP连接来传输命令,服务器默认端口号是23
认证模式
- AAA认证模式,用户需要输入用户名和密码
- password模式,用户需要输入登录密码才能登录
配置
user-interface vty 0 4
# 指定创建用户的vty界面,这里分别创建了0,1,2,3,4
authentication-mode password
# 配置vty通过密码对用户进行认证
user-interface maximun-vty
# 调整vty界面的数量
set authentication password cipher huawei
# 设置认证密码
HDLC协议应用
high-level data link control,高级数据链路控制,是一种面向比特的链路层协议
- 协议不依赖于任何一种字符编码集
- 数据报文可以透明传输,用于透明传输的“0比特插入法”易于硬件实现
- 全双工通信,不必等待确认可连续发送数据,有较高的数据链路传输效率
- 所有帧均采用CRC校验,并对信息帧进行编号,可以防止漏收或重收,传输可靠性高
- 传输控制功能与处理功能分离,具有较大的灵活性和较完善的控制功能
有三种帧:信息帧,监控帧,无编号帧
flag | address | control | information | FCS | flag
其中,标志字段F,地址字段A,控制字段C,信息字段I,校验序列字段FCS
- 信息帧,用于传送有效信息或数据(I帧)
- 监控帧,用于差错控制和流量控制(S帧)
- 无编号帧,用于提供对链路的建立,拆除以及多种控制功能(U帧)
配置
在serial接口下配置:
link-protocol hdlc
# 默认是使用ppp协议的,这里改为了使用hdlc协议
ip address unnumbered interface loopBack 0
# 串行接口借用loopback接口的IP地址和对端建立连接
PPP协议
是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输
- 支持同步异步传输,but:X.25、FR等数据链路层协议只支持同步;SLIP只支持异步
- 良好的拓展性,可以拓展为PPPoE
- 提供LCP协议,用于各种链路层参数的协商
- 提供NCP协议,用于各网络层参数的协商
- 提供了认证协议:CHAP,PAP
- 无重传机制,网络开销小,速度快
帧格式:
flag | address | control | protocol | information | FCS | flag
其中information中封装了LCP报文
LCP报文
- Configure-Request:包含发送者试图与对端建立连接时使用的参数列表
- Configure-ACK:表示完全接受对端发送的configure-request的参数取值
- configure-nak:表示某些参数取值不被认可
- configure-reject:表示某些参数取值不能识别
LCP协商参数
- 最大接收单元MRU,ppp数据帧中information和padding的总长度
- 认证协议
- 魔术字,是一个随机产生的数字,用于检测链路环路
配置
serial接口配置:
link-protocol ppp
ppp authentication-mode {pap | chap}
# 在pap情况下:
ppp pap local-user *username* password cipher *password*
# 在chap情况下:
ppp chap user *username*
ppp chap password cipher *password*
PAP认证:
aaa
# 进入3A认证
local-user *username* password cipher *password*
# 创建本地用户
local-user *username* service-type ppp
# 设置用户为PPP的用户
访问控制
- 基本ACL,2000~2999:配置源IP地址等
- 高级ACL,3000~3999:源目IP,端口等
- 二层ACL,4000~4999:源目MAC,以太帧协议等
每个ACL可以包含多个规则,设备根据这些规则来对数据流量进行过滤,并且,匹配的顺序也是从小到大匹配,从上到下匹配。
配置
基本ACL:
acl [number]
rule [rule-id] {deny | permit} source { address remask | any }
# 接口下引用
traffic-filter { inbound | outbound } acl [number]
高级ACL:
acl [number]
rule [rule-id] {deny | permit} [tcp | udp]
source {IP remask | any} [source-port eq number]
destination {IP remask | any} [destination-port eq number]
BGP
BGP是Border gateway protocol的简称,是一种增强的路径矢量路由协议,同时拥有丰富的策略控制技术的外部网关协议
AS,自治系统,是指由同一个技术管理机构管理,使用统一选路策略的一些路由集合
AS内使用IGP来计算和发现路由,如OSPF,ISIS,RIP等
AS之间使用BGP来传递控制路由
- BGP可以跨越多跳路由建立邻居关系,基于TCP的
- 为了实现路由按需求进行控制和优选,BGP设计了诸多属性携带在路由中
BGP邻居发现
BGP使用TCP封装建立邻居关系,端口号为179,TCP采用单播建立连接,所以,需要手动指定邻居
- EBGP,运行在不同的AS之间的BGP路由建立的邻居关系
- IBGP,运行在相同AS内的BGP路由器建立的邻居关系
配置:
1.配置router ID(标识路由器)
2.配置EBGP邻居关系(AS之间传递路由)
3.配置IBGP邻居关系(AS内部传递路由)
router id 5.5.5.5
# 设置标识路由,自动选择则是loopback上最高的IP地址,或者物理接口上的最高IP地址
bgp 100
# bgp主要是靠AS号区分EBGP,IBGP
peer 10.1.35.5 as-number 300 | peer 2.2.2.2 connect-interface loopback0
# peer后面是对邻居的更新源IP地址,标识自己向对端邻居发起TCP连接的目的地址,一般选择直连接口
邻居关系建立
共需要五种报文:
- open报文,是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系
- update报文,用于在BGP邻居之间交换路由信息
- notification报文,当BGP路由检测到错误状态时,就向邻居发出notification报文,之后BGP连接会立即中断
- keepalive报文,BGP路由器会周期性的向邻居发出keepalive报文,保持连接有效性
- route-refresh报文,用于在改变路由策略后 请求对等体重新发送路由信息
状态变化:
初始状态是idle,该状态下,BGP路由器拒绝邻居发送的连接请求,只有在start时间后才接受,并转至为connect状态
- connect状态下,BGP会启动连接重传机制,等待TCP连接
- 成功,则发送open报文,转为opensent
- 失败,则转为Active状态
- 超时,则继续connect
- active状态下,BGP总会试图建立TCP连接
- 成功,则发送open报文,转为opensent
- 失败,停留在Active
- 超时,则转为connect
- opensent状态下,BGP等待邻居的open报文,确认AS,版本,认证等
- 正确,则发送keepalive报文,并转为openconfirm
- 错误,则发送notification报文,并转为idle状态
- openconfirm状态
- 收到keepalive,则转为established
- 收到notification,则转为idle
- establish状态,可以交互上面的五种报文
路由生成方式
- network,逐条将IP路由表中已存在的路由引入到BGP路由表中
ipv4-family unicast
network IP mask
display bgp routing-table
- import,根据运行的路由协议,将路由引入到BGP路由表中
ipv4-family unicast
import-route direct route-policy import
import-route static route-policy import
import-route ospf 1 route-policy import
# 将路由引进以后,进行精确匹配
route-policy import permit mode 10
if-match ip-prefix import
ip ip-prefix import index 10 permit IP mask
常用属性
- 公认必遵:
- origin,定义路径信息的来源,i为network>e为EGP学习>?为incomplete
- AS path,as_sequence,as_set,as_confed_sequence,as_confed_set
- next hop
- 公认任意:
- local pref,仅在IBGP邻居之间有效,不通告给其他AS,表示BGP优先级,用来判断最佳路由,值越大越优
- atomic aggregate
- 可选过渡:
- aggregator
- community,限定路由传播范围,标记
- 可选非过渡:
- med,仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何第三方AS