[学习笔记] - CCNA

CCNA

Cisco的3层分层模型

  • 核心层(Core Layer)
    • 它的唯一意图是尽可能快地交换数据流
    • forward traffic, the fastest it can
  • 分配层(Distribution Layer)
    • 提供路由、过滤和WAN接入。是实现网络策略的地方
    • apply distribution policies
  • 接入层(Access Layer)
    • 控制用户和工作组对互联网络资源的访问
    • apply network-access policies

路由器组件

  • CPU:执行操作系统的指令
  • 内存
    • 运行操作系统
    • 运行配置文件
    • IP路由表
    • ARP缓存
    • 数据包缓存区
  • 只读存储器ROM
    • 保存开机自检软件,存储路由器的启动引导程序
    • bootstrap指令
    • 基本的自检软件
    • 迷你版IOS
  • 非易失RAM
    • 存储启动配置,包括IP地址,路由协议,主机名
  • 闪存FLASH:相当于硬盘
    • 运行操作系统
  • interfaces
    • 拥有多种物理接口用于连接网络接口类型

路由器启动

  • 检测路由器硬件
    • 硬件自检
    • 执行bootstrap
      • 0x2100:监视ROM启动
      • 0x2102:正常启动
      • 0x2142:恢复密码
  • 定位加载IOS文件
  • 定位加载启动配置文件或进入配置模式

Cisco Internetwork Operating System(IOS)

端口

  • 串行端口
    • Telnet访问
  • FastEthernet端口
    • Telnet访问
  • 辅助端口
    • 调制解调器访问
  • 控制台端口
    • 终端访问

Cisco的2层分层模型

Two Tier design

  • Access Layer
  • Collapsed Core layer
    • Distribution Layer
    • Core Layer
    • applying distribution policies

2-Tire Spine-Leaf

  • L3 Spine
  • L2 Leaf

  • Resiliency: Each leaf switch connects to every spine switch, spanning-tree is not needed and due to TRILL, SPB or SDN protocols, every uplink can be used concurrently.
  • Latency: There is a maximum of 2 hops for any East-West packet flows so ultra-low-latency is standard.
  • Performance: True active-active uplinks enable traffic to flow over the least congested high-speed links available.
  • Scalability: You are able to increase leaf switch quantity to desired port capacity and add spine switches as needed for uplinks.
  • Adaptability: Multiple spine-leaf networks across a multicloud ecosystem can be connected and managed from a single pane of glass. Also, this topology has benefits in other areas of the enterprise network (for example, industrial cell architecture or corporate LAN).

CLI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 进入特权模式
enable
# 全局配置模式
configure terminal
# 进入接口配置
interface f0/0
# 配置IP
ip address 192.168.1.1 255.255.255.0
# 打开接口
no shutdown
# 返回上一级
exit
# 回到特权模式
end
# 查看所有配置
show running-config
# 显⽰所有接⼝的简要信息
show ip interface brief
# 设置主机名
hostname R1
# 设置密码
enable password 123
# 开始域名查询
ip domain lookup
# 关闭域名查询
no ip domain lookup
# 进入控制台
line console 0
# 防止弹信息阻断命令
logging synchronous
# 防止回话超时
no exec-timeout
# 关闭ARP代理
no ip proxy-arp
  • 普通用户模式:R1>
  • 特权用户模式:R1#
  • 全局配置模式:R1(config)#
  • 接口配置模式:R1(config-if)#
  • 路由协议配置模式:R1(config-router)#

  • 执行exit命令退回到全局配置模式
  • 执行end命令退回到上一层

Ping

  • !: Each exclamation point indicates receipt of a reply.
  • .: Each period indicates the network server timed out while waiting for a reply.
  • U: A destination unreachable error PDU was received.
  • Q: Source quench (destination too busy).
  • M: Could not fragment.
  • ?: Unknown packet type.
  • &: Packet lifetime exceeded.

Traceroute

  • ·: The probe timed out
  • A: Administratively prohibited (example, access-list)
  • Q: Source quench (destination too busy)
  • I: User interrupted tes
  • U: Port unreachable
  • H: Host unreachable
  • N: Network unreachable
  • P: Protocol Unreachable
  • T: Timeout
  • ?: Unknown packet type

Show

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 显示F0/0口的硬件地址、逻辑地址、封装方式及发生冲突的统计。
Router#show interface fastethernet0/0
# 提供有关路由器接口的第3层配置的信息包含了接口状态、IP地址、子网掩码、是否设置访问列表等。
Router#show ip interface
# 提供了包含有逻辑地址、状态等的路由器接口快速汇总
Router#show ip interface brief
# 特别用于要即时查看每个接口上第1、2层的状态及使用的IP地址的情况下
Router#show protocols
# 可以显示在路由器上已配置的路由选择协议
Router#show ip protocols
# 显示物理接口serial0/0自身特性的信息。
Router#show controllers serial0/0
# 查看arp表
Router#show ip arp
Router#show ip rip

设置IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 进入特权模式
enable
# 全局配置模式
configure terminal
# 进入接口配置
interface f0/0
# 配置IP
ip address 192.168.1.1 255.255.255.0
# 打开接口
no shutdown
# 返回上一级
exit
# 检查
show ip interface brief

DNS

1
2
3
4
5
R1#conf t
# 开启DNS
R1(config)#ip domain-lookup
# 设置DNS服务器IP
R1(config)#ip name-server 8.8.8.8

Controllers

Cisco DNA Center

  • Design
  • Policy
  • Provision
  • Assurance
  • Platform

您的可编程网络基础设施向 Cisco DNA Center 设备发送数据,然后该设备使用 Cisco DNA 软件在您的网络设备上激活相应特性和功能。您可从 Cisco DNA Center 控制面板管理每一台设备。

1
2
# 命令显示特定于控制器硬件的控制器状态。它显示的信息通常用于诊断任务。
show controllers e1
  • Intent-based APIs leverage the controller and enable business and IT applications to deliver intent to the network and to reap network analytics and insights for IT and business innovation.
  • Process adapters, built on integration APIs, allow integration with other IT and network systems to streamline IT operations and processes.
  • Domain adapters, built on integration APIs, allow integration with other infrastructure domains such as data center, WAN, and security to deliver a consistent intent-based infrastructure across the entire IT environment.
  • SDKs allow management to be extended to third-party vendor’s network devices to offer support for diverse environments.

MAC地址表

1
2
3
4
5
show mac-address-table
switchport port-security
# 动态学习并将⾄多两个 MAC 地址设为安全 MAC 地址
switchport port-security maximum 2
show port-security address

VLAN

交换机分割冲突域,路由器分配广播域
广播,组播,无MAC地址都会导致泛洪

  • VLAN极大的改善了网络安全
  • VLAN增加了广播域的数量,缩小了广播域的规模
  • 可通过路由器控制VLAN之间的通信
  • VLAN本质就是一个广播域
  • VLAN: 0-4095
    • 0, 4095不能使用
    • 1002-1005不能删除
    • 1-1001: 标准VLAN
    • 1006-4094: 扩展VLAN,VTP透明模式可用

  • 静态VLAN
  • 动态VLAN

  • ISL: 封装,head+FCS
    • 思科私有
    • 支持PVST
    • 不修改原始包,效率较高
  • 802.1Q: tag,head+出现计算FCS
    • 公有协议
    • 插入TAG
    • Native VLAN
1
2
3
 SW1
/ \
PC1 PC2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#PC1 192.168.1.10/24
#PC2 192.168.1.20/24
# -----
Switch>en
# 查看vlan表
Switch#show vlan brief
Switch#vlan database
Switch(vlan)#vlan 10 name it
# 生效
Switch(vlan)#exit
Switch#conf t
Switch(config)#vlan 20
Switch(config-vlan)#name hr
Switch(config-vlan)#exit
Switch(config)#show vlan brief
Switch#conf t
Switch(config)#int f0/1
# 设置为接入接口
Switch(config-if)#switchport mode access
# 划分vlan
Switch(config-if)#switchport access vlan 10
Switch(config-if)#end
Switch#conf t
Switch(config)#int f0/2
# 设置为接入接口
Switch(config-if)#switchport mode access
# 划分vlan
Switch(config-if)#switchport access vlan 20
Switch(config-if)#end
1
2
3
 SW1 ---- SW2
/ \ / \
PC1 PC2 PC3 PC4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#PC1 192.168.1.10/24
#PC2 192.168.2.10/24
#PC3 192.168.1.20/24
#PC4 192.168.2.20/24
# -----
Switch2>en
Switch2#vlan database
Switch2(vlan)#vlan 10 name it
Switch2(vlan)#vlan 20 name hr
Switch2(vlan)#exit
Switch2#conf t
Switch2(config)#int f0/1
Switch2(config-if)#sw mo acc
Switch2(config-if)#sw acc vlan 10
Switch2(config-if)#int f0/2
Switch2(config-if)#sw mo acc
Switch2(config-if)#sw acc vlan 20
Switch2(config-if)#end
# -----
Switch1#conf t
Switch1(config)#int f0/3
Switch1(config-if)#sw mo acc
Switch1(config-if)#sw acc vlan 10
Switch2#conf t
Switch2(config)#int f0/3
Switch2(config-if)#sw mo acc
Switch2(config-if)#sw acc vlan 10
PC1>ping 192.168.1.20 #OK
PC2>ping 192.168.2.20 #NO
# -----
Switch1#conf t
Switch1(config)#int f0/3
Switch1(config-if)#switchport mode trunk
Switch2#conf t
Switch2(config)#int f0/3
Switch2(config-if)#switchport mode trunk
PC1>ping 192.168.1.20 #OK
PC2>ping 192.168.2.20 #OK
# -----
Switch1#show interface trunk
# -----
Switch1#conf t
Switch1(config)#int f0/3
Switch1(config-if)#switchport trunk native vlan <vlan#>
# 中继链路上的两个接⼝原⽣ VLAN 必须匹配
# 将端⼝放⼊ VLAN 1 被认为是⼀种安全漏洞(a security vulnerability), 允许⿊客取得⽹络资源的访问。
# 为减轻此问题,避免任何主机放⼊ VLAN 1 是⼀种明智可取的做法。同时也可将所有中继接⼝上的原⽣VLAN 修改为某个未使⽤的 VLAN。
1
2
3
4
5
    R1
