华为配置命令

 

系统视图本文章默认不添加' ] '提示
特殊视图会添加特殊视图提示如'aaa]'则是在aaa视图命令下
vlan视图提示不会写vlan号而直接使用'vlan]'来表示在vlan视图

版本介绍

VRP版本:
核心版本(内核版本)一基础版本
- 用一个小数来表示,整数部分代表主版本号,小数点后第一位代表次版本号,小数点后第3,4位代表修订版本号。
- 例如某设备核心版本为VRP5.120,则代表主版本为5,次版本号为1,修订版本号为20
发行版本一针对具体产品系列的VRP版本
发行版本是以∨、R、C三个字母(代表三种不同的版本号)进行标识的,基本格式为“∨ XXXRXXXCXX”。
- V版本号——软件或者硬件平台版本,从100开始以100为单位递增编号
- R版本号——面向所有客户发布的通用版本,从001开始以1为单位递增编号
- C版本号——针对不同客户需求发布的客户化版本

常用命令与快捷键

快捷键:
Tap 补全
? 也算补全

命令:
进入系统视图:
>system-view
修改设备名:
]sysname 修改名字
产看版本信息:
dispaly version
查看当前配置信息:
display current-configuration 
查看已经保存的配置信息:
display display saved-configuration 
保存配置:
save -> Y
查看当前视图执行的配置:
display this
管道符:
display current-configuration 
- | include 包含匹配
- | exclude 不包含匹配
- | begin 从*开始到最后
进入接口:     // 长命令就算tap补全,不用全打
interface GigabitEthernet0/0/0
永久端口组:
port-group name  // 命名
-port-group-name]group-member g */*/* to g */*/*
临时端口组:
port-group group-member g*/*/* to g*/*/*
V200R003C00及后续版本支持临时端口组:
interface range g*/*/* to g*/*/*
进入vlan接口:
interface vlan  1-4094  // 多端口同上
配置ip地址:
ip address IP地址 掩码(1的数量或点分十进制)
显示接口信息:
display interface [接口名]  // 不加接口名查看全部接口
查看简要ip接口信息:
display ip interface brief  
查看简要接口信息
display interface  brief
查看单个接口详细信息
display ip interface 接口名称
查看历史命令
display history-command

系统调试

对网络设备所支持的绝大部分协议和功能,系统都提供了相应的调试功能,帮助用户对错误进行诊断和定位

调试信息开关

>terminal monitor  // 开启控制台对系统信息的监视功能
>terminal debugging   // 打开调试信息的屏幕输出开关
>debugging module-name   // 打开模块调试开关
>display debugging  // 显示调试开关

关闭的话undo就行 还一个最简单的方法:
undo information enable  // 关闭所有通知信息

以太网交换机原理

以太网是当今现有局域网(Local Area Network, LAN) 采用的最通用的通信标准协议,该标准定义了在局域网中采用电缆类型和信号处理方法

以太网是建立在CSMA/CD(Carrier Sense Multiple Access/Collision Deteciton,载波侦听多路访问/冲突检测)机制上的广播型网络

冲突与是指里拦截在同一共享介质上的所有节点的集合,冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播,组播,广播)其他节点都可以收到

集线器连接的所有机器都在同一个冲突域

交换机不同端口发送和接收数据独立,各接口属于不同的冲突域,实现冲突域隔离

广播域
广播报文所能达到的整个访问范围称为二层广播域,简称帮博宇,同一广播域内的主机都能收到广播报文++

交换机基于目标MAC转发数据
交换机的MAC地址表项需要报文触发才可以构建
交换机的MAC地址表是交换机转发数据"地图"
交换机MAC地址表中存放:MAC地址和端口映射
泛洪: 未知单播泛洪 广播泛洪
交换机根据接受报文的源MAC地址来构建自己的MAC地址表项

交换机接口DOWN掉后,相应MAC地址如何变化
- 会在表中删除
同一个Vlan中,pc冲交换机A端口迁移到B端口,交换机MAC地址表如何变化
- 会自动更新
MAC地址表的老化时间,为什么需要老化时间
- 华为默认300秒 可以使用dis mac-address aging-time 来查看,因为不能无限增加,高效利用设备资源
如何设置黑洞MAC
- mac-address blackhole MAC-Address vlan vlan-id
交换机的一个接口可以学习多个MAC地址吗
- 可以
交换机的MAC地址表项可以无限增加吗
- 不可以,内存是有空间的,可以通过dis mac-address summary 查看可以存放多少条MAC
交换机和集线器有何区别
- 交换机有广播域,每一个接口就是一个冲突域,集线器连接的所有端口都在一个冲突域
交换机有NAT功能吗
- 99%的交换机都没有,三层交换机也许有
所有交换机的端口都可以切换成路由口吗
- 不是所有的,某些高配是可以的

 

 

 

 

 

配置Telnet和STelnet

Tlenet

开启Telnet服务器端功能
]telnet server enable
// 默认情况下, 设备的telnet处于去使能状态,想关闭前面加一个undo 就好了
进入用户接口: user-interface vty 0 [4]
// 进入用户接口0代表第一个用户接口 4代表最后一个 也就是管理0到4的五个接口 配置认证模式: vty0-4]authentication-mode [aaa | none | password]
配置密码:
vty0-4]set authentication password chipher
// 缺省情况下,无默认认证方式,需要进行手动配置,
// 不通VRP版本执行 set authentication password cipher 命令有差异:某些版本需要回车后输入密码,有些版本可直接在命令后面输入密码 更改权限: -ui-vty0-4]user privilege level 3 连接telnet: >telnet 1.1.1.1 查看连接信息: display users 进入aaa认证模式: aaa 创建用户: aaa] local-user 用户名 password cipher 密码 更改服务类型: aaa] local-user 用户名 service-type telnet [ssh | http]
// 一个账号可以配置多个服务 权限级别: aaa] local-user 用户名 privilege level 3

STelnet与SFtp

创建密钥: 
] rsa local-key-pair create
Input the bits in the modulus[default = 512]:直接回车默认或者自定义比特数
进入配置用户接口:
] user-interface vty 0 [*]
修改认证模式为aaa:
-ui-vty*-*] authentication-mode aaa
设置只支持ssh登陆:
-ui-vty*-*] protocol inbound ssh
进入aaa视图
] aaa
创建aaa用户
-aaa] local-user 用户名 password cipher 密码
修改用户类型:
-aaa] local-user用户名 service-type ssh
提升权限:
-aaa] local-user zyx privilege level 3
配置ssh用户
ssh user zyx authentication-type password
启动stelnent
stelnet server enable 
首次登陆时需要开启ssh登陆
ssh client first-time enable 

查看创建好的密钥对: 
display rsa local-key-pair public 
查看ssh信息: 
display ssh server ?
查看用户信息:
display  ssh user-information 


// 可能我模拟器有问题,输入密码就会卡死,然后服务器断开连接,原因未知
// 2023/11/30 这么多年了,终于知道原因了,需要用eNSP中的AR2220路由器进行配置,默认的router是不支持的

FTP

STP协议

Spanning Tree Protocol STP
在以太网中,为了进行链路备份,提高网络可靠性,通常会使用冗余链路
但是使用冗余链路会在交换网络中,产生环路,引发广播风暴以及MAC地址表不稳定等故障现象
从而导致用户通信质量较差,甚至通信中断

运行STP协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某个接口进行阻塞
最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在唤醒网络中不断循环,
避免设备由于重复接收相同的报文造成处理能力下降

RSTP ( Repid Spanning Tree Protocol ) 协议基于STP协议,对原有的STP协议进行了更加细致的修改和补充,实现快速收敛

BUM帧(Broadcast, Unknown Unicast, Multicast)指定广播,未知单播,及组播帧

在网络中部署生成树后,交换机之间会进行生成树协议报文的交互并进行无环拓扑计算
最终将网络中的某个或者某些接口进行阻塞(Block)
从而打破环路

STP越小越优先

stp的基本概念

桥id (bridge id, BID)
- IEEE 802.1D 标准中规定BID由16位的桥优先级( Bridge Priority) 于桥MAC地址构成
- 每一台运行STP的交换机都有一个唯一的BID
- BID桥优先级占据高16bit, 其余的低48bit是桥的mac地址
- 在STP网络中,BID最小的设备会被选举为根桥

根桥 ( Root Bridge)
- stp的主要作用是在整个交换网络中计算出一颗无环的"树"(STP树)
- 根桥是一个STP交换网络中的树根
- stp开始工作后,会在交换网络中选举一个根桥,根桥是生成树进行拓扑计算的重要参考点
是stp计算得出的无环拓扑的树根
- 在stp网络中,桥id最小的设备会被选举为根桥
在BID的比较过程中,首先比较桥优先级,优先级的值越小,则越优先,拥有最小优先级值的交换机会成为根桥
如果优先级相同,那么再比较MAC地址,拥有最小MAC地址的交换机会成为根桥

Cost ( 开销 )
- 每一个记过了stp的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达跟的开销
- 接口的缺省Cost值除了与其速率,工作模式相关,还与交换机慎用的STP Cost计算方式有关
- 接口带宽越大,则Cost值越小
- 用户也可以根据需要通过命令调整接口的Cost

RPC ( Root Path Cost 根路径开销 )
- 在stp的拓扑计算过程中,一个非常重要的环节就是丈量交换机某个接口到根桥的成本, 也即RPC
- 一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加

Port ID (接口ID PID)
- 运行STP的交换机使用接口ID来标识贝格接口,接口ID主要用于在特定场景下选举指定接口
- 接口ID由两部分组成,高4bit是接口优先级,低12bit是接口编号
- 激活stp的接口会维护一个缺省的接口优先级,在华为交换机上,该值为128,用户可以根据实际需要通过命令修改优先级

BPDU ( Bridge Protocol Data Unit 桥协议数据单元 )
- BPDU是STP能过正常工作的根本,BPDU是STP的协议报文
- STP交换机之间会交换BPDU报文,这些BPDU报文携带者一些重要信息,正是基于这些信息,STP才能够顺利工作
- BPDU分为两种类型
- 配置BPDU ( Configuration BPDU )
- TCN BPDU ( Topology Change Notification BPDU ) 拓扑修改通知BPDU
- 配置BPDU 是STP进行拓扑计算的关键,TCN BPDU只在网络拓扑发生变更式才会被触发


BPDU的比较原则
(stp按照如下顺序选择最优的配置BPDU)
根桥ID
RPC
发送者BID
发送者PID
接受者PID(报文中不携带)

BPDU转发
根桥id不变
路径开销加入接口的开销值
桥id变更为自己的id
接口id变更为自己的id

STP计算步骤
- 1. 选根桥,桥id最小的,优先级加MAC,(一般情况下)跟桥上的接口都是DP
- 2. 非根桥上选根端口: 达到根桥最近接口(必须选,只能选一个)
- 3. 每段链路选指定端口: 每段链路有且仅有一个DP

STP端口角色:
DP指定接口
RP根端口
预备端口AP(阻塞端口 block port)

STP端口状态:
disabled : 禁用 , 该接口不能收发BPDU报文,也不能收发业务数据帧, 例如接口down
blocking : 阻塞 , 该接口被STP阻塞,处于阻塞状态的接口不饿能发送BPDU,但会持续侦听BPDU,
且不能收发业务数据帧,也不会进行MAC地址学习
listening : 侦听 , 当接口处于该状态,表明STP初步认定该接口为根接口或指定接口,但接口依然处于STP计算的过程中
此时接口可以收发BPDU,但是不能收发业务数据帧,也不会进行MAC地址学习,确定端口角色
learning : 学习 , 当借口处于改状态时,会侦听业务数据帧,但是不能转发业务数据帧,收到业务数据帧后进行MAC地址学习
forwarding : 转发 , 处于该状态的接口可以正常的收发业务数据帧,会进行BPDU处理
接口的角色需是根接口或指定接口才能进入转发状态
discarding : 丢弃 , 华为部分系统版本对STP做了优化,将前三个状态合并为Discarding状态

注意1:
一般情况下,端口角色会率先选出(秒级),但是端口状态不一定理解切换为Forwarding
刚开始时所有交换机都认为自己时根桥,所有端口角色都是DP口
注意2:
华为部分系统版本对STP做了优化,将前三个状态合并为Discarding状态

RP : Root Port
DP : Designated Port
AP : Alternate Port

stp思想: 先选出有角色的端口,阻塞剩下的端口

RSTP端口状态:
disarding
learning
forwarding















 

通过阻断冗余链路来消除桥接网络中可能存在的路径回环
当前路径发生故障时,激活冗余备份链路,恢复网络连通性

1.选举一个根桥。 CIST Bridge :优先级.MAC地址
2.每个非根交换机选举一个根端口。
3.每个网段选举一个指定端口。
4.阻塞非根、非指定端口。

每一台交换机启动STP后,都认为自己时根桥,自动选举时,谁的mac地址小谁就是根桥
非根交换机在选举根端口时分别依据该端口的根路径开销RPC,对端BID对端PID和本段PID
非根交换机在选举指定端口时分别依据根路径开销.BID,PID
未被选举为根端口或指定端口的端口为预备端口,将会被阻塞

端口类型:
根桥的所有端口都是DP
DP 指定端口
RP 根端口
AP 阻塞备用端口

STP

STP Spanning Tree Protocal, 生成树协议 适用于在局域网中消除数据链路层物理环路的协议

开启stp
stp enable
关闭stp
undo stp enable 更改stp协议: stp mode [stp] 更改优先级: stp priority 0-61440 步进为4096 stp root primary // 直接改为主 查看stp display stp CIST Bridge :32768.4c1f-cca8-72ac // 32768是优先级.MAC地址 查看stp简要信息 display stp brief
查看桥mac
dis bridge mac-address





STP 定时器

stp 定时器 转发延迟 默认十五秒
通过在桥之间交换BPDU(bridge protocol data unit 桥协议数据单元),来保证设备完成生成树的计算过程
BPDU有两个类型
configuration BPDU 根桥发送
TCN BPDU 拓扑改变通知

端口状态迁移 STP
Blocking(20s BPDU保护时间)
Listening(forwarding delay 15s 转发延迟 15秒 可以改)
Learning(forwarding delay 15s)
Forwarding

端口状态迁移 RSTP/MSTP
Discarding (forwarding delay) 不转发数据报, 不学习MAC地址
Learning (Forwarding delay) 不转发数据报, 学习MAC地址
forwarding

端口角色 端口状态 端口行为
未启用STP功能的端口 disabled 不收发BPDU报文, 接收或转发数据
非指定端口或根端口 Blocking 阻塞状态 接收但不发送BPDU,不接收或转发数据
-- Listening 侦听状态 接收并发送BPDU, 不接收或转发数据 不学习MAC地址
-- Learning 学习状态 接收并发送BPDU, 不接收或转发数据 学习MAC地址
指定端口或根端口 Forwarding 转发状态 接受并发送BPDU,接收并转发数据
BPDU Bridge Protocol Data unit 桥协议数据单元
]stp timer ?
  forward-delay  Specify forward delay
  hello          Specify hello time interval
  max-age        Specify max age
]stp timer fprward-delay 2000
改根桥 才能active全部变为20秒 , 改其他的只能修改自己的config time
]stp bridge-diameter ?
  INTEGER<2-7>  Bridge diameter
自动设置延迟, 网络小就2,网络大就加大

RSTP

快速生成树协议

实验之RSTP基础配置 - 陈子硕 - 博客园 (cnblogs.com)

]stp mode rstp

MSTP

多生成树协议

如果只是生成树协议或者快速生成树协议, 在s2是根的时候pc2 ping pc1是走的pc2->s3->s2->s1->pc1
配置了多生成树协议的时候, 在s1 把

]stp region-configuration     //进入stp 区域配置
-mst-region]?
  active          Active region configuration     // 激活区域配置
  region-name     Specify region name    // 区域配置命名
  instance        Spanning tree instance    //  配置实例
  revision-level  Specify revision level    // 配置等级
-mst-region]region-name huawei
-mst-region]instance 1 vlan 10
-mst-region]instance 2 vlan 20

-mst-region]revision-level 1
-mst-region]active region-configuration 
-mst-region]dis this
#
stp region-configuration
 region-name huawei
 revision-level 1
 instance 1 vlan 10
 instance 2 vlan 20
 active region-configuration
#
]display stp brief    //  查看 stp简要信息
]display stp region-configuration   // 查看stp 区域信息
]stp instance 1 root primary     // 在被阻塞的交换机给实例提权为主要
]stp instance 1 priority 0    // 优先级为0最高, 也就是提权为主要,跟上面意思一样, 另一种方法

VLAN

以太网是一种基于CSMA/CD的数据网络通信技术,其特征是共享通信介质
当主机数目较多时会导致安全隐患,广播泛滥,性能显著下降甚至导致网络不可用

在这种情况下出现了VLAN(Viretual Local Area Network)技术解决以上问题s

在典型交换网络中,当某台主机发送一个广播帧或者未知单播时,该数据帧会被泛洪,甚至传递到整个广播域
广播域越大,产生的辣鸡流量,网络安全问题就越严重

关键知识
一个vlan就是一个广播域
一般情况下,一个vlan对应一个网段
PC不认识,不识别Vlan
数据进入交换机后都会嵌入tag
中间透传的交换机也要创建相应vlan
进入交换机的流量如果没有标签,则嵌入PVID
一个接口的PVID只能有一个
access只能配置一个vlan
access口发出报文时一定会剥离vlanip
数据的Vlan ID不在允许的列表中会直接丢弃

vlan注意事项
华为交换机默认所有接口都属于Vlan1
华为交换机接口默认类型为Hybrid/Access
报文在交换机内部处理时必须含有Vlan tag
PVID: port default vlanid, 端口默认所属vlan,任何接口有且仅有一个PVID,默认PVID都是1
- Access口 : PVID同接口Vlan
- Trunk口 : PVID默认1
- Hybrid口 : PVID默认1
Vlan主要的目的是来隔离广播域(并非单播),缩小广播域
默认PC,服务器(非虚拟化环境)不认识VLAN和标签,PC发出的报文不含标签,PC也不能处理带有标签的报文
Vlan tag封装在二层以太网头部
默认情况下,路由器三层几口(非子接口)无法处理带有vlan tag的数据帧
access接口只能属于一个Vlan,但是Trunk接口可以允许多个Vlan的报文通过
Hybrid是一个混合接口,既有Access接口特点的同时具备Trunk接口功能,一个接口可以允许多个VLAN通过
- 且发送数据时允许多个VLAN不打标签,适用于Voice VLAN,基于MAC,IP子网,策略等方式划分vlan 的特殊场景
通常一个Vlan对应一个网段对应一个广播域
不同Vlan默认无法直接通信,想要铜线还需进行Vlan间路由(Vlanif或者单臂路由)
Access接口的PVID无法单独配置,PVID就是当前ACCESS口配置的VLAN
Hyberid的和Trunk区别:Hybrid在发送数据时,无视PVID,允许多个VLAN的报文不打标签通过



虚拟局域网VLAN可以隔离广播域
- 不受地域限制
- 同一VLAN内的设备才能直接进行二层通信

要使交换机能够分辨不通VLAN的报文,需要在报文中添加标识VLAN信息的字段

IEEE802.1Q 协议规定,在以太网数据帧中加入四个字节的VLAN标签,又称VLAN Tag,简称Tag

IEEE802.1Q Tag :
- TPID (标签协议标识符) : 标识数据帧的类型,值为0x8100时表示802.1Q帧
- PRI (优先级) : 标识帧的优先级,主要用于QoS
- CFI (标准格式指示符) : 在以太网环境中,该字段为0,曾经用于令牌环网络,基本不用了
- VLAN ID (Vlan标识符) : 标识该帧所属的VLAN

VLAN取值范围0-4095 可用1-4094
交换机利用VLAN标签中的VID来识别数据帧所属的VLAN,广播帧只在同一VLAN内转发,这就将广播域限制在一个VLAN内
识别带VLAN

vlan接口类型总结
access
接终端,服务器,路由器
Trunk
接交换机,交换机与交换机之间
Hybrid
同时具备Access和Trunk两种特性,用于基于MAC,IP子网,认证策略等划分Vlan的场景,还可以用于Voice Vlan等特殊场景


Access接口处理PVID
接受帧(都在交换机内发生):
接收到Untagged帧:
- 接受该帧并打上该接口PVID
接收到Tagged帧:
- 当该帧的VLAN ID与该接口的PVID相同时,接受该帧
- 当该帧的VLAN ID与该接口的PVID不同时,丢弃该帧
发送帧(都在交换机内发生):
帧的VLAN ID与接口PVID相同:
- 先剥离该帧的Tag.然后再将其从该接口发出
帧的VLAN iD与接口PVID不同:
- 禁止将该帧从该接口发出

Trunk接口处理PVID
接受帧(都在交换机内发生)
接口收到Untagged帧:
- 该帧打上PVID,当PVID在该接口允许通过的VLAN列表里时接收该帧,
- 当PVID不在允许通过的列表中时,丢弃该帧
接口收到Tagged帧:
- 当该帧的VLAN ID 在该接口允许通过的VLAN列表时,接收该帧,否则丢弃
发送帧(都在交换机内发生)
帧的VLAN ID与接口PVID相同:
- 当该帧的VLAN ID在该接口允许通过的VLAN列表中,则将该帧的Tag剥离,然后将其从该接口发送出去
- 如果VLAN ID不在允许通过的VLAN列表中则禁止将该帧从该接口发出
帧的VLAN ID与接口PVID不同:
- 当该帧的VLAN ID在该接允许列表中,则保留该帧的Tag,然后将其从该接口发送出去
- 如果VLAN ID不在允许通过的VLAN列表中,则禁止将该帧从该接口发出

Hybrid接口处理PVID
接受帧(都在交换机内发生):
接口收到Untagged帧:
- 打上PVID,当PVID在该接口允许通过的VLAN列表里时接收该帧
- 当PVID不在允许通过的VLAN列表时,丢弃该帧
接口收到Tagged帧:
- 当该帧的VLAN ID在该接口允许通过的VLAN列表中时,接收该帧,否则丢弃该帧
发送帧(都在交换机内发生) 无视PVID,仅和接口配置有关 :
帧的VLAN ID是该接口允许通过的VLAN ID:
- 当管理员通过命令设置发送该VLAN的帧不携带Tag,则将该帧的Tag剥除,然后将其从该接口发送出
帧的VLAN ID是该接口允许通过的VLAN ID:
- 当管理员通过命令设置发送该VLAN的帧携带Tag,则保留该帧的Tag,然后将其从该接口发送出




 

创建
vlan id   // 创建单个vlan
vlan batch [1id 2id 3id  4 to 10]  // 批量创建多个vlan, 可以手动一个一个添加, 也可以直接用to来范围添加
vlan vlan-name   字符    // 需要在vlan视图内自定义name
vlan] name   //创建vlan 名字
vlan] description   字符    // 创建vlan描述

查看
display port vlan active display vlan [id] //查看所有vlan 或查看单个vlan display vlan brief // 查看vlan简要信息 display vlan summary // 查看vlan 总结 display port vlan // 查看端口vlan Access 端口 // 用于连接终端, 特点是只允许一个VLAN的帧通过 interface] port link-type access // 端口配置为 access口 interface] prot default vlan id // 配置默认vlanid Trunk // 用于连接其他交换机的端口,特点是允许多个VLAN通过,并且除了缺省1vlan外,其他vlan都带标签通过 interface] port link-type trunk // 端口配置为trunk 口
interface] port trunk pvid vlan vlan-id interface] port trunk allow-pass vlan [1id 2id 3id 4 to 10 / all ] //批量添加多个vlan, 可以手动一个一个添加, 也可以直接用to来范围添加 也可以直接全部通过 all Hybrid // 既可以用于连接终端,又可以连接其他交换机,路由设备,特点是允许一个或多个VLAN的帧通过, 并且可以选择是带标签还是不带标签 // 基于MAC地址、协议、IP子网的VLAN只对Hybrid端口配置有效 int] port link-type hybrid // 端口配置为hybrid端口 int] port hybrid pvid vlan id // 配置hybrid口的pvid 也就是能通过的vlan,针对收 int] port hybrid untagged vlan [1id 2id 3id 4 to 10 / all ] // 配置 不带标签的vlanid 针对发

基于MAC划分VLAN
vlan]mac-valn mac-address mac-address [ mac-address-mask | mac-address-length ]
// 通过此命令配置MAC地址与Vlan关联
// mac-address : 指定vlan关联的mac地址,格式为H-H-H,其中,H为四位数的16进制数,可以输入1-4位
// - 如00e0,fc01,当输入不足四位时,标识前面几位为0,如输入e0代表00e0,mac地址不可以设置为全0和全f以及组播地址
// mac-address-mask : 指定mac地址掩码,格式为H-H-H,H为四位数的16进制数,可以输入1-4位
// mac-address-length : 指定Mmac地址掩码长度,整数形式,取值范围时1-48
int]mac-vlan enable
// 使能接口的mac-vlan功能
int]port hybrid untagged vlan *
// 必须使用hybrid接口才可以,并且要把相应的vlan untagged
display mac-vlan mac-address all
// 查看所有的mac-vlan下的所有mac地址


GVRP 中文名为VARP VLAN注册协议,是GARP(Generic Attribute Registration Protocol)通用属性注册协议,
用于注册和注销VLAN属性,是的交换机之间能告相互交换vlan配置信息,动态创建和管理vlan,
用户只需要对少数交换机进行vlan配置即可动态的传播vlan信息 gvrp //全局配置gvrp 必须全部交换机配置才能使用 int] gvrp //接口开启gvrp int] gvrp registration [fixed / forbidden / normal(默认就是这个)]
// gvrp的模式,具体介绍

查看命令:
display port vlan active
// 查看接口的vlan





路由

直连,静态,默认路由

查看:
display ip routing-table  //查看路由表
配置:
ip route-static 网络地址 网络地址掩码 下一跳接收的ip  // 配置静态路由
ip route-static 网络地址 网络地址掩码 下一跳接收的ip  preference  100  // 配置静态路由优先级
ip route-static 0.0.0.0 0.0.0.0 下一跳接收的ip   // 配置默认路由
display ip routing-table protocol    // 查看路由协议
状态
  bgp     Border Gateway Protocol (BGP) routes
  direct  Direct routes
  isis    IS-IS routing protocol defined by ISO
  ospf    Open Shortest Path First (OSPF) routes
  rip     Routing Information Protocol (RIP) routes   static  Static routes
  unr     User network routes

有两条到达相同目的地址的路由:
1: 优先级别相同,都出现在路由表中,互为备份,负载均衡
2: 优先级别不同,显示优先级别高的(preference小),路由备份

Vlan间通信

VLAN间路由.PDF

实际网络部署中一般会将不同IP地址段划分到不同的Vlan
同vlan且同网段的pc之间可以直接进行通信,无需借助三层转发设备,该通信方式称为二层通信
vlan之间需要通过三层通信实现互访,三层通信需要借助三层设备

物理接口:

就是使用路由器的两个接口配置ip作为网关连到交换机并配置不同的vlan,实现不同vlan间的互访

坏处是一个vlan就要一个接口,路由器的接口又是非常少的,所有少的时候还能用,多vlan就算了

子接口(单臂路由):

子接口(Sub-interface) 是基于路由器以太网接口所创建的逻辑接口,以物理接口ID+子接口ID进行标识
子接口通物理接口一样可以进行三层转发
子接口不同于物理接口,可以终结携带VLAN Tag的数据帧
基于一个物理接口创建多个子接口,将该物理接口对接到交换机的Trunk接口,即可实现使用一个物理接口为多个Vlan提供三层转发服务
交换机连接路由器的接口类型配置为Trunk,根据报文的VLAN Tag不同,
路由器将收到的报文交由对应的子接口处理

比如要在g0/0/0口配置子接口,不需要对g0/0/0做任何配置 ]interface g0/0/0.10 // 进入子接口 int.10] dot1q termination vid 10
// .1q=802.1q termination=在此接口处理带有特定vlan标记的数据包, vid 10 = vlan id 10 int.10] ip address ip mask
int.10] arp broadcast enable
// 开启arp广播

三层交换vlanif接口(SVI):

二层交换机(Layer 2 Switch) 指的是只具备二层交换功能的交换机
三层交换机(Layer 3 Switch) 指的是除了具备二层功能外,还支持通过三层接口(如Vlanif接口)实现路由转发功能

友商也叫SVI(Switch Virtual Interface)技术

Vlanif接口是一种三层的逻辑接口,支持VLAN Tag的剥离和添加,因此可以通过Vlanif接口实现vlan之间的通信

vlanif接口编号与所对应的vlan相同,如vlan 10 对应 vlanif 10

PC1通过本地IP地址,本地掩码,对端IP地址进行计算,发现目的设备PC2不在同一个网段,判断该通信为三层通信
将去往PC2的流量发给网关,PC1发送的数据帧:源MAC=PC1_MAC 目的MAC=Vlanif_MAC

交换机收到PC发送的去往PC2的报文,经解封发现目的MAC为Vlanif10接口的MAC地址,所以将报文交给路由模块处理
路由模块解析发现目的IP为xxx,非本地接口存在的ip地址,因此需要对该报文进行三层转发,
查找路由表后,匹配中Vlanif20产生的直连路由

因为匹配的是直连路由,说明已经到达最后一跳,
所以交换机在ARP表中查找192.168.20.2,并获取MAC,交由交换模块重新封装为数据帧
交换模块查找MAC地址表以明确报文出接口,是否需要携带Vlan Tag,
最终交换模块发送的数据帧:源MAC=Vlanif_MAC, 目的MAC=PC2_MAC, Vlan Tag = None
如果是Trunk口Vlan Tag就需要打标签了



interface vlanif 10 // 进入vlan10接口 前提必须创建vlan10

三层通信过程

具体可查看VLAN间路由PDF

小知识:
在华为某些-H型号的交换机中可以使用
undo port-switch
将二层接口转为三层接口

动态路由

RIP

Routing information protocol 路由信息协议
基于距离矢量算法的路由协议,优先级为100,rip1和rip2
支持水平分割,毒性逆转和触发更新等工作机制防止路由环路
基于UDP传输,端口号520
RIPv1发送协议报文时不携带掩码,路由交换过程中有时会出现错误,不支持认证,只能以广播方式发送协议报文
RIPv2是英中无类别路由协议,协议报文中携带掩码信息,支持VLSM和CIDR
支持以组播方式发送路由更新报文,组播地址为224.0.0.9 减少网络与系统资源消耗
支持对协议报文进行验证,并提供明文验证和md5验证两种,增强安全性

基础配置:
rip [1-65535]     // 在指定网段接口上使能RIP 如果不填默认为1
rip] network 要公布的网络地址   // 配置网络地址
rip] version [1/2]  // 指定全局rip版本

加密 必须是v2版本:
int] rip authentication-mode     // 在接口中配置认证

  hmac-sha256     //更安全的,没被破解
  md5     MD5 authentication   // md5认证,现在被破解了
  simple  Simple text authentication  // 明文, 抓包能抓出来密码
int] rip authentication-mode md5 // 配置md5
  nonstandard  Nonstandard MD5 authentication packet format (IETF)    // 非标准格式
  usual        Huawei MD5 authentication packet format   // 通常使用的
int] rip authentication-mode md5  设置的密码   // 所有发送接收端口都要配置

汇聚:
rip] summary  always   
//华为路由器会默认开启水平分割,虽然路由器默认开启了汇聚,但还会分割,使用always可以强制不分割
int] undo rip split-horizon  
// 既然默认开启,关了水平分割也可以实现汇聚, 这是两种自动方法
int] rip summary-address  计算后的汇聚地址  子网掩码不能写1的个数
// 手动配置汇聚地址
兼容性:
rip version 2 ? <cr>
  broadcast  RIP version 2 broadcast mode which is compatible with RIP version 1 // 广播
  multicast  RIP version 2 multicast mode   // 多播
// 结论就是配一样的版本,别搞这么复杂

定时器:
display rip 中:
    Update time 30sec  // 更新时间
    AgeA time 180 sec   // 老化时间
    Garbage-collect 120 sec   // 回收站暂存时间
display rip 定义的rip号 datebase   // 查看rip数据库
rip] timers rip update-time  age-time garbage-collecte time  
// 设定rip,更新,老化,回收站暂存时间 ,并且所有路由器都要进行更改才行 , 所以改这玩意干嘛

协议优先级:
rip]preference [1-255]  // 见上图
rip] silent-interface 接口    // 配置接口工作在抑制状态
int] undo rip output   // 闭嘴
rip] peer ip地址   // 向那个地址单播发送,减少网络拥塞
int] ip address ip地址 sub   // 配置从属地址,全部都配到一个网段,解决了不连续子网rip的问题
ripv2] undo summary   // 当所有版本都是v2的时候,把自动汇总关了就完了
int] rip split-horizon // 使能RIP水平分割功能
int] rip poison-reverse  // 使能RIP毒性逆转功能
// 水平分割就是谁给我发的我不往回发  只进不出
// 毒性逆转就是谁给我发的我在发送给他的时候cost值是16就是不可达,他也就不接收了  给你个垃圾要吗
// 这俩只能用一个, 因为一个能发一个不能发
// 触发更新只能在直连链路断掉后触发,不用配置  不拔主线我就不触发,哎,就是玩
int] rip metricin  
int] rip metricout

OSPF

Open Shortest Path First 开放最短路径优先,基于链路状态的自治系统内部路由协议
链路状态路由协议通过的是链路状态而不是路由表
运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA(Link State Advertisement 链路状态宣告)
LSA描述了路由器接口的状态信息,录入接口的开销,连接的对象等.
运行OSPF的每台路由器都会长生LSAs,路由器将接收到的LSAs放入自己的LSDB(Link State DataBase 链路状态数据库)
路由器通过LSDB,掌握了全网的拓扑.LSDB汇总了网络中路由器对于自己接口的描述
每台路由器基于LSDB,使用SPF(Shortest Path Firest 最短路径优先)算法进行计算,每台路由器都计算出一棵以自己为根的,无环的,拥有最短路径的"树"
仅传播对端设备不具备的路由信息,网络收敛迅速,并有效避免了网络资源浪费
工作于IP层之上 协议号为89 组播地址发送协议包
寻找邻居,建立邻接关系, 链路状态信息传递, 计算路由,生成路由表项

多区域的设计使得ospf能够支持更大规模的网络

OSPF主要用于园区网络中

OSPF基本术语:

区域
OSPF Area 用于标识OSPF的区域
区域是从逻辑上讲设备划分为不同的组,每个组用区域号(Area ID)来识别

Router-ID
router identifier 路由标识符,用户在一个ospf域中唯一的标识一台设备
router-id可以手工也可以自动,一般都是手动配置
配置方法1:
ospf 1 router-id 1.1.1.1  
配置完成后需要重启一下ospf进程:
>reset ospf process
配置方法2:                     (推荐,全局配置)
]router id 1.1.1.1

度量值(开销)
OSPF使用Cost(开销)作为路由的度量值.每一个激活了OSPF的接口都会维护一个接口Cost值,默认的cost值=100Mbit/s ÷ 接口带宽. 100Mbit/s是默认参考值,可以配置
笼统的说,一条OSPF路由的Cost值可以理解为是从目的网段到本路由器沿途所有入接口的Cost值累加
查看方法:
dis ospf int g*/*/*
修改开销值的方法:
g*/*/*]ospf cost 5
修改默认参考值的方法:    (只能调整自己的开销)
ospf-*]bandwidth-reference <1-2147483648>(Mbits/s)

ospf协议报文类型
ospf有五种类型的协议报文,这些报文在ospf路由器中间交互中起不同的作用.
hello: 周期发送,用来发现和维护ospf邻居关系,默认是10秒发送一次
Database Description(DD) : 描述本地LSDB的摘要信息,用于两台设备进行数据库同步
Link State Request(LSR) : 用于想对方请求所需要的LSA,设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文
Link State Update(LSU) : 用于向对方发送其所需要的LSA,LSU内包含一条或多条LSA
Link State ACK(LSA) : 用来对收到的LSA进行确认

OSPF三大表项

OSPF有三张重要的表项:

OSPF邻居表:
OSPF在传递链路状态信息之前,需要先建立OSPF邻居关系
OSPF的邻居关系通过交互Hello报文建立
OSPF邻居表示了OSPF路由器之间的邻居状态,使用display ospf peer 查看

LSDB表:
LSDB会保存自己产生的以及从邻居收到的LSA消息
Type表示LSA的类型,AdvRouter标识发送LSA的路由器
使用命令行  diskplay ospf lsdb   查看LSDB表

OSPF路由表
OSPF路由表和路由器路由表是两种不同的表项.
OSPF路由表中包含Destination,Cost和NextHop等指导转发的信息.
使用display ospf routing 查看OSPF路由表

OSPF 邻居建立

OSPF路由器之间的关系
关于ospf路由器之间的关系有两个zhongzhong'ya哦的概念,邻居关系和邻接关系.
考虑一种简单的拓扑,两台路由器直连.在双方互联接口上激活OSPF,路由器开始发送及侦听Hello报文,再通过Hello报文发现彼此后,这两台路由器便形成了邻居关系
邻居关系的建立只是一个开始,后续会进行一系列的报文交互,例如前文提到的DD,LSR,LSU和LS ACK等,当两台路由器LSDB同步完成,并开始独立计算路由时,这两台路由器形成了邻接关系

OSPF完成邻接关系的建立有四个步骤
建立双向邻居关系
协商主/从(Master/Slave)
交互LSDB信息(摘要信息)
跟新LSA,同步双方LSDB
计算路由(由路由器独立计算,不参与邻居交互)

初始状态:
R1 router-id : 1.1.1.1
R2 router-id : 2.2.2.2
R1发送hello报文:"我是1.1.1.1,我还不知道链路上有谁",R2接收到后发现了邻居,将其添加到路由表,将1.1.1.1的状态为init 
R2发送hello报文:"我是2.2.2.2,我发现了邻居1.1.1.1", R1接受后因为知道R2已经发现了R1了,所以状态设置为2-Way
R1发送hello报文:"我是1.1.1.1,我发现了邻居2.2.2.2", R2接收到后知道R1已经发现我了,将1.1.1.1的邻居状态改为2-Way
邻居建立完成

邻接关系建立流程
R1 router-id : 1.1.1.1
R2 router-id : 2.2.2.2

Exchange start : 
R1发送DD报文(内容为空,序列号为X): 我是Master,我的Router-ID是1.1.1.1
R2发送DD报文(内容为空,序列号为Y): 我是Master,我的Router-ID是2.2.2.2
Exchange (以Router-ID更大的R2为主) :        (在Exchange阶段, 双发交换DD报文,用于描述自己所拥有的LSA的摘要信息)
R1发送DD(序列号为Y): 这是我LSDB中的LSA摘要信息
R2发送DD(序列号为Y+1递增): 这是我的LSDB中的LSA摘要信息
R1发送DD(序列号为Y+1递增): 确认主路由器的DD报文
Loading :
R1 发送LSR 报文 请求 XXX的LSA的完整信息
R2 发送LSU 报文 这是你请求的XXX LSA的完整信息
R1 发送LSU ACK 报文 确认收到LSU中携带的XXX LSA
R1 发送LSR 报文 请求 XXX的LSA的完整信息
......... 反过来也是一样的
最终区域内的LSDB同步,状态改为FULL

OSPF网络类型
OSPF网络类型是一个非常重要的接口变量,这个变量将影响OSPF在接口上的操作,例如采用什么方式发送OSPF报文,以及是否需要选举DR,BDR等
接口默认的OSPF网络类型去决定与接口所使用的数据连路程封装.
OSPF有四种网络类型,可以使用以下方式查看:
G0/0/0]ospf network-type ?
Broadcast  重要 : BMA (Broadcast Multiple Access) 也被称为Boradcast,指的是广播,经典例子时使用Ethernet 以太网时,默认的网络类型应该是BMA(Broadcast)
nbma  (Non-Broadcast Multiple Access): 帧中继(frame-relay)用的,现在基本不用了
p2mp (point-to-multipoint) : 相当于将多条p2p链路的一段进行捆绑得到的网络,因为没有一种连路程协议会被缺省为P2MP,所以必须手动指定p2mp网络类型,常见的做法是将非全联通的NBMA改为点到多点的网络
p2p  (point-to-point) : 在一段链路上只能连接两台网络设备的环境,经典例子是ppp链路,当接口采用PPP封装时,OSPF应该使用P2P网络类型

一般情况下,链路两端的OSPF接口网络类型必须一致,否则双方无法建立邻居关系


DR 与 BDR 的背景
MA(Multi-access)多路访问网络有两种类型: 广播型多路访问(BMA) 以及非广播型多路访问网络(NBMA)
以太网是一种典型的广播型多路访问网络
在MA网络中,如果每台OSPF路由器都与其他的所有路由器建立OSPF邻接关系,便会导致网络中存在过多的OSPF邻接关系,怎家设备负担,也增加了网络中泛洪的OSPF报文数量
当拓扑出现变更,网络中的LSA泛洪可能会导致带宽的浪费和设备资源的损耗
为优化MA网络中的OSPF邻接关系,OSPF指定了三种OSPF路由器身份
DR(Designated Router, 指定路由器)
BDR(Backup Designated Router,备用指定路由器)
DRother(Designated Router other,非指定路由器)
只允许DR,BDR和其他OSPF路由器建立邻接关系,DRother之间不会建立全毗邻的OSPF邻接关系,双方停滞在2-way状态
BDR会监控DR的状态,并在当前DR发生故障时接替其角色
只有在MA网络中才会选举DR和BDR,在点到点(P2P)网络中不会选举
一旦已经选举完DR和BDR,执行不抢占原则,选举时间是40秒

OSPF域与单区域

OSPF域(Domain): 一系列使用相同策略的连续OSPF网络设备所构成的网络
OSPF路由器在同一个区域(Arae)内网络泛洪LSA,为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步
如果OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸多问题:
- LSDB越来越大,同时导致OSPF路由表规模增加.路由资源消耗多,设备性能下降,影响数据转发.
- 基于庞大的LSDB进行路由计算变得困难.
- 当网络拓扑变更时,LSA全域泛洪和全望SPF重寄算计带来巨大负担.

OSPF多区域

OSPF引入区域(Area)的概念.将一个OSPF域划分成多个区域,可以使OSPF支撑更大规模组网
OSPF多区域的设计减小了LSA泛洪的范围,有效的把拓扑变化的影响控制在区域内,达到网络优化的目的
在区域边界可以做路由汇总,减小了路由表规模
多区域提高了网络拓展性,有利于组建大规模的网络
在两个OSPF区域之间可以进行路由汇总

OSPF路由器根据其位置或功能不同,有这样几种类型:
- 区域路由器(Internal Router)
- 区域边界路由器(Area Border Router)
- 骨干路由器(Backbone Router)
- 自治系统边界路由器ASBR(Autonomous System Boundary Router)
基础配置:
]ospf [process-id \ router-id router-id]   
// process-id 用于标识OSPF进行,默认进程号为1,OSPF支持多进程,在同一台设备上可以运行多个不通的OSPF进程,他们之间互不影响,彼此独立
// Router-id 用于手工指定设备的ID号,如果没有通过命令指定ID号,系统会从当前接口的IP地址中自动选取一个作为设备的ID号. ospf-*] area [1-2^32/x.x.x.x]
// 区域号 用数字或点分十进制 ospf-*-x.x.x.x] network x.x.x.x 反掩码
// network命令用来指定运行OSPF协议的接口和接口所属的区域
g*/*/*] ospf cost [1-65535]
// ospf cost 命令用来配置接口上运行ospf协议所需的开销,默认情况下, ospf会根据该接口的带宽自动计算
ospf-*] bandwidth-reference [1-2^31]
// bandwidth-reference 名来用来设置通过公式计算接口开销所依据的带宽参考值.单位是Mbit/s ,默认是100Mbit/s
g*/*/*] ospf dr-priority [0-255]
// ospf dr-priority 命令用来设置接口在选举DR时的优先级.priority越大,优先级越高
查看信息: display ospf interface
// 查看 ospf 接口 display ospf peer
// 查看邻居 display IP routing-table protocol ospf
// 查看路由表中的ospf协议 display ospf lsdb
// 查看ls数据库
认证: 区域认证: // 区域密钥都一致 ospf * x.x.x.x] authentication-mode ? hmac-md5 Use HMAC-MD5 algorithm keychain Keychain authentication mode // 密钥 md5 Use MD5 algorithm simple Simple authentication mode // 简单密码 plain 设置的密码 直接看的到,还不如直接回车,但是抓包还是能抓到 // 在边界路由两边不同区域配置不通的验证方式也可以实现互通 链路认证: // 对某个邻居专设置认证和密钥, 两个都设置优先使用链路认证 int] authentication-made ....... // 之后跟区域设置一样 被动接口: // 就像rip的抑制状态 ospf *] silent-interface [接口名 or 全部接口all] // 抑制一个或全部接口 // all的作用可以先全部抑制,在undo单个接口,让单个接口可以发送接收ospf信息

链路聚合

查看: 
dispaly eth-trunk 1  // 查看链路聚合1 号
display interface eth-trunk 1   // 查看接口链路聚合1 号
创建:
interface Eth-Trunk [0-63]   // 进入链路聚合虚拟接口 接口号0-63
Eth-Trunk*] mode ?
  lacp-static  Static working mode    // 静态链路聚合控制协议
  manual       Manual working mode   // 手动
手动模式(默认模式): 
Eth-Trunk*] mode manual load-balance  // 配置手动负载均衡
int] Eth-Trunk *   // 把接口加入到Eth-Trunk 自定接口号 中
lacp模式:
Eth-Trunk*] mode manual lacp-static   // 模式改为静态链路聚合控制协议 如果之前创建过手动manual 需要把接口undo掉
Eth-Trunk*] max active-linknumber [1-8]   // 链路最大连接数量
int] Eth-Trunk *  // 把接口加入到Eth-Trunk 自定接口号 中
lacp priority [0-65535]   // 设置系统优先级,数字越小越高
int] lacp priority  [0-65535]   // 设置接口优先级,数字越小越高
Eth-Trunk*] lacp preempt enable  // 设置抢占模式

DHCP

DHCP工作原理

获取地址
客户端发送广播DHCP Discover 用于发现当前网络中的DHCP服务器 服务端发送单播DHCP Offer 携带分配给客户端的IP地址 客户端发送广播DHCP Request 告知服务器自己将使用该ip地址 服务端发送单播DHCP Ack 最终确认客户端可以使用该IP地址

租期更新
客户端将在50%租期时发送租期更新报文
客户端发送单播DHCP Request 向服务器请求继续使用该IP地址,延长使用期限
服务端发送单播DHCP Ack 告知客户端可以继续使用该IP地址,并将可使用时间刷新到租期时长(lease)

如果在50%租期时客户端未得到源服务器的回应,则客户端在87.5%租期时会广播发送DHCP Request,任意一台DHCP服务器端都可回应,该过程称为重绑定



 DHCP搭建

 


查看:
display ip pool   // 查看地址池

基于接口配置dhcp服务器
dhcp enable    // 开启dhcp服务
interface 接口名    // 进入要成为dhcp服务器的接口
int] dhcp select interface     // 为接口选择接口类型的dhcp  连这个接口的交换机或者pc就可以获取到
int] dhcp server lease day 8  // 租期为八天  设置租期
int] dhcp server excluded-ip-address  1.1.1.1 1.1.1.10  // 设置排除的ip地址从.1到.10
int] dhcp server dns-list 114.114.114.114   // 可以配置多个,pc只会获取前两个
int] dhcp server lease {day day [ hour hour [ minute minute ] ] unlimited } // 配置租期时间 // 这种子网掩码和网关就自动配置了, 子网掩码跟接口一致,网关就是这个接口 // 配置多个dhcp就得每个dhcp进接口来一遍 基于全局地址池的DHCP 先配好接口地址,也就是网关,全局应该会根据当前接口的地址在地址池中找相应的网关的地址池 dhcp enable ip pool 起个名 // 进入全局的地址池 pool-*] network 1.1.1.0 mask 24 // 配置地址池 pool-*] gatway-list 1.1.1.1 // 配置网关 pool-*] dns-list 114.114.114.114 // 配置dns pool-*] lease {day day [ hour hour [ minute minute ] ] unlimited } // 租期时间 pool-*] excluded-ip-address 1.1.1.1 1.1.1.10 // 排除的ip int] dhcp select global // 把网关配置为全局地址池的网关 // 配置多个dhcp 从起名在来一遍 DHCP中继 路由之间配置好静态路由或动态路由 配置地址池使用全局或者接口都行 为单个下级路由器接口配置中继 int] dhcp select relay // 中继路由器连接交换机或者pc的接口配置为中继 dhcp realy server-ip 主服务设置的网关ip // 中间有很多个路由器也没事 dhcp组中继 dhcp server group 起个名 // 创建dhcp组 group-*] dhcp-server 1.1.1.1 // 配置dhcp的主服务器 int] dhcp select relay // 中继路由器连接交换机或者pc的接口配置为中继 dhcp realy server-serlect 组名

NAT

NAT概述

IPv4公有地址资源越发短缺
私有地址换个马甲换成公网

静态NAT
每个私有地址都有一个与之对应且固定的公有地址,即私有地址和公有地址之间的关系是一对一映射
支持双向互访: 内网能主动访问公网,公网能主动访问内网,因为是一对一嘛

动态NAT
静态NAT严格的一对一进行地址映射,这就导致即使内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态,为了避免浪费,动态NAT提出了地址池的概念
所有可用的公网地址组成地址池
当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为 in use 当主机不在访问外部网络时回收分配的地址,重新标记为 Not use

NAPT
动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-Pat(No-Port Address Translation, 非端口地址转换),公有地址和私有地址还是一对一的映射关系,无法提高公有地址利用率
NAPT(Network Address and Port Translation, 网络地址端口转换): 从地址池中选择地址进行地址转换时不仅转换ip地址,同时也会对端口号进行转换,从而实现公有地址对私有地址的1:N映射,有效提高公有地址利用率

Easy IP
公网地址固定不固定都可以使用
实现原理和NAPT相同,同时转换IP地址,传输层端口,区别在于Easy IP没有地址池的概念,使用接口地址作为NAT转换的公有地址
Easy IP适用于不具备固定公网ip地址的场景: 比如通过DHCP,PPPoE拨号获取公网地址,可以直接使用获取到的动态地址进行转换

NAT Server
指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用
外网主机主动访问[公有地址:端口]实现对内网服务器的访问
可以和其他NAT同时配置

Easy IP配置:

Easy IP:
]acl number 2000 2000] rule permit source 192.168.1.0 0.0.0.255

int]ip address 12.1.1.1 255.255.255.0
int]nat outbound 2000

NAT Server 配置

int] nat server protocol tcp global 12.1.1.1 80 inside 192.168.1.2 8080
// 固定ip转换
int] nat server protocol tcp global current-interface 80 inside 192.168.1.2 8080
// 配合Easy IP端口转发
// 这不就是端口转发




静态NAT配置

方式一: 接口视图下配置静态NAT
int] nat static globle { globle-address } inside { host-address } 
// globel用于配置共有地址,inside参数配置内部私有地址
方式二: 系统视图下配置静态NAT
] nat static globle { globle-address } inside { host-address }
// 配置命令相同,视图为系统视图,之后在具体的接口里开启静态NAT
int] nat static enable

int] nat static global 12.1.1.3 inside 192.168.1.2

动态NAT/NAPT配置介绍

]nat address-group group-index start-address end-addresss
// 配置公有地址范围,其中group-index为地址池编号,start-address,end-address 分别为地址池起始地址,结束地址
]acl number
2000]rule permit source source-address source-wildcard
// 配置基础ACL,匹配需要进行动态转换的源地址范围
int] nat outbound acl-number address-gourp group-index [ no-pat ]
// 接口下关联acl与地址池进行动态地址转换
// 输入no-pat参数就是动态NAT,不输入就是NAPT

 调试命令

 

dis nat session all
// 查看 nat 对应转发表(动态nat就是临时的)
dis nat address-group
// 查看创建的地址池




 

 

 

 

PPP


HDLC

广域网设备的角色
CE(Customer Edge, 用户边缘设备)
- 用户端连接服务提供商的边缘设备. CE连接一个或多个PE. 实现用户接入
PE(Provider Edge, 服务提供商边缘设备)
- 服务提供商链接CE的边缘设备. PE同事连接CE和P设备,是重要的网络节点
P (Provider, 服务提供商设备)
- 服务提供商不链接任何CE的设备

PPP 协议概述
ppp (point to point protocol)
是一种常见的广域网数据链路层协议,主要用于在全双工的链路上进行点到点的数据传输封装
PPP提供了安全认证协议族:
PAP(Passwd Authentication Protocol , 密码验证协议)
CHAP (Challenge Handshake Authentication Protocol, 挑战握手认证协议)
PPP 具有良好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE, 基于TLV(Type Length Value)实现
PP协议提供LCP (Link Control Protocol, 链路控制协议) 用于各种链路层参数的协商, 例如最大接受单元,认证模式等.
PPP协议提供各种NCP ( Network Control Protocol, 网络控制协议),如IPCP(IP Control Protocol,IP控制协议),用于各网络层参数的协商,更好的支持了网络层协议

PPP 链路建立流程
1. 链路层协商
- 通过LCP报文进行链路层参数协商,建立链路层连接
2. 认证协商(可选)
- 通过链路建立阶段协商的认证方式进行链路认证
3. 网络层协商
- 通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商


NCP协商-静态ip地址协商
ppp认证协商后,双方进入NCP协商阶段,协商在数据链路上所传输的数据包的格式与类型,异常坚定IPCP协议为例,它分为静态IP地址协商和动态IP地址协商
静态IP地址协商需要手动在链路两端配置IP地址

ppp两端的ip可以不在同一个网段, 比如1.1.1.1和2.2.2.2 因为二层是定死的,而且双方在NCP协商时发送IPCP报文时会自动创建直连路由


PPPoE(PPP over Ethernet, 以太网承载PPP协议) 是一种把PPP帧封装到以太网帧中的链路层协议, PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入服务器
PPPoE集中了PPP和Ethernet两个技术的有点,既有以太网灵活组网优势,又可以利用PPP协议实现认证,计费等功能
PPPoE常见应用场景有家庭用户拨号上网,企业用户拨号上网等
PPPoE三个阶段:
- PPPoE 发现
- 用户接入,创建PPPoE虚拟链路
- PPPoE 会话
- PPP协商内容包括LCP协会三个,PAP/CHAP认证,NCP协商等阶段
- PPPoE 终结
- 用户下线,客户端断开连接或者服务端断开连接

PPPoE 报文结构 请看下图 PPPoE报文格式

广域网
早期广域网常用的数据链路层协议包括PPP,HDLC和ATM等,后期随着全网IP化的演进,基于IP技术的Internet快速普及
但是基于最长匹配算法的IP技术必须使用软件查找路由,转发性能底下,因此IP技术的转发性能称为当时限制网络发展的瓶颈

传统的IP路由转发
采用逐跳转发,数据报文经过每一台路由器,都要被解封装查看报文网络层信息
然后根据路由最长匹配原则查找路由表指导报文转发
各个路由器重复进行解封装查找路由表在封装的过程,所以转发性能低

MPLS -> HCIP
MPLS (Multiprotocol Label Switching, 多协议标记交换)
最初是为了提高路由器的转发速度而提出的,与传统IP路由方式相比
在数据转发时,只在网络边缘解析报文头,后续节点只基于标签转发
而不用在每一跳都解析报文头,减少软件处理流程节约了处理时间
随着路由器性能的提升,路由查找速度已经不是阻碍网络发展的瓶颈
这使得MPLS在提高转发速度方面不在具有明显优势
但是MPLS支持多层标签和转发平面面向连接的特性使其在:
VPN ( Virtual Private Network,虚拟专用网 )
TE ( Traffic Engineering , 流量工程 )
QoS ( Quality of Service , 服务质量 )
等方面得到广泛发展
MPLS是一种IP骨干技术
MPLS是一种隧道技术,在IP路由和西医控制协议的基础上,向网络层提供面向连接的交换,能够提供更好的QoS服务
MPLS标签指导报文转发的过程中,使用本地标签查找替代穿透IP转发的路由查找,大大提高转发效率
MPLS转发过程中使用的标签,既可以通过手工静态配置,又可以通过动态标签分发协议分配
运营商会有一种业务就叫MPLS VPN专线

MPLS转发存在的问题
MPLS的标签分发又静态和动态两种方式,均面临着不同的问题
静态标签分发为手工配置
- 随着网络规模的不断扩大,网络拓扑易变化,静态手工配置标签不适应大型网络需求
动态标签分发的问题
- 一方面在于部分动态标签协议(LDP)本身并无算路能力,需要依赖IGP进行路径计算,同时控制面协议复杂
设备之间需要发送大量的消息来维持邻居及路径状态,良妃了链路带宽及设备资源,
- 另一方面部分标签分发协议虽然支持流量工程,但是配置负责,不支持负载分担,需要大量协议报文维护路径正常工作
同时每台设备都是独立存在,只知道自己的状态,设备之间需要交互信令报文,也会浪费链路带宽及设备资源



SR -> HCIE
为解决传统IP转发和MPLS转发的问题,业界提出了SR( Segment Routing, 分段路由)
SR的转发机制有很大改进,主要体现在以下几个方面:
1. 基于现有协议进行扩展
- 扩展后的IGP/BGP既有标签分发能力,因此网络中无需其他任何标签分发协议,实现协议简化
2. 引入源路由机制:
- 基于源路由机制,支持通过控制器进行集中算路
3. 由业务来定义网络或者说 SDN ( Software Difined Network )
- 业务驱动网络,由应用提出需求(时延,带宽,丢包率等),控制器收集网络拓扑,带宽利用率,时延等信息,根据业务需求计算显式路径
SR将网络路径分成一个个的段(Segment),并且为这些段分配SID(Segment ID)
SID的分配对象有两种,转发节点或者邻接链路,详细图看HCIA核心-广域网-50页
SR的部署方式
有控制器部署
- iMaster NCE (这两年见的真多)
- 控制器配合方式由控制器收集信息,预留路径资源和计算路径
- 最后将结果下发到头结点,是更为推荐的部署方式
无控制器部署
- 手工部署


SR MPLS
SRv6




PPPoE 报文格式:

PPP报文格式:

 

 

 

int S接口名] link-protocol ?    // 必须是广域网接口才行
  atm   ATM protocol
  fr    Select FR as line protocol
  hdlc  Enable HDLC protocol   // 思科默认
  ppp   Point-to-Point protocol   // 华为默认
  tdm   TDM (Time Division Multiplexer) protocol

PPP 认证:
PAP 认证:   // 二次握手 明文
   主验证方:
]aaa     // 进入aaa视图
aaa] local-user local-user password { cipher | irreversible-cihper } ******  // 配置本地账户
aaa] local-user admin service-type ppp   // 配置用户服务类型为ppp
int S接口名] ppp authentication-mode pap  // 在接口开启ppp的pap认证
  被验证方:
int S接口名] ppp pap local-user local-user password { cipher  | simple } ******  // 使用主验证方配置号的账号密码登陆

CHAP 认证:  // 三次握手 加密
   主验证方:
aaa   // 进入aaa视图
aaa] local-user admin password cipher ******  // 配置本地账户
aaa] local-user admin service-type ppp   // 配置用户服务类型为ppp
int S接口名] ppp authentication-mode chap // 在接口开启ppp的pap认证
  被验证方:
int S接口名] ppp chap user admin   // 配置用户
int S接口名] ppp chap password cipher ******   // 配置密码
// 跟pap 区别 被验证方分两次配置用户密码, 抓包是加密的

NCP配置:
无ip一方配置
int S] ip address ppp-negotiate
有ip一方配置
int S] remote address 12.1.1.1 // 没有掩码

PPPoE 基础配置
- 客户端
]interface Dialer number
// 进入虚拟dialer接口
dialer1] link-protocol ppp
dialer1] ip address ppp-negotiate
dialer1] ppp pap local-user local-user password { cipher | simple } ******
dialer1] tcp adjust-mss 1200
// 优化项 华为推荐
dialer1] dialer user username
// 配置拨号接口用户名,此用户名必须与对端服务器用户名相同
dialer1] dialer-group group-number // 可选项
// 将接口置于一个拨号访问组
dialer1] dialer bundle number
// 指定当前拨号接口使用的拨号绑定
dialer] nat outbound 2001
// 如果要把这个接口做nat,要在dialer接口上绑
int]pppoe-client dial-bundle-number number
// 在接口与dialer-bundle进行绑定
] ip route-static 0.0.0.0 0.0.0.0 dialer1
// 需要把流量都走 dialer1 口

- 服务端
] interface Virtual-Template 1
VT] ppp authentication-mod pap
VT] remote address pool pool-name
VT] ip address *.*.*.*.* **
] int g*/*/*
int] pppoe-server bind Virtual-Template 1
] aaa
aaa] local-user user-name password [cipher] ******
aaa] local-user user-name service-type ppp
] ip pool pool-name
pool] network 12.1.1.0 mask 24






ACL

ACL有执行顺序,按rule 大小来依次执行, 遇到匹配规则后后续所有规则都不会再执行

ACL的分类和标识

基于ACL规则定义方式的分类
基本ACL 2000-2999 仅使用报文的源地址,分片信息和生效时间段信息来定义规则
高级ACL 3000-3999 可使用IPv4报文的源地址,目的地址,协议类型,icmp类型,TCP源/目的端口号,UDP源/目的端口号,生效时间段等来定义规则
二层ACL 4000-4999 使用报文的以太网帧头部信息来定义规则,如根据源MAC地址,目的MAC地址,二层协议类型等.
用户自定义ACL 5000-5999 使用报文头,偏移位置,字符串掩码和用户自定义字符串来定义规则
用户ACL 6000-6999 即可使用IPv4报文的源地址或源UCL(User Control List)组,也可以使用目的ip地址或者目的UCL组,ip协议类型,ICMP类型,TCP源/目的端口号,UDP源/目的端口号等来定义规则

基于ACL配置方法的分类
数字型ACL 传统的ACL标识方法,创建ACL时,制定一个唯一的数字标识该ACL
命名型ACL 通过名称代替编号来标识ACL

如果某ACL没有被调用,该ACL不起任何作用
针对接口下traffic-filter调用ACL,一个接口的同一个方向,只能调用一个ACL
通常情况下,一个ACL里面可以有多个rule规则,从上往下依次执行
数据包一旦被某rule匹配,就不再继续向下匹配
用来做流量过滤时,默认隐含放过所有(华为设备)

调试命令
dis acl all

 

]time-range [name] 09:00 to 18:00 working-day
]acl 3000
3000]rule deny 2.2.2.2 0 time-range [name]

]acl [number] acl-number [ match-order config]
// 使用编号2000-2999创建一个数字型的基本acl,并进入基本acl视图
2000]rule [rule-id] {deny | permit} [source {source-address source-wildcard | any} | time-range time-name]
// 基本acl命令格式

高级acl命令格式:
当参数protocol为ip时:
3000]rule [rule-id] {deny | permit} ip [ destination { destination-address destination-wildcard | any }|
source { souce-address source-wildcard | any} | time-range time-name | dscp dscp | [tos tos | precedence precedence ] ]
当参数为TCP时:
3000]rule [rule-id] {deny | permit} { protocol-number | TCP } [ destination { destination-address destination-wildcard | any }|
destination-port { ep port | gt port | lt port | range port-start port-end } source { souce-address source-wildcard | any} |
source-port { ep port | gt port | lt port | range port-start port-end } | tcp-flac { ack | fin | syn } * | time-range time-name ] *

案例:
只允许192.168.1.3 访问telnet
]acl 3010
3010]rule 5 permit ip source 192.168.1.3 0
3010]rule 10 deny ip source any // 可以不配置,在vty接口下用来匹配范围时默认拒绝所有
vty接口下配置acl
]user-interface vty 0 4
vty]acl 3010 inbound

案例:
拒绝192.168.1.2访问http,但是可以ping通
]acl 3011
3011]rule deny tcp source 192.168.1.2 0 destination 7.7.7.7 0 destination-port eq 80
int]traffic-filter outbound acl 3011

案例:
拒绝 ping 但是可以访问http服务
rule deny icmp source 192.168.2.2 0 destination 7.7.7.7 0


acl ? INTEGER<1000-1999> Interface access-list(add to current using rules) // 接口访问列表 INTEGER<10000-10999> Apply MPLS ACL // 应用MPLS ACL INTEGER<2000-2999> Basic access-list (add to current using rules) // 基本的访问控制列表 INTEGER<3000-3999> Advanced access-list(add to current using rules) // 高级访问列表 INTEGER<4000-4999> MAC address access-list(add to current using rules) // MAC地址访问列表 ipv6 ACL IPv6 name Specify a named ACL number Specify a numbered ACL acl 2000 // 配置基本控制列表 basic-2000] rule ? INTEGER<0-4294967294> ID of ACL rule // 编号,不配置也行 deny Specify matched packet deny // 拒绝谁 黑名单 permit Specify matched packet permit // 允许谁 白名单 basic-2000] rule permit ? fragment-type Specify the fragment type of packet // 指定数据包的片段类型 source Specify source address // 指定源地址 time-range Specify a special time // 指定一个特殊的时间 vpn-instance Specify a VPN-Instance // 指定一个VPN实例 basic-2000] rule permit source 1.1.1.1 0 // 反掩码,0是精确匹配, 1是模糊匹配 user-interface vty 0 4 // 进入用户接口 vty] acl 2000 inbound/outbound //在用户接口进或者出配置acl 2000 acl 3000 // 高级访问控制列表 acl-adv-3000] rule permit ? <1-255> Protocol number gre GRE tunneling(47) icmp Internet Control Message Protocol(1) igmp Internet Group Management Protocol(2) ip Any IP protocol ipinip IP in IP tunneling(4) ospf OSPF routing protocol(89) tcp Transmission Control Protocol (6) udp User Datagram Protocol (17) acl-adv-3000]rule permit ip ? destination Specify destination address dscp Specify dscp fragment-type Specify the fragment type of packet precedence Specify precedence source Specify source address time-range Specify a special time tos Specify tos vpn-instance Specify a VPN-Instance <cr> rule permit ip source 1.1.1.1 0 ? destination Specify destination address dscp Specify dscp fragment-type Specify the fragment type of packet precedence Specify precedence time-range Specify a special time tos Specify tos vpn-instance Specify a VPN-Instance <cr> acl-adv-3000]rule permit ip source 1.1.1.1 0 destination 2.2.2.2 0 // 从哪来的地址和去哪里的地址 user-interface vty 0 4 // 进入用户接口 vty] acl 3000 inbound/outbound //在用户接口进或者出配置acl 2000

VRRP

综合组网测试

阅读剩余
THE END