/
SW1 ---- SW2
/ \ / \
PC1 PC2 PC3 PC4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
R1>en
R1#conf t
R1(config)#int f0/0
R1(config-if)#no sh
R1(config-if)#exit
# 建立子接口
R1(config)#int f0/0.1
R1(config-subif)#ip add 192.168.1.1 255.255.255.0 #NO
R1(config-subif)#encapsulation dot1q 10
R1(config-subif)#ip add 192.168.1.1 255.255.255.0
# 建立子接口
R1(config-subif)#int f0/0.2
R1(config-subif)#encapsulation dot1q 20
R1(config-subif)#ip add 192.168.2.1 255.255.255.0
# -----
#配置PC网关
# -----
# 给SW1-R1的包打上标记
Switch1>en
Switch1#conf t
Switch1(config)#int f0/4
Switch1(config-if)#sw mo trunk
Switch1(config-if)#end

交换机配置trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
interface FastEthernet 0/1
switchport
# 设置模式
switchport mode trunk
# 设置中继封装协议
switchport trunk encapsulation dot1q
# 中继链路的端⼝上关闭 DISL 及 DTP 数据包发送
switchport nonegotiate
exit

# 查看
show interface trunk
show interfaces [name] switchport

DTP

Dynamic Trunking Protocol,动态中继协议

  • mode
    • trunk: 强制trunk
    • Desirable: 主动trunk
    • Auto: 被动trunk
    • Access

端口安全

1
2
3
4
5
6
7
8
9
10
11
12
Switch#config terminal
Switch(config)#interface f0/1
# 开启端口MAC地址自动粘连
Switch(config-if)#switchport port-security mac-address sticky
# 端口允许的最大MAC地址数为2
Switch(config-if)#switchport port-security maximum 2
# 违规则关闭端口 err-disable
Switch(config-if)#switchport port-security violation shutdown
# security violation counter不增加
Switch(config-if)#switchport port-security violation protect
# security violation counter增加
Switch(config-if)#switchport port-security violation restrict

DAI

部署DAI前,内网如果出现ARP欺骗行为,例如PC发送非法的ARP报文,对于交换机而言,是无法检测并作出防御动作的。

部署DAI后,我们可以定义交换机接口的信任状态:

  • trusted
  • untruste

对于信任端口,将不对收到的ARP报文做检测,直接放行。而对于untrusted接口,ARP报文在收到后回进行检查,只有合法的ARP报文才会被放行,如果出现非法的ARP报文,则会被log,同时丢弃。

Dynamic ARP inspection is an ingress security feature; it does not perform any egress checking.

所以我们常会将连接终端PC的接口配置为DAI untrust接口,而交换机之间的接口配置为trust接口

POE

PoE monitoring and policing compares the power consumption on ports with the administrative maximum value (either a configured maximum value or the port’s default value). If the power consumption on a monitored port exceeds the administrative maximum value, the following actions occur:

  • A syslog message is issued.
  • The monitored port is shut down and error-disabled.
  • The allocated power is freed.

multi-VLAN

一个口配置多个VLAN

The multi-VLAN port is a special feature which allows switch for configuring a single port for 2 or more vlans. This feature allows users from different VLANs to access a server or router without implementing InterVLAN routing capability. A multi-VLAN port performs normal switching functions in all its assigned VLANs.

  • 不能在交换机上配置trunk
  • 不能用于连接交换机
  • 只能用于连接路由或服务器
  • VTP透明

It is a port which is configured for both Data vlan and voice vlan.

  • PBX(Private Branch eXchange)
  • VoIP Gateway
  • Router
1
Phone - PBX - VoIP Gateway - Router - Internet

VTP

  • 思科私有
  • 同步交换机的VLAN信息
  • VTP域
  • VTP通告
  • VTP模式
  • VTP服务器
    • VLAN创建
    • VLAN删除
    • VLAN重命名
    • 产生通告
  • VTP客户端
    • 只发送通告,只在工作时保存
  • VTP信息
  • VTP透明
    • 不产生通告

VTP只能在主干断开发送要宣告的信息,只要有多台交换机和多个VLAN,就应该使用VTP

  • VTP协议通过组播地址01-00-0C-CC-CC-CC在Trunk链路上发送VTP通过
  • VTP Server和Client通过最高的修订号来同步数据库
  • VTP协议每隔5分钟发送一次VTP通过或者有变化时发送

1
2
3
   SW1
/ \
SW2 SW3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Switch1>en
Switch1#conf t
Switch1(config)#int ran f0/1-2
Switch1(config-if-range)#switchport mode trunk
# -----
Switch2>en
Switch2#conf t
Switch2(config)#int ran f0/1
Switch2(config-if)#switchport mode trunk
# -----
Switch3>en
Switch3#conf t
Switch3(config)#int ran f0/1
Switch3(config-if)#switchport mode trunk
# -----
# 分配VTP模式
Switch1#show vtp status
Switch1#conf t
Switch1(config)#vtp mode server
Switch2(config)#vtp mode client
Switch3(config)#vtp mode transparent
# -----
Switch1(config)#vlan 10
Switch1(config-vlan)#end
# 所有没有域名的设备,立刻同步全部信息+域名
Switch1(config)#vtp domain ccna
# -----
# 安全的传输 VTP 更新数据,可以为其加上⼀个⼝令,但要求 VTP 域中的每台交换机的⼝令都要匹配
Switch1(config)#vtp password ccna
Switch2(config)#vtp password ccna

VTP pruning

防止没有用的广播,在端口上抛弃VLAN的包

1
SW1(config)#vtp pruning

PVLAN

私有VLAN,将一个VLAN继续划分为几个VLAN,使用同一网段

  • Primary VLAN
  • Secondary VLAN
    • Community VLAN
    • Isolated VLAN

  • 端口类型
    • Isolated:隔离接口
    • Promiscuous:混杂接口
    • Community:团体接口

SVI

交换式虚拟接口,相当于路由器的接口

  • 二层接口
    • access
    • trunk
  • 三层接口
    • 路由接口:用于连接路由器
    • SVI接口:用于VLAN通信

管理VLAN

  • 交换机的管理VLAN用于交换机本身的设备管理
  • 二层交换机只能有一个VLAN接口可以拥有IP地址
    • 有了这个VLAN接口,PC可以远程连接进行配置

在管理VLAN给交换机配置IP,然后进行远程访问

1
2
3
4
int vlan 255
ip add 192.168.255.1 255.255.255.0
# 需要有默认网关来返回数据包
ip default-gateway 192.168.255.254

STP

  • 每个广播域选择一个根桥
  • 每个非根桥上选择一个根端口
  • 每个段选择一个指定端口,段是一根线
  • 阻塞距离根桥最远非指定端口

指定端口:具有最低跟路径的接口要考虑的因素

  1. 最低根桥ID (4096倍数)
  2. 到根桥的最低路径成本
  3. 最低的发送者网桥ID
  4. 最低的发送者端口ID

  • BPDU(Bridge Protocol Data Unit)
    • 协议
    • 版本
    • Type
    • 标志
    • 根桥ID
    • 路径开销
    • 发送网桥ID
    • 端口ID
      • 端口优先级
      • 端口号
    • 消息寿命
    • 最大寿命
    • Hello时间
    • 转发延迟

  • 配置BPDU

    • 优先级
    • 主板MAC地址
  • TCN

    • 检测到故障,从根端口发送TCN BPDU,返回TCN ACK,
    • 先发送,再回复,在一级一级向上转发给根
    • 根桥发送TC,把mac地址表老化15s,清空mac地址
    • 重新泛洪,学习mac地址
  • 非指定只能监听BPDU

    • 和阻塞交换机直连的端口断开,会立刻开启阻塞端口,block->listen->learn->forward(30s)。
    • 如果非直连端口断开,等1个BPDU(20s),于是总计需要20+30=50s

  • 端口状态
    • block
      • 非指定端口
      • 持续20s
    • listen
      • 监听,发送BPDU,不学习,转发MAC,
      • 持续15s
      • 确认端口角色
    • learn
      • 监听,发送BPDU,学习mac地址,防止泛洪
      • 不能转发数据
      • 维持15s
    • forward
      • 可以转发数据
    • disable

PVST+(每个VLAN一个STP)

每个VLAN的根桥需要最接近配置的VLAN

  • PVST+
  • MSTP
  • PVRST+

如果每个VLAN一个MAC表的话,太多了,需要MAC地址缩减方案


1
2
3
   Sw1
/ \
SW2---SW3
1
2
3
4
5
6
7
8
9
Switch1#conf t
Switch1(config)#spanning-tree mode pvst
Switch1#show spanning-tree vlan 1
# 指定根桥
Switch1#conf t
Switch1(config)#spanning-tree vlan 1 root primary
Switch1(config)#end
Switch1#conf t
Switch1(config)#spanning-tree vlan 1 priority 0

生成树快速端口(PortFast)

如果你有一台服务器或其它设备连接到交换机上,而且可以保证在禁用STP时不会产生交换环路,那么就可以在这些端口上使用快速端口。

使用快速端口意味着,当STP正在收敛时,端口不会花费通常的50秒才进入转发状态。在端口配置模式下:

1
Switch(config-if)#spanning-tree portfast

快速生成树协议(RSTP)

802.1W Cisco创建PortFast、UplinkFast、BackboneFast来“修补”IEEE802.1d标准中的漏洞和缺陷。这些特性的不足之处仅在于,它们是Cisoc专用的且需要进行额外的配置。但新的802.1w标准(RSTP)将所有这些“问题”都放在一个封包中解决了。重要的是,必须确信网络中所有的交换机都在正确地运行802.1w。当它与老的网桥交互作用时,802.1w内在的快速收敛能力将失效。

RSTP是从STP发展过来的,其实现基本思想一致,但它更进一步的处理了网络临时失去连通性的问题。Rstp规定在某些情况下,处于Blocking状态的端口不必经历2倍的Forward Delay时延而可以直接进入转发状态。如网络边缘端口(即直接与终端相连的端口),可以直接进入转发状态,不需要任何时延。或者是网桥旧的根端口已经进入Blocking状态,并且新的根端口所连接的对端网桥的指定端口仍处于Forwarding状态,那么新的根端口可以立即进入Forwarding状态。即使是非边缘的指定端口,也可以通过与相连的网桥进行一次握手,等待对端网桥的赞同报文而快速进入Forwarding状态。当然,这有可能导致进一步的握手,但握手次数会受到网络直径的限制。

在RSTP中只有三种端口状态

  • Discarding
  • Learning
  • Forwarding

802.1D中的禁止端口,监听端口,阻塞端口在802.1W中统一合并为禁止端口。

端口有5种角色

  • root
  • designated
  • alternate
  • backup
  • disabled

BPDUGuard

  • 该接口在收到BPDU报文后,会立刻切换到err-disable状态
  • 常搭配portfast特性在接口上一起使用,用于连接主机
  • 可在接口模式上激活,也可在全局模式上配置,两者有所不同

防止别人接上一个交换机,改变网络拓扑结构

BPDUFilter

  • 全局配置
    • 启用了portfast的接口将激活此特性
    • 在启动瞬间发送BPDU,之后不发送BPDU
  • 接口配置
    • 不发送,不接受BPDU

Etherchannel

链路聚合

  • Cisco:PAgP
  • 公有:LACP

  • 负载均衡
    • 源IP
    • 目的IP
    • 源端口
    • 目的端口
    • 协议号
  • 冗余
  • 需要偶数使用
  • 需要相同speed和duplex
  • 需要相同接口模式
  • trunk的情况下,native vlan和allowed vlan需要相同
  • access的情况下,vlan需要相同

PAgP

  • On
  • Desirable
  • Auto
  • Off
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建逻辑聚合端口通道1 
R1(config)#interface port-channel 1
# 设置端口
R1(config-if)#int range f0/1-2
R1(config-if-range)#switchport
R1(config-if-range)#switchport mode trunk
R1(config-if-range)#switchport trunk encapsulation dot1q
# 1是ID
R1(config-if-range)#channel-protocol pagp/lacp
R1(config-if-range)#channel-group 1 mode desirable
# 查看
R1(config)#do show etherchannel summary
# 负载均衡
R1(config)#port-channel load-balance ?

LACP

  • On
  • Active
  • Passive
  • Off

终端设置密码

  • 控制台口令:限制通过控制台连接
  • 使能口令:限制特权模式
  • 使能加密口令:口令会被加密
  • VTY口令:限制Telnet连接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 哪个端口
Router(config)#line console 0
# 设置密码
Router(config)#password ccna
# 生效
Router(config)#login
# ---
# secret会覆盖password设置
Router(config)# enable secret Pa$$1
Router(config)# enable password Pa$$2
# ---
# 用户设置
Router(config)#username huhu <privilege 特权等级> password ccna
Router(config)#line console 0
Router(config-line)#login local
# 超时设置 min sec
Router(config)#exec-timeout 0 0
Router(config)#logging synchronou
Router(config)#login

# -----
# 全局密码加密
Router(config)#service password-encryption
# MD5
Router(config)#enable secret 5
# PBKDF2
Router(config)#enable secret 8
# SCRYPT
Router(config)#enable secret 9

开启远程控制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Router#hostname R1
Router#conf t
# 你可以⻅到 0 到 4 端⼝、inclusive (包含)或 0 到 15 端⼝。
# 要得知你有多少个可⽤的端⼝的⼀种⽅法是在编号 0 后⾯输⼊⼀个问号, 或者使⽤ show line 命令
Router(config)#line vty 0 15
Router(config)#password ccna
Router(config)#login

# 以仅允许 SSH 连接进⼊交换机
# transport input <ssh|telnet|all|none>
Router(config)#transport input ssh
# 指定ssh版本
Router(config)#ip ssh version <1|2>

  • Authentication: 验证身份
  • Authorization: 验证权限
  • Accounting: 监视行为

ACL

用于数据过滤和匹配感兴趣流

类型

  • 标准访问控制列表
    • 只能根据源地址过过滤
    • 针对整个协议采取相关地址
  • 扩展访问控制列表
    • 能根据源,目的地址,端口号等等进行过滤
    • 能允许或拒绝特定的协议

表现形式

  • 数字ACL
    • 标准ACL:1~99, 1300~1999
    • 扩展ACL:100~199, 2000~2699
  • 命名ACL

  • ACL准寻隐式拒绝(出站方向)
  • ACL从上到下依次匹配
  • ACL不过滤路由器自身流量
  • ACL不能在运行时编辑
  • 无法编辑修改或添加数字ACL
  • 数字ACL只能删除整个列表
  • ACL可重用
  • 任何ACL都是在全局模式下定义

  • 基于每种协议设置一个ACL
  • 基于每个方向设置一个ACL
    • 入站ACL
    • 出站ACL
  • 基于每个接口设置一个ACL

在某个接口的某个特定方向,某个协议,只能应用一个ACL


配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 配置网段
access-list <number#> <device> <mask>
# 扩展ACL
access list <number#> permit/deny [service/protocol] [source network/IP] [destination network/IP] [port#]
# 标准ACL
access-list 1 permit 172.20.1.0 0.0.31.255
access-list 1 permit host 172.16.1.1

# 阻止网段10.1.0.0 0.0.255.255的tcp的telnet的连接访问172.30.1.1
access-list 101 deny tcp 10.1.0.0 0.0.255.255 host 172.30.1.1 eq telnet
# 运行网段10.1.0.0 0.0.255.255的tcp的ftp的连接访问172.30.1.1
access-list 100 permit tcp 10.1.0.0 0.0.255.255 host 172.30.1.1 eq ftp
# 允许全部icmp协议
access-list 100 permit icmp any any

access-list 100 permit tcp host 172.16.1.1 host 172.20.1.1 eq smtp
access-list 100 permit tcp 10.1.0.0 0.0.255.255 host 172.30.1.1 eq ftp
access-list 100 permit tcp host 192.168.1.1 host 172.40.1.1 eq www

在接口上已创建并应用的ACL。

1
2
3
4
5
6
7
8
Router>en
Router#conf t
Router(config)#access-list 1 permit 172.16.1.1
Router(config)#access-list 1 permit 172.16.2.1
Router(config)#interface FastEthernet0/0
Router(config-if)#ip access-group 1 in
# 查看ACL
Router#show ip access lists

现在其从接口上卸下。

1
2
3
Router(config)#int FastEthernet0/0
Router(config-if)#no ip access-group 1 in
Router(config-if)#^Z

为让ACLs发挥效果,就必须将ACL应用到路由器的某个接口或端口上
在配置阶段是没有方向的

命名ACL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Router(config)#ip access-list <standard|extended> name
Router(config)#ip access-list extended BlockWEB

# 显示设备上所创建的所有ACLs
#show ip access-list
# 显示某条特定的命名ACL
#show ip access-list <acl_name>
# 单个接口上的ACL统计信息
#show ip access-list interface FastEthernet0/1 in

# 添加一条
Router(config-std-nacl)#15 permit 172.20.1.1 any eq 23
# 删除一条
Router(config-std-nacl)#no 15
# 重新编号(从100开始每个增加20)
Router(config-std-nacl)#ip access-list resequence BlockWEB 100 20
# 应用
Router(config)#int FastEthernet0/0
Router(config-if)#ip access-group 101 in
Router(config-if)#ip access-group BlockWEB in

1
2
3
4
5
  R1
|
SW1
/ | \
R2 R3 R4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# 分配IP
R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no sh
R1(config)#int lo0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
R1(config-if)#no sh
# -----
R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 192.168.1.10 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#no ip routing
R2(config)#ip default-gateway 192.168.1.1
# -----
R3#conf t
R3(config)#int f0/0
R3(config-if)#ip add 192.168.1.20 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#no ip routing
R3(config)#ip default-gateway 192.168.1.1
# -----
R4#conf t
R4(config)#int f0/0
R4(config-if)#ip add 192.168.1.30 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#no ip routing
R4(config)#ip default-gateway 192.168.1.1
# -----
R2#ping 192.168.1.1 #OK
R2#ping 1.1.1.1 #OK
# -----
# 允许192.168.1.10 ping 1.1.1.1
R1(config)#access-list 100 permit icmp 192.168.1.10 0.0.0.0 1.1.1.1 echo
# 允许192.168.1.10 ping 1.1.1.1
R1(config)#access-list 100 permit icmp host 192.168.1.10 1.1.1.1 echo
R1(config)#access-list 100 deny icmp any host 1.1.1.1 echo
R1(config)#int f0/0
R1(config)#ip access-group 100 in
R2#ping 1.1.1.1 #OK
R3#ping 1.1.1.1 #NO UUUUU
R4#ping 1.1.1.1 #NO UUUUU
R2#ping 192.168.1.1 #NO UUUUU
# -----
R1#show access-lists
R1(config)#int f0/0
R1(config)#access-list 100 permit ip any any
R2#ping 192.168.1.1 #OK
# -----
R1(config)#do show access-list
# 命名ACL
R1(config)#ip access-list extended 100
R1(config-ext-nacl)#do show ip access-list
R1(config-ext-nacl)#no 20
R1(config-ext-nacl)#do show ip access-list
R1(config-ext-nacl)#20 deny icmp any host 1.1.1.1 echo
R1(config-ext-nacl)#do show ip access-list
# -----
R1(config-ext-nacl)#exit
R1(config)#no access-list 100
R1(config)#line vty 0 4
R1(config-line)#password
R1(config-line)#login
R1(config-line)#exit
R2#telnet 1.1.1.1
R1>enable
R1(config)#enable password ccna
R1>enable
R1#exit
R1(config)#ip access-list extended 100
R1(config-ext-nacl)#5 per tcp host 192.168.1.10 host 1.1.1.1 eq 23
R1(config-ext-nacl)#10 deny tcp any host 1.1.1.1 eq 23
R1(config-ext-nacl)#15 per ip any any
R1(config-ext-nacl)#do show ip access-list

路由表

1
Router#show ip route
路由源 默认AD(administrative distance)
连接接口 0
静态路由 1
EIGRP 90(Cisco的私有协议,只能用于思科设备)
IGRP 100(新的Cisco IOS已经不再支持它,它被EIGRP取代)
OSPF 110(开放的标准,可在任意品牌的路由器上使用)
RIP 120(开放的标准)
External EIGRP 170
未知 255(这个路由将决不会被使用)

注意这只是默认的AD

  • 路由分类
    • Static routing
      • floating static route (浮动静态路由),一般更高的AD用于备份
    • Default Routing
      • 0.0.0.0/0
    • Dynamic Routing
    • Network Route
      • A route (path) to a specific Network ID in the internetwork.
    • Host Route
      • A route to a specific internetwork address /32

路由表字母

字母 含义
C 直连路由
S 静态配置的路由
R 从RIP协议中学到的路由
O 从OSPF协议学到
i 从IS-IS协议学到的路由
B 从BGP协议学到的路由
E 从外部网关协议(EGP)学到的路由
I 从内部网关协议(IGRP)中学到的路由
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Codes: 
C - connected
S - static
I - IGRP
R - RIP
M - mobile
B - BGP
D - EIGRP
EX - EIGRP external
O - OSPF
IA - OSPF inter area
N1 - OSPF NSSA external type 1
N2 - OSPF NSSA external type 2
E1 - OSPF external type 1
E2 - OSPF external type 2
i - IS-IS
su - IS-IS summary
L1 - IS-IS level-1
L2 - IS-IS level-2
ia - IS-IS inter area
* - candidate default
U - per-user static route,
o - ODR
P - periodic downloaded static route

静态路由

人为的指定路由

1
2
3
4
5
6
RouterA(config)#ip route network [prefix mask] {address | interface} [distance]
Router(config)#ip route 192.168.1.0 255.255.255.0 172.16.1.2
# 目的为192.168.1.0网络的流量,从串行接口发出
Router(config)#ip route 192.168.1.0 255.255.255.0 s0/0
# 而下面的命令则是告诉路由器将所有网络的所有流量,都从串行接口发出
Router(config)#ip route 0.0.0.0 0.0.0.0 s0/0
  • 接口是自己的接口
  • 下一跳是对方IP

RIP

  • 距离矢量路由
    • 15跳
  • 每30s收敛一次
  • 无效计时器:180等待
  • 抑制计时器:180-240(设置16)
  • 刷新计时器:240(删除)
  • V1广播,V2组播
    • 组播地址:224.0.0.9
    • IPv6:FF02::9
  • AD:120
  • 防环
    • 水平分割:不会发回去
    • 路由毒化:会发回去,但会设置为16
    • 触发更新:发生更新,立刻发送
  • 每个更新包最大25
  • 不支持认证
  • 不支持VLSM
  • 不支持不连续子网
1
R1-R2-R3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 分配IP
R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 12.1.1.1 255.255.255.0
R1(config-if)#no sh
# 环回接口
R1(config)#interface loopback 0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
# 查看
#show ip route
# -----
R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 12.1.1.2 255.255.255.0
R2(config-if)#no sh
R2(config)#int f1/0
R2(config-if)#ip add 23.1.1.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int lo0
R2(config-if)#ip add 2.2.2.2 255.255.255.255
# -----
R3#conf t
R3(config)#int f0/0
R3(config-if)#ip add 23.1.1.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#int lo0
R3(config-if)#ip add 3.3.3.3 255.255.255.255
# -----
# 启用RIP
R1#conf t
R1(config)#route rip
# 配置rip版本
R1(config-router)#version 2
# 关闭IP自动汇总
R1(config-router)#no auto-summary
# 宣告网络(宣告进组播)
R1(config-router)#net 1.1.1.1
R1(config-router)#net 12.1.1.0
# -----
R2#conf t
R2(config)#route rip
# 配置rip版本
R2(config-router)#ver 2
# 关闭IP自动汇总
R2(config-router)#no au
# 宣告网络(宣告进组播)
R2(config-router)#net 2.2.2.2
R2(config-router)#net 23.1.1.0
R2(config-router)#net 12.1.1.0
# -----
R3#conf t
R3(config)#route rip
# 配置rip版本
R3(config-router)#ver 2
# 关闭IP自动汇总
R3(config-router)#no au
# 宣告网络(宣告进组播)
R3(config-router)#net 3.3.3.3
R3(config-router)#net 23.1.1.0

# -----
# 阻住某个接口传播RIP
R1(config-router)#passive-interface serial 0/0

OSPF

  • 链路状态协议
    • 把接口的详细信息发送
    • 接口敏感型协议
  • 使用hello包建立邻居
    • 10s利用组播发送一次
    • 组播:224.0.0.5
    • DR,BDR:224.0.0.6
      • 只有DR,BDR监听
    • IPv6:FF02::6
    • 封装与IP包,协议号89
  • AD:110
  • 支持等价负载均衡(最大16)

OSPF是接口敏感性协议


  • Cost
    • 10^8 / 出口带宽
    • 基于接口(逻辑接口)
    • ip ospf cost 100

  • 五种数据报文
    • Hello
      • 建立和维护OSPF邻居关系
      • 包含优先级
    • DBD(Database Description):链路状态数据库描述信息(描述LSDB中LSA头部列表)
    • LSR(Link-State Request):链路状态请求
    • LSU(Link-State Update):链路状态更新(包含多条LSA)
    • ACK(Link-State Acknowledgement):确认报文

LSA: 交互接口,邻居信息

LSA类型

类别 名称 描述
1 路由器LSA 区域内Router产生,描述了路由器所有接口,链路和cost值,只能在本区域泛红
2 网络LSA DR,BDR产生的,报文包括了其连接的所有Router的routerID,也包含自己的ID
3 网络汇总LSA ABR产生的,可以通知本区域内的路由器通往区域外的路由信息,默认路由也被通告,Link ID为目标网段的ID
4 ASBR汇总LSA ASBR所在区的ABR产生的,是一条主机LSA,指向ASBR路由器
5 自治系统外部汇总LSA ASBR产生的(区域外的),告诉本自治区的路由器通往外部自治区的路径
7 NSSA外部LSA 由ASBR产生,几乎和LSA5相同,但NSSA外部LSA通告仅仅在始发这个NSSA外部LSA通过的非纯末梢区域内部进行泛红

四种网络类型

  • 广播型多路访问
  • 点对点
  • 非广播型多路访问

  • 骨干区域
    • 中心区域
  • 标准区域
    • 和中心区域相连的区域
  • 末梢区域
    • 通过默认路由,可以去掉4,5类LSA
    • 不会有4,5类LSA
    • 下发默认路由
  • 完全末梢区域
    • 如果是完全叶子节点,其实3类也不需要,就又去掉3类
    • 不会有3,4,5类LSA
    • 下发默认路由
  • 非完全末梢区域(NSSA)
    • 末梢区域还链接了一个区域,一个叶子又长出一片叶子,阻挡一边LSA,还要允许叶子进行重发布
    • 7类LSA只能存活在NSSA,要出,会被7转5类LSA
  • 完全非完全末梢区域
    • 没有3,4,5类LSA,但有7类,通过下发默认路由进行通信
    • 就是可以注入,又只需要默认路由就行的区域

  • DR,BDR
    • DR:多路访问中为了减少邻居关系和LSA的泛洪
    • MA网络上的所有路由器均与DR,BDR建立邻居关系
  • DR选举
    • RouterID越大越好
    • 接口优先级数据越大越优先
      • 用于标识OSPF路由器的ID,全网唯一性,可手动配置,也可动态选举(有Loopback接口时,选择最高的Loopback IP地址,否则,选择最高活跃物理接口的IP地址)
    • 稳定压倒一切(非抢占)
    • 通过控制接口优先级是控制DR选举的好办法
    • DR的选举是基于接口的,如果说某个路由器DR是不准确的
  • 选举
    • 查看优先级,列出能选举的
    • 优先级越大,router-id大的成为BDR
    • 等待40s死亡时间,无人声明DR,则升级为DR

  • 8种状态
    • Down
      • 没开启
    • Attempt
      • 非广播网络才能出现
    • Init
      • 发Hello后,从Down进入Init
      • 通过组播发送,因为启用后就会监听
      • 收听到就建立邻居表
        • Router-ID
          • 传信息必须是邻居
        • 对一些数据进行协商
        • 保持邻居的Keeplive状态
    • 2-Way
      • 接受到hello包的路由,往组播发hello(里面有邻居表)
      • 源路由收到组播,发现自己id在信息里
      • 源路由发送单播hello给对方
      • 双方进入2-Way
      • 开始选举DR,BDR
    • Exstart
      • 发送DBD给DR和BDR交换信息
    • Exchange
      • 交换数据库后,进入Exchange
      • 发送LSR和LSU,单播DR和BDR
    • Loading
      • 持续进行组播更新,渗透网段
      • 同步数据库,计算路由表
    • Full
      • BD和BDR进入这个状态
            graph LR
            Down --> Attempt
Down --> Init
Init --> 2-Way
2-Way --> Exstart
Exstart --> Exchange
Exchange --> Loading
Exchange --> Full
Loading --> Full
          

  • Hello时间:10s
  • 死亡耗时:40s(10s * 4)
  • 邻居条件
    • 区域号
    • 认证类型
    • hello时间
    • 死亡时间

选择ID

  • RouterID
    • 本地回路最大的
  1. 手动设置 router-id x.x.x.x
  2. 回路地址
  3. 激活的非回路地址

  • 邻居表
    • 相邻两台运行OSPF
    • 两台路由器直接连接
    • 在同一自治系统
    • Hello/Dead时间一致
    • 区域ID一致
    • 认证密码一致
    • MTP值一致
    • 网络类型一致
    • 链路两端接口掩码一致
  • 链路状态数据库
  • 路由表

  • OSPF单区域
    • 收到的LSA通过太多了,OSPF路由器的负担很大
    • 内部动荡会引起全网路由器的完全SPF计算
    • 资源消耗过多,LSDB过大
    • 维护路由表过大
  • 多区域
    • 减少了LSA泛洪的范围,有效把拓扑变化控制在区域内
    • 多区域提高了网络的扩展性,有利于组件大型网络
    • 在区域边界可以做路由汇总,减少了路由表

  • 路由器分类
    • Internal Area Router
    • Backbone Router
    • Area Border Router (ABR)
    • AS Boundary Router

  • 点对点
  • 广播
  • 非广播

  • 区域划分
  • 路由汇总
    • 外部路由汇总,对5,7LSA
    • 区域间路由汇总,在ABR进行,只能对1,2LSA(本区域)
  • 主备线路
    • cost
  • 默认路由传递
    • default-information originate
  • 被动接口:passive-interface
    • 不会发送Hello包,且会忽略
  • Virtual-link
    • 没有和骨干区域直连,用虚拟连接来连接
  • 身份验证
    • Null
    • 简单密码身份
    • MD5身份验证
    • 接口认证
    • 区域认证

1
R1-R2-R3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 分配IP
R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 12.1.1.1 255.255.255.0
R1(config-if)#no sh
# 环回接口
R1(config)#interface loopback 0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
# 查看
#show ip route
# -----
R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 12.1.1.2 255.255.255.0
R2(config-if)#no sh
R2(config)#int f1/0
R2(config-if)#ip add 23.1.1.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int lo0
R2(config-if)#ip add 2.2.2.2 255.255.255.255
# -----
R3#conf t
R3(config)#int f0/0
R3(config-if)#ip add 23.1.1.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#int lo0
R3(config-if)#ip add 3.3.3.3 255.255.255.255
# -----
# 启用OSPF
R1(config-if)#router ospf 100
# 宣告网段
R1(config-router)#net 1.1.1.1 0.0.0.0 area 0
R1(config-router)#net 12.1.1.0 0.0.0.255 area 0
# -----
R2(config-if)#router ospf 100
# 宣告网段
R2(config-router)#net 2.2.2.2 0.0.0.0 area 0
R2(config-router)#net 12.1.1.0 0.0.0.255 area 0
R2(config-router)#net 23.1.1.0 0.0.0.255 area 0
# -----
R3(config-if)#router ospf 100
# 宣告网段
R3(config-router)#net 3.3.3.3 0.0.0.0 area 0
R3(config-router)#net 23.1.1.0 0.0.0.255 area 0
# -----
# 查看建立的邻居关系
R1#show ip ospf neighbor
# 查看路由表
R1#show ip route
# 查看接口带宽
R1#show int f0/0
# 发布默认路由
R1(config-router)#default-information originate
# 改变时间
R1(config-if)#ip ospf hello-interval 10
R1(config-if)#ip ospf dead-interval 10
# 改变area
R1(config-if)#ip ospf area 0
# 取消被动端口
R1(config-router)#no passive-interface f 0/0
# 改变id
R1(config-router)#router-id 1.1.1.1

EIGRP

  • 高级距离矢量协议
  • 快速收敛
  • 支持VLSM和不连续的子网
  • 局部更新,增量更新
  • 支持多种网络层协议
  • 灵活的网络设计
  • 组播和单播代替广播更新
  • 在网络中任何地方实现手动汇总
  • 100%无环路的无类路由
  • 支持WANs和LANs
  • 等价和非等价负载均衡

  • 邻居发现
    • 使用hello包发现邻居
  • 可靠传输协议(RTR)
    • 保证EIGRP的包到达所有的邻居
  • DUAL弥漫更新算法
  • 协议独立模块
  • AD
    • 内部:90
    • 外部:170
    • 汇总:5
  • 组播地址:
    • IPv4:224.0.0.10
    • IPv6:FF02::A
  • IGRP
    • 带宽
    • 延迟
    • 可靠性(一般默认)
    • 负载(一般默认)
    • MTU(一般默认)

  • 邻居表
  • 拓扑表
    • 保存所有路径
    • 保存当前总AD和后继路由器之前的距离
    • 都为可行路径,只要之后的距离小于当前的最优后继路由器的距离,否则会有环路
  • 路由表

  • 后继路由器:Successor(サクセサ):实际下一跳
  • 可行距离:FD(Feasible distance):真正保留的值
  • 可行后继路由器:FS(Feasible Successor) (フィージブルサクセサ):备用的下一跳
  • 报告距离:Reported Distance(RD/AD)
  • 可行条件:FC(Feasibility Condition):满足条件为可行后继路由器
    • AD值小于FD值,防止路由环路

  • 自动汇总
    • 自动汇总只会发生在主类网络的边界
    • 自动汇总会默认将网络汇总到主类网络
    • 自动汇总只能汇总自己直连的网段
    • 汇总的null黑洞路由来防止环路

  • 数据包
    • Hello:建立邻居关系
      • 发送Hello,恢复hello+ack
      • 224.0.0.10,无需确认Hello包
    • Update:发送路由更新信息
      • 以单播的形式发送,如果多台需要更新,则以组播
      • 需要确认
    • Query:向邻居发送的请求查询信息
      • 当某条路由丢失,向邻居查询关于路由信息,通常靠组播,有时也单播
    • Reply:用来响应Query信息
    • ·响应查询分组,单播
    • ACK:确认一个可靠的分支

  • Hello Time:5s
  • 死亡事件(Hold Time):15s
  • 平滑回程(SRTT):发出数据包后对方给我确认的时间,用于确定重传间隔RTO
  • 重传间隔(RTO)
  • active-time:等待邻居恢复消息

  • AS必须一样
  • K值必须匹配
  • 认证相同

  • 负载均衡
    • 等价负载均衡FD值都相等
    • 非等价负载均衡
      • 只有可行路径才被用于负载均衡
      • 设置multiplier值设置
        • FD <= FD_min * multiplier
        • AD < FD_min

  • 身份认证
    • MD5

  • 大型EIGRP的可扩展性
    • 问题
      • 路由表很大
      • 大量的邻居,巨大的拓扑表
      • 交换大量的路由更新,发送大量的查询和应答

1
2
3
R1-R2-R4
\ / 串行接口
R3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 分配IP
R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 12.1.1.1 255.255.255.0
R1(config-if)#no sh
# 串行接口
R1(config-if)#int s1/0
R1(config-if)#ip add 13.1.1.1 255.255.255.0
R1(config-if)#no sh
# 查看
#show ip route
# -----
R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 12.1.1.2 255.255.255.0
R2(config-if)#no sh
R2(config)#int f1/0
R2(config-if)#ip add 24.1.1.2 255.255.255.0
R2(config-if)#no sh
# -----
R3#conf t
R3(config)#int s0/0
R3(config-if)#ip add 13.1.1.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#int s0/1
R3(config-if)#ip add 34.1.1.3 255.255.255.0
R3(config-if)#no sh
# -----
R4#conf t
R4(config)#int f0/0
R4(config-if)#ip add 24.1.1.4 255.255.255.0
R4(config-if)#no sh
# 串行接口
R4(config-if)#int s1/0
R4(config-if)#ip add 34.1.1.4 255.255.255.0
R4(config-if)#no sh
R4(config-if)#int lo0
R4(config-if)#ip add 4.4.4.4 255.255.255.255
# -----
# 启用EIGRP协议
R1(config)#router eigrp 100
R1(config-router)#no auto-summary
R1(config-router)#net 12.1.1.0 0.0.0.255
R1(config-router)#net 13.1.1.0 0.0.0.255
# -----
R2(config)#router eigrp 100
R2(config-router)#no auto-summary
R2(config-router)#net 12.1.1.0 0.0.0.255
R2(config-router)#net 24.1.1.0 0.0.0.255
# -----
R3(config)#router eigrp 100
R3(config-router)#no auto-summary
R3(config-router)#net 13.1.1.0 0.0.0.255
R3(config-router)#net 34.1.1.0 0.0.0.255
# -----
R4(config)#router eigrp 100
R4(config-router)#no auto-summary
R4(config-router)#net 24.1.1.0 0.0.0.255
R4(config-router)#net 34.1.1.0 0.0.0.255
R4(config-router)#net 4.4.4.4 0.0.0.0
# -----
# 查询
R1#show ip ei neighbors
R1#show ip ei topology
R1#show ip ei topology all-links
R1#show ip route eigrp

NAT PPP DHCP

1
2
3
4
R6---R5-SW1--R4
|-R3
|-R2
|-R1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# DHCP client
R1#conf t
R1(config)#no ip routing
R1(config)#int f0/0
R1(config-if)#ip add dhcp
R1(config-if)#no sh
R2#conf t
R2(config)#no ip routing
R2(config)#int f0/0
R2(config-if)#ip add dhcp
R2(config-if)#no sh
R3#conf t
R3(config)#no ip routing
R3(config)#int f0/0
R3(config-if)#ip add dhcp
R3(config-if)#no sh
R4#conf t
R4(config)#no ip routing
R4(config)#int f0/0
R4(config-if)#ip add dhcp
R4(config-if)#no sh
# -----
# DHCP server
R5#conf t
R5(config)#server dhcp
R5(config)#int f0/0
R5(config-if)#ip add 192.168.1.1 255.255.255.0
R5(config-if)#no sh
R5(config-if)#exit
R5(config)#ip dhcp pool ccna
# 下发地址
R5(dhcp-config)#network 192.168.1.0 255.255.255.0
# 默认网关
R5(dhcp-config)#default-router 192.168.1.1
# DNS服务器
R5(dhcp-config)#dns-server 8.8.8.8
R5(dhcp-config)#exit
# 排除地址
R5(config)#ip dhcp excluded-address 192.168.1.2
# 排除地址范围
R5(config)#ip dhcp excluded-address 192.168.1.2 192.168.1.9
# -----
# 模拟分配IP
R5(config)#int s0/1
R5(config-if)#ip add 100.1.1.1 255.255.255.0
R5(config-if)#no sh
R6(config)#int s0/0
R6(config-if)#ip add 100.1.1.6 255.255.255.0
R6(config-if)#no sh
# -----
# PPP
R6(config-if)#encapsulation ppp
R5(config-if)#encapsulation ppp
# 添加认证
R6(config-if)#ppp authentication chap
R6(config-if)#exit
# 设置用户
R6(config)#hostname R6
R6(config)#username aaa password bbb
# 登录
R5(config-if)#ppp chap hostname aaa
R5(config-if)#ppp chap password bbb
# -----
# NAT
R5#conf t
R5(config)#int s1/0
R5(config-if)#ip nat outside
R5(config-if)#int f0/0
R5(config-if)#ip nat inside
R5(config-if)#exit
# 内部地址 修改源IP 静态NAT转换
R5(config)#ip nat inside source static 192.168.1.10 100.1.1.7
# -----
# 动态NAT 开始IP 结束IP 掩码
R5(config)#ip nat pool ccna 100.1.1.1 100.1.1.4 255.255.255.0
# 设置ACL
R5(config)#access-list 1 permit 192.168.1.0 0.0.0.255
# 给内部设置pool和acl,关联地址池+ACL
R5(config)#ip nat inside source list 1 pool ccna
R5(config)#int s1/0
R5(config-if)#ip nat outside
R5(config-if)#int f0/0
R5(config-if)#ip nat inside
# -----
# NAPT 端口复用
# overload 复用
R5(config)#no ip nat inside source list 1 pool ccna
R5(config)#int s1/0
R5(config-if)#ip nat outside
R5(config-if)#int f0/0
R5(config-if)#ip nat inside
R5(config)#ip nat inside source list 1 interface s1/0 overload
# -----
# 查看
R5#show ip nat translations

DHCP

一般,我们是一个路由器下一个DHCP,也就是一个网段一个DHCP,但是大型布网的时候我们需要一台DHCP服务器给不同网段设置

  • 基于UDP
  • 客户端:端口67
  • 服务端:端口68
1
2
3
4
Discover MSG(broadcasts) ->
<- Offer MSG(broadcasts)
Request MSG (broadcasts) ->
<- ACK MSG (broadcasts)
  • Request MSG
    • 告诉不需要的我不需要了,这样可以放回地址池
    • 告诉需要的,发具体信息

DHCP中继,被路由接口主档,变成单播包,源变为中继接口

1
R1(config-if)#ip helper-address dhcp-address
  • 激活中继功能,并为UDP广播包设置中继目标IP
  • 在接口上配置,该接口为沿途阻挡该广播消息的第一个接口

HDLC

  • 专用线路在数据链路层一般采用HDLC或PPP的封装
  • 专用线路是一条永久的点对点线路
  • HDLC高级数据链路控制协议是一种在同步链路上传输数据的二层协议
  • HDLC由SDLC协议发展而来
  • 每个厂家的HDLC可能有所不同,因此不同厂家之间的HDLC未必能够兼容

默认Cisco封装协议

PPP

  • 能控制数据链路的建立
  • 能够对IP地址进行分配和使用
  • 支持多种网络层协议
  • 能够配置和测试数据链路
  • 能够进行错误检测
  • 提供身份验证
  • 有协商选项,能够对网络层的数据和地址压缩等进行协商

PPP包含的4个主要组件如下所示

  • EIA/TIA-232-C、V.24、V.35和ISDN:串行通信的物理层国际标准
  • HDLC:在串行链路上封装数据报的方法
  • LCP
    • 一种建立、配置、维护和结束点到点连接(一条数据链路)的方法
    • 用于对接下面
  • NCP:
    • 一种建立和配置不同网络层协议的方法。NCP设计允许同时使用多个网络层协议。
    • 例如有些协议是IPCP(Internet Protocol Control Protocol,因特网协议控制协议)和IPXCP(Internetwork Packet Exchange Control Protocol,互联网络包交换控制协议)
    • 用于对接上面

DCE提供频率,DTE接受频率,线缆决定DCE

链路控制协议(LCP)

配置选项 LCP(Link Control Protocol)提供各种PPP封装选项,包括如下内容:

  • Authentication(2层认证)
    • 这个选项告诉链路的呼叫方发送可以确定其用户身份的信息
    • PAP
    • CHAP
  • Compression(压缩):
    • 这个选项用于通过传输之前压缩数据或负载来增加PPP连接的吞吐量。PPP在接收端解压数据帧
  • Error detection(错误检测)& correction:
    • PPP使用↓选项确保可靠的、无环路的数据链路
    • Quality(质量)
    • Magic Number(魔术号码)
  • logical bundling of Multilink(多链路):
    • 从IOS11.1版本开始,Cisco路由器在PPP链路上支持多条链路选项。这个选项允许几条不同的物理路径在第3层表现为一条逻辑路径
  • PPP callback(PPP回叫):
    • PPP可以配置为认证成功后进行回叫。PPP回叫对于账户记录或各种其他原因是一个好功能,因为可以根据访问费用跟踪使用情况。

CHAP

  • 挑战握手认证协议
  • 双向认证
  • 加密

  1. Challenge
  2. Response
  3. Accept or Reject

  • 开始PPP
    • encapsulation ppp
  • 开始PPP认证
    • hostname
    • username and password
    • PPP authentication

PAP

  • 2此握手
  • 单向认证
  • 明文认证

网络控制协议(NCP)

在3层和2层之间做适配,适应3层协议
认证通过后交给NCP

交换机转发

  • store and forward
    • 收到全部再转发,更少错误
  • cut-through
    • 直接转发,更多错误
  • fragment free
    • 检查前64bit,再转发

广域网链路类型

  • 专线
    • 稳定可靠
    • 专有逻辑链接一直在线
    • 适合长时间的业务流量需求
  • 电路交换
    • ARPNET
  • 分组交换(包交换)
    • 分组交换设备根据数据帧的二层地址来进行路径的选择
    • ATM
    • X.25
    • 帧中继 FR
  • VPN

Frame Relay

帧中继

  • 应用非常广泛的WAN协议
  • FR交换设备在用户路由器间建立虚电路VC,提供基于交换分组的二层通道
  • 面向连接的数据链路技术
  • 不支持广播
    • 可以模拟广播,向所有PVC发送一份数据的拷贝
    • 在建立PVC的时候,通过invers-arp自动建立映射,默认就开启上诉特性
    • 如果是手动配置映射,则必须加上broadcast关键字

分组交换,就相当于一个口连接了多个口,还跨WAN

虚电路VC

  • 通过帧中继网络实现的逻辑连接叫做虚电路
  • 利用虚电路,帧中继允许多个用户共享宽带,而无需使用多条专用物理专线
  • 虚电路是以DLCI标识的

数据链路连接标识DLCI

DLCI,就是一个标签,运行商回去对应标签

  • 通常由帧中继服务提供商分配
  • 帧中继DLCI仅具有本地意义
  • DLCI 0到15和1008到1023留作特殊用途,服务提供商分配的DLCI范围通常为16到1007

LMI

本地管理接口,用于管理边界路由器到运营商路由器之间的线路

  • 是一种信令标准,用于管理链路连接及keepalive的机制
  • 终端路由器DTE和帧中继交换机DCE之间的帧中继设备每10秒轮询一次网络
  • Cisco路由器支持以下三种LMI
    • Cisco
    • Ansi
    • q933a

帧中继拓扑

  • 星型结构(Hub-and-spoke)
  • 全互联(Full-Mesh)
  • 部分互联(Paital-Mesh)

帧中继地址映射

IP-DLCI的映射,对应对方给自己的标签号

  • 帧中继映射条目,DLCI从运营商处获取
  • 映射关系为远端IP地址到本地的DLCI之间的关系
  • 可以通过手工配置或Inverse ARP自动发现

采用反向ARP的方式学的话,运营商返回对端DLCI

HSRP

  • 热备份
  • 共用一个虚拟IP地址,MAC地址,一个路由器处于Active状态
  • 通过比较优先级,MAC地址等决定Active
  • 可以配置抢夺模式,在配置较好路由器恢复后,抢夺Active
  • HSRP有分组,每个组有一个ID,一个路由器可以参与多个组
  • 组播
    • v1: 224.0.0.2
    • v2: 224.0.0.102
  • 需要在同一个广播域内(VLAN)

  • Active路由器
    • 响应ARP请求
    • 承担实际流量转发任务
    • 周期性发送Hello包告知存货
  • Standby路由器
    • 监听Hello包

  • initial:初始化状态
  • Learn:接口未设置虚拟IP,但是激活了HSRP,等待从Active学习
  • Listen:已获知虚拟IP,开始监听同组hello包
  • Speak:发送周期性的Hello包,同时参与选举
  • Standby:周期发送Hello包,同时监听Active
  • Active:响应ARP。周期发送Hello包

initial -> Listen -> Speak -> Standby -> Active

1
2
3
4
5
6
7
   R6
/ \
R4 R5
\ /
SW
/ \
R1 R2
  • R4和R5任意选一个热备份
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 192.168.1.10 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#no ip routing
# -----
R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 192.168.1.20 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#no ip routing
# -----
Switch#vlan database
Switch(vlan)#vlan 10
Switch(vlan)#vlan 20
Switch(vlan)#exit
Switch#conf t
Switch(config)#int f0/0
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)#int f0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)#end
Switch(config)#int ran f0/2 -3
Switch(config-if-range)#sw tr encapsulation dot1q
Switch(config-if-range)#switchport mode trunk
# -----
R4#conf t
R4(config)#int f0/0
R4(config-if)#no sh
R4(config-if)#int f0/0.1
R4(config-if-subif)#encapsulation dot1q
R4(config-if-subif)#ip add 192.168.1.1 255.255.255.0
R4(config-if-subif)#no sh
R4(config-if-subif)#int f0/0.2
R4(config-if-subif)#encapsulation dot1q
R4(config-if-subif)#ip add 192.168.2.1 255.255.255.0
R4(config-if-subif)#no sh
# -----
R5#conf t
R5(config)#int f0/0
R5(config-if)#no sh
R5(config-if)#int f0/0.1
R5(config-if-subif)#encapsulation dot1q
R5(config-if-subif)#ip add 192.168.1.2 255.255.255.0
R5(config-if-subif)#no sh
R5(config-if-subif)#int f0/0.2
R5(config-if-subif)#encapsulation dot1q
R5(config-if-subif)#ip add 192.168.2.2 255.255.255.0
R5(config-if-subif)#no sh
# -----
R4#conf t
R4(config)#int f1/0
R4(config-if)#ip add 100.1.1.1 255.255.255.0
R4(config-if)#no sh
R5#conf t
R5(config)#int f1/0
R5(config-if)#ip add 200.1.1.1 255.255.255.0
R5(config-if)#no sh
# -----
R6#conf t
R6(config)#int f0/0
R6(config-if)#ip add 100.1.1.2 255.255.255.0
R6(config-if)#no sh
R6(config-if)#int f0/1
R6(config-if)#ip add 200.1.1.2 255.255.255.0
R6(config-if)#no sh
R6(config-if)#int lo0
R6(config-if)#ip add 6.6.6.6 255.255.255.255
# -----
# HSRP
R4(config)#int f0/0.1
# 组号 协商IP
R4(config-subif)#standby 1 192.168.1.100
R5(config)#int f0/0.1
R5(config-subif)#standby 1 192.168.1.100
# -----
# 查看
R5(config-subif)#do show standby brief
# -----
# 优先级
R4(config-subif)#standby 1 priority 101
# -----
# 指定网关
R1(config)#ip default-gateway 192.168.1.100
# 指定路由
R4(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.2
R5(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.2
# -----
# 建立NAT
R4(config)#int f1/0
R4(config-if)#ip nat outside
R4(config-if)#int f0/0.1
R4(config-if-subif)#ip nat inside
R4(config-if-subif)#exit
R4(config)#access-list 1 per any
R4(config)#ip nat inside source list 1 int f1/0 overload
R5(config)#int f1/0
R5(config-if)#ip nat outside
R5(config-if)#int f0/0.1
R5(config-if-subif)#ip nat inside
R5(config-if-subif)#exit
R5(config)#access-list 1 per any
R5(config)#ip nat inside source list 1 int f1/0 overload
# -----
# 测试冗余
R4(config)#int f0/0.1
R4(config-if-subif)#sh
R1#ping 6.6.6.6 #OK
# 这里恢复了也不会抢占
R4(config-if-subif)#no sh
# 设置抢占
R4(config-if-subif)#standby 1 preempt
# 检测外口,有问题,优先级-2
# 所以双方都要开启抢占
R4(config-if-subif)#standby 1 f1/0 2
# -----
# 给R2 HSRP, R5为主
R4(config)#int f0/0.2
R4(config-subif)#standby 2 192.168.2.100
R4(config-subif)#standby 2 preempt
R4(config-subif)#ip nat inside
R5(config)#int f0/0.2
R5(config-subif)#standby 2 192.168.2.100
R5(config-subif)#standby 2 priority 101
R5(config-subif)#standby 2 preempt
R5(config-subif)#standby 2 track f1/0 2
R5(config-subif)#ip nat inside
R2(config)#ip default-gateway 192.168.2.100
R2(config)#ping 6.6.6.6 #OK
    • 配置IP地址
    • 定义优先级
    • 开启抢占
    • 检测外部接口
    • 配置IP地址
    • 开启抢占

虚拟路由器MAC地址: 0000.5E00.01XX

HSRP trank

上游接口发生故障后,可以切换Active,上游接口Down后,优先级会减去一个数值

VRRP

  • 虚拟路由器:由一个Master路由器和多个Backup路由器组成。主机将虚拟路由器当作默认网关。
  • VRID:虚拟路由器的标识。有相同VRID的一组路由器构成一个虚拟路由器。
  • Master路由器:虚拟路由器中承担报文转发任务的路由器。
  • Backup路由器:Master路由器出现故障时,能够代替Master路由器工作的路由器。
  • 虚拟IP地址:虚拟路由器的IP地址。一个虚拟路由器可以拥有一个或多个IP地址
  • IP地址拥有者:接口IP地址与虚拟IP地址相同的路由器被称为IP地址拥有者
  • 虚拟MAC地址:一个虚拟路由器拥有一个虚拟MAC地址。
  • 优先级:VRRP根据优先级来确定虚拟路由器中每台路由器的地位
  • 非抢占方式:如果Backup路由器工作在非抢占方式下,则只要Master路由器没有出现故障,Backup路由器即使随后被配置了更高的优先级也不会成为Master路由器
  • 抢占方式:如果Backup路由器工作在抢占方式下,当它收到VRRP报文后,会将自己的优先级与通告报文中的优先级进行比较。如果自己的优先级比当前的Master路由器的优先级高,就会主动抢占成为Master路由器;否则,将保持Backup状态

VRRP工作过程

  1. 虚拟路由器中的路由器根据优先级选举出Master。Master路由器通过发送免费ARP报文,将自己的虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务
  2. Master路由器周期性发送VRRP报文,以公布其配置信息(优先级等)和工作状况
  3. 如果Master路由器出现故障,虚拟路由器中的Backup路由器将根据优先级重新选举新的Master
  4. 虚拟路由器状态切换时,Master路由器由一台设备切换为另外一台设备,新的Master路由器只是简单地发送一个携带虚拟路由器的MAC地址和虚拟IP地址信息的免费ARP报文,这样就可以更新与它连接的主机或设备中的ARP相关信息。网络中的主机感知不到Master路由器已经切换为另外一台设备
  5. backup路由器的优先级高于Master路由器时,由Backup路由器的工作方式(抢占方式和非抢占方式)决定是否重新选举Master

VRRP选举过程

初始创建的路由器工作在Backup状态,通过VRRP报文的交互获知虚拟路由器中其他成员的优先级

  • 如果VRRP报文中Master路由器的优先级高于自己的优先级,则路由器保持在Backup状态
  • 如果VRRP报文中Master路由器的优先级低于自己的优先级,采用抢占工作方式的路由器将抢占成为Master状态,周期性地发送VRRP报文,采用非抢占工作方式的路由器仍保持Backup状态
  • 如果在一定时间内没有收到VRRP报文,则路由器切换为Master状态

VRRP优先级的取值范围为0到255

CDP

Cisco Discovery Protocol, 用来寻找第二层相邻的Cisco设备

  • Cisco routers
  • Cisco switch
  • Cisco IP Phones
  • Cisco Unified Communications Manager servers

  • 每60秒以01-00-0c-cc-cc-cc为目的地址发送一次组播通告
  • 死亡时间:180s
  • CDP定时器:指多长时间将CDP数据包传输到所有活动接口的时间量
    • cdp timer <time>
  • CDP保持时间:指设备保留从相邻设备接收到的数据包的时间量
    • cdp holdtime <time>
1
2
3
4
5
6
7
#全局启用CDP
R1(config)#cdp run
R1(config)#show cdp neighbors
R1(config)#show cdp interface
R1(config)#int f0/1
R1(config-if)#no cdp enable
R1(config-if)#cdp enable

LLDP is an industry standard (i.e. IEEE 802.1AB).

  • LLDP holdtime seconds: 保留时间
  • LLDP reinit delay: 初始化延迟时间
  • LLDP timer rate: 更新时间

IPv6

  • 共有地址:2000::/3
    • 全球单播地址
  • Link local addresses:FE80::/10
    • 本地链路单播地址
  • Unique local addresses:FC00::/7
    • 唯一本地地址(私网地址)
  • 回路:::1
  • 未指定:::
  • 组播:FF
  • Solicited-node multicast addresses:FF02::1:FF
1
2
3
4
R1(config-if)#ipv6 add 2001::1/64
R1(config-if)#exit
# 启用ipv6路由
R1(config)#ipv6 unicast-routing

IPv6好处

  • IPv6分组报头包含的字段减少了一半,且所有字段都与64位边界对齐,提高处理速度
  • 更好的头部格式,传输速度更快
  • IPv6具有更高的安全性,IPsec
  • IPv6具有更大的地址空间
  • 组播,任意播,没有广播
  • 即插即用,IPv6加入了对自动配置的支持
  • 允许扩充

部署IPv6

  • 兼容IPv4
    • 最大限度地保护既有投资
    • 保证IPv4和IPv6主机之间的互通
    • 保证现有IPv4应用在综合组网环境中的正常应用
  • 协议是否支持IPv6
    • 不同版本配置是否不同
  • IP分配
    • 手工分配
    • 自动配置
  • 如何充分发挥IPv6的技术优势

EUI64

EUI-64的构造规则–根据接口的MAC地址再加上固定的前缀来生成一个IPV6的地址

对于一个MAC地址,由两部分组成,24位的公司的ID(由IEEE唯一分配),24位公司的扩展ID(公司自己编制),联合产生全球唯一的48位MAC地址(也称IEEE 802地址),如下:

| 24位IEEE分配 || 24位厂商自己编制 |

先将此48位MAC地址公司ID和公司扩展ID之间插入特定16位值0xFFFE,形成64位的EUI-64地址,如下:

| 24位IEEE分配 | FFFE | 24位厂商自己编制 |

再将EUI-64地址的第一字节第7为反转,形成IPV6地址的接口ID,加之IPV6前缀形成完整的IPV6地址。

即插即用

  • 路由器发现(Router Discovery):当一个节点连接到一个IPv6的链路上时,它能够发现本地的路由器,而不必借助动态主机配置协议(DHCP)。
  • 前缀发现(Prefix):当一个节点连接到一个IPv6的链路上时,它能够发现分配给该链路的前缀。
  • 参数发现(Parameter Discovery):节点能够发现它所相连的链路的参数,例如链路跳数限制等。

SLAAC

无状态自动配置

首先,为配置接口,主机需要前缀信息(类似于IPV4地址的网络部分),因此它会发送一条路由器请求(RouterSolicitation,RS)消息。该消息以组播方式发送给所有路由器。这实际上是一种ICMP消息,并用编号进行标识。RS消息的ICMP类型为133。

路由器使用一条路由器通告(Router-Advertisement,RA)消息进行应答,其中包含请求的前级信息。RA消息也是组播分组,被发送到表示所有节点的组播地址,其ICMP类型为134。RA消息是定期发送的,但主机发送RS消息后,可立即得到响应,因此无需等待下一条定期发送的RA消息,就能获得所需的信息。

  • 发现链路上使用的前缀:发送周期RA
  • 产生一个接口ID:二层寻址(基于MAC的EUI-64ID)
  • 验证所产生IPv6地址的唯一性:重复地址检测(DAD)

QoS

  • FIFO:先进先出
  • CB-WFQ:基于等级的加权公平队列
    • 基于类别的加权公平排队,通常使用ACL定义数据 流类别,并将注入宽带和队列限制等参数应用于这些类别.
    • 能够给不同的类保障一定的带宽
    • 对传统的WFQ作了扩展 支持用户自己定义流量的分类:
    • 队列的个数和类别是一一对应,给每个class保留带宽
  • WFQ:加权公平队列
    • WFQ优点
      • 配置简单(不用手工分类)
      • 保证所有的流都有一定的带宽
      • 丢弃野蛮流量
      • 大多数平台上都支持
      • 支持所有IOS版本(11.0以上)
    • WFQ缺点
      • 每个子队列都继承了FIFO的缺点
      • 多个不同的流可能会被分入同一个队列(流的数量超过了配置的队列数)
      • 不支持手工分类
      • 不能提供固定带宽保证
  • DWFQ:分布式加权公平队列

Low Latency Queuing (LLQ) allows you to place one or more types of priority traffic into a priority queue

二层冗余

Port Channel

交换机端使用LACP或者PAgP协议,服务器端使用NIC teaming技术讲多条链路绑定在一起,STP运行在所有物理链路组成的逻辑链路上。优点是绝大部分交换机都支持这种技术,缺点是所有port channel的组成端口都必须位于同一台交换机上,可能造成单点故障

StackWise

Catalyst低端交换上使用的堆叠技术,可以将两台交换机“合并”为一台进行使用和管理,同一prot channel当中的端口可以位于不同物理交换机上。不需要特殊配置,只需要连线即可。只有一个控制层面(control plane)和管理层面(management plane),主要用于接入层端口扩充,同一逻辑单元最多能够接入9台物理交换机

VSS

Catalyst 4500和6500上使用的技术,但是对于硬件型号和引擎要求较多,并且只能将两台设备“合并”在一起。此外,VSS不只是二层技术,而是将二层和三层全部“合并”。只有一个控制层面(control plane)和管理层面(management plane)

vPC

适用于Nexus交换机,单纯的二层跨机箱冗余技术,不支持×××或QoS等三层特性。和StackWise和VSS不同的是,配置了vPC的Nexus依然保持各自的控制层面(control plane)和管理层面(management palne),可以用于构建大二层网络。此外还有vitual Port Channel Plus和Enhanced virtual Port Channel,有兴趣可以进一步查阅文档

SNMP

管理进程和代理进程之间的通信有2种方式

  • 管理进程向代理进程询问
  • 代理进程主动向管理进程反馈

SNMP is an application-layer protocol that provides a message format for communication between SNMP managers and agents. SNMP provides a standardized framework and a common language used for the monitoring and management of devices in a network.
The SNMP framework has three parts:

  • An SNMP manager
  • An SNMP agent
  • A Management Information Base (MIB)

The Management Information Base (MIB) is a virtual information storage area for network management information, which consists of collections of managed objects.
With SNMP, the network administrator can send commands to multiple routers to do the backup.

SNMP报文

总共5种报文

  • get-request操作:从代理程序处提取一个或多个参数值
  • get-next-request操作:从代理进程处提取一个或多个参数的下一个参数值
  • set-request操作:设置代理进程的一个或多个参数值
  • get-response操作:返回的一个或多个参数值
  • trap操作:代理进程主动发出报文
    • 端口162

对象标识符

类似树状结构,每个节点都有一个数字,这样就可以标识

SDN

软件定义网络,传统的网络设备(交换机、路由器)的固由设备制造商锁定和控制,所以SDN希望将网络控制与物理网络拓扑分离,从而摆脱硬件对网络架构的限制。这样企业便可以像升级、安装软件一样对网络架构进行修改,满足企业对整个网站架构进行调整、扩容或升级。而底层的交换机、路由器等硬件则无需替换,节省大量的成本的同时,网络架构迭代周期将大大缩短。举个不恰当的例子,SDN技术就相当于把每人家里路由器的的管理设置系统和路由器剥离开。以前我们每台路由器都有自己的管理系统,而有了SDN之后,一个管理系统可用在所有品牌的路由器上。如果说现在的

SDN (Software Defined Networking) is the latest buzzword in IT, getting more popular every year. Some network engineers read or heard stories about how the entire network will be programmed in the future, and now fear that their jobs will be replaced by programmers who know C/C++, Java, or Python inside out.

所谓架构即代码

这个SDN用2个接口进行配置

  • northbound interface (NBI)
  • southbound interface (SBI)

control plane

The control plane is responsible for exchanging routing information, building the ARP table, etc. Here are some tasks that are performed by the control plane:

  • 学习MAC地址,建立MAC表
  • 用STP创建拓扑结构
  • 创建ARP表
  • 用动态路由协议生成路由表

主要功能就是建立各种表

data plane

The data plane is responsible for forwarding traffic. It relies on the information that the control plane supplies. Here are some tasks that the data plane takes care of:

  • 封装,去封装数据包
  • 加上或移除封装的包头如802.1Q, ISL
  • 匹配MAC地址并转发
  • 匹配IP地址
  • NAT转换地址
  • ACL控制

management plane

The management plane is used for access and management of our network devices. For example, accessing our device through telnet, SSH or the console port.

  • Association Identifier
  • Association Request
  • Association Response

NBI

南桥接口,通过与网络设备进行交流从而编程data plane

  • OpenFlow
  • Cisco OpFlex
  • NETCONF
  • onePK
  • OpFlex
  • RESTCONF
  • CLI

defines the way the SDN Controller should interact with the forwarding plane to make adjustments to the network

SBI

配置SDN控制器本体,提供GUI和API,可以写脚本来调用,使用REST API,参考k8s?

NTP

To configure authentication, perform this task in privileged mode:

  1. Configure an authentication key pair for NTP and specify whether the key will be trusted or untrusted.
  2. Set the IP address of the NTP server and the public key.
  3. Enable NTP client mode.
  4. Enable NTP authentication.
  5. Verify the NTP configuration.

QoS

Cisco Unified Wireless Network solution WLANs support four levels of QoS

  • Platinum/Voice
    • voice traffic
  • Gold/Video
  • Silver/Best Effort (default)
  • Bronze/Background

路由选择原理

  • 路由信息来源
    • 直接路由
      • 接口配置IP,该接口的物理层和数据链路层UP
      • 通过接口感知到的直连网络
    • 静态路由
      • 使用静态路由命令手工配置的路由
    • 动态路由
      • 通过动态路由协议学习
      • 场景路由协议:RIP,OSPF,IS-IS,EIGRO,BGP
  • 距离管理(AD值)
  • 有类及无类路由查找
    • 无类路由查找:路由器不会注意目的地址的类别,它会在目的地址和所有已知的路由之间逐位执行最长匹配
    • 有类路由查找:路由器收到一个数据包时,先查找目的地址所属的主类网络,如果路由表中 存在该主类网络的路由,则继续找子网,如果没有子网路由则丢弃数据包,如果有则正常转发,而如果本地路由表里没有该目的地址所属主类网络的路由,则看是否有默认路由
  • 最长匹配原则
    • 主机地址:/32
    • 子网:/30
    • 一组子网:/27
    • 主网号:默认子网掩码/24
    • 超网CIDR:/20
    • 缺省地址:0.0.0.0
  • 递归查询

路由协议分类

  • 有类路由协议:RIPv1,IGRP
  • 无类路由协议:OSPF,EIGRP,ISIS,BGP

根本区别在于:更新消息中是否包含网络掩码

路由重发布

将一种路由协议再注入进另一种路由协议的过程。

  • 网络中使用多种IP路由协议
    • 多厂商的路由环境
    • 网络合并
    • 从旧路由过渡到新的路由
    • 路由策略的需要(可靠性,冗余性)

使用不同路由协议的区域之间不会传递路由,路由重发布是指连接到不同路由域的边界路由器在他们之间交换和通告路由选择信息的能力

  • 从一种协议到另一种协议
  • 同一种协议的多个实例
  • 重分发总是向外的,执行重发布的路由器不会修改路由表
  • 路由必须位于路由表才能被重发布

需要考虑的因素

  • 路由回馈
  • 路由信息的不兼容
  • 收敛时间不一致
  • 有类/无类

度量值

  • 种子度量值
  • 路由器通告与其他接口直连相连的链路时,使用的初始度量值叫做种子度量值,根据接口特性得到
  • 种子度量值时在重分发配置期间定义的,在AS内部递增,除OSPF E2路由
  • 可使用命令default-metricredistribute中使用metric来指定种子度量值
重发到协议 种子度量值
RIP 0(视为无穷大)
IGRP/EIGRO 0(视为无穷大)
OSPF BGP->1, 其他20
IS_IS 0
BGP 为IGP的度量值

使用场景

  • 协议之间
    • A–>B 一种动态路由协议发布另一种动态路由协议
  • 直接连接
    • 直连—>B 直连由协议发布另一种动态路由协议
  • 静态路由
    • 静态—>B 静态由协议发布另一种动态路由协议

目的在于

  • 多协议重发布的路由环路问题
  • 次优路径的问题
  • 冗余的问题
  • 路由过滤的问题

  • 单点重分发
    • 单向重分发
    • 双向重分发
  • 多点重发布
    • 多点单向重发布
    • 多点双向重发布

重发布直连接口

  • 把直连接口重发布到动态协议里面

路由策略

Passive-interface

被动接口,路由器一个接口下挂载的全是PC,PC不需要进入路由协议

协议 策略
RIP/IGRP 在指定接口不向外发送路由更新,但是接受路由更新
EIGRP 在指定接口不向外发送Hello消息,而且不通过这个接口建立邻居关系,不发送其他EIGRP数据流
OSPF 在指定接口不向外发送Hello消息,而且通告这个接口不与其他路由建立邻接关系,不发送和接受路由
1
2
3
4
5
# 将某个接口配置为被动接口
R1(config-router)#passive-interface int-type int-num
# 将所有接口配置为被动接口,并手动激活特定接口
R1(config-router)#passive-interface default
R1(config-router)#no passive-interface int-type int-num

单播更新,将接口设置被动,然后手动指定邻居

  • 如果是EIGRP,不用设置被动,直接指定邻居
1
2
R1(config)#router rip
R1(config-router)#passive-interface int-type int-num

控制管理距离

  • OSPF
1
2
3
R1(config)#router ospf 1
R1(config-router)#distance AD ip-src wildmask acls
R1(config-router)#distance ospf external AD1 inter-area AD2 intra-area AD3
  • EIGRP
1
2
3
R1(config)#router eigrp 100
R1(config-router)#distance AD ip-src wildmask acls
R1(config-router)#distance eigrp internal-distance external-distance

实现数据分流,管理距离控制路由,和控制路由重分发

Route-map

比ACL更强的工具

  • 重分发期间进行路由过滤或执行策略
  • PBR(策略路由)
  • NAT(网络地址转换)
  • BGP

逐级向下对比,匹配每一个match语句,如果匹配,则执行Set动作,否则进入下一个条目

1
2
3
4
route-map test permit/deny 10
match x1
match x2
set y1
  • 使用match命令匹配特定的分组或路由,set修改该分组或路由的相关属性
  • Route-mao中的语句相当于访问列表中的各行
  • route-map默认为permit,默认序列号为10,序列号不会自动递增,需要指定序列号
  • 末尾隐含deny
  • 单条match语句包括多个条件时,使用or运算,多条match语句时,使用and运算
1
2
3
4
5
6
7
8
match ip address 匹配访问列表或前缀列表
match length 根据分组的第三层长度进行匹配
match inferface 匹配下一跳为指定接口的路由
match ip next-hop 匹配下一跳路由地址获得防伪列表之一运行的路由
match metric 匹配具有指定度量值的路由
match route-type 匹配指定类型的路由
match community 匹配BGP共同体
match tag 根据路由的标志进行匹配
1
2
3
4
5
6
7
8
9
10
11
12
set metric 设置路由协议的度量值
set metric-type 设置目标路由协议的度量值类型
set default interface 指定如何发送这样的分组
set interface 指定如何发送这样的分组
set ip default next-hop 指定转发的下一跳
set next-hop 指定转发的下一跳
set as-path
set community
set local-preference
set weight
set origin
set tag

用于重分发

1
2
3
4
5
6
7
8
9
10
11
access-list 1 permit 192.168.1.0
access-list 1 permit 192.168.2.0
access-list 2 permit 192.168.3.0
route-map test permit 10
match ip address 1
set metric 2
route-mao test permit 20
match ip address 2
set metric 3
router rip
redistribute ospf 1 route-map test
  • 执行路由策略
  • 避免路由反馈

Distribute-list

可根据下列因素过滤更新

  • 入站接口
  • 出站接口
  • 从另一种路由协议重分发

针对路由信息针对过滤