万字长文一口气入门计算机网络基础(CCNA)

Title
CCNA
Date
May 14, 2023
notion image

OSI网络参考模型:

计算机网络使用分层模型来描述网络通信的复杂过程,在处理过程中拥有不同功能的协议被按目的分组到定义好的层中。
开放系统互联模型,也就是OSI模型,提供了关于网络通信过程的简要描述,由国际标准化组织(ISO)
设计并提供了非私有化的协议。
OSI模型分为七层:
层号
层名
用途
数据单元
7
应用层
为应用程序提供服务
数据信息(message)
6
表示层
为应用提供数据的表示形式(数据编码,加密,解密)
数据信息(message)
5
会话层
建立,管理,维护会话
数据信息(message)
4
传输层
建立主机端到端的连接
段(segmets)
3
网络层
IP寻址,网络路由
数据包/报文(packet)
2
数据链路层
控制网络层与物理层之间通信
zhen
1
物理层
传输媒介传输比特流
比特(bit)
OSI中的上面4层(应用层、表示层、会话层、传输层)为高层,定义了程序的功能;下面3层(网络层、数据链路层、物理层)为底层,主要是处理面向网络端到端的数据流。
应用层:
OSI模型中的最上一层,也是最接近用户的一层,将通信模型定制化成一个协议,不同的应用程序应用不同的网络协议,比如电子邮件的SMTP协议,网页应用的HTTP和HTTPS协议,传输文件的FTP协议等。
表示层:
将数据格式进行编码和转换,比如网页中的显示格式为UTF-8或者GBK编码,通过规定双方的协商的数据和编码格式。
会话层:
在不同的机器上的用户之间建立和管理会话,负责建立、管理和终止表示层实体之间的通信会话。
传输层:
建立端到端主机的连接,在这层最重要的就是TCP/UDP协议,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,并提供差错控制和流量控制等功能。
网络层:
通过网络编址技术把大大小小的局域网互相连接,形成互联网,网络层通过IP地址,实现网络寻址,即IP寻址,通过路由算法进行最优的网络路由
数据链路层:
建立和维护网络连接和链路控制。链路层地址(以太网使用MAC地址)来访问介质,将不可靠的物理信道变成无差错的、能可靠传输数据帧的数据链路,即:数据的差错检验、封装成帧、透明传输。
物理层:
通过物理介质(网线,无线信号,光纤)传输比特流,屏蔽物理媒介差异,为数据链路层提供统一的物理比特流传输能力。

TCP/IP模型:

TCP/IP分为五层或四层模型:
OSI模型
TCP/IP模型
TCP/IP五层模型
TCP/IP协议族
应用层
应用层
应用层
TCP,HTTP,DNS,FTP,Telent.....
表示层
没有协议
会话层
没有协议
传输层
传输层
传输层
TCP,UDP
网络层
网络层
网络层
IP,ICMP,RIP,OSPF,EIGRP,BGP....
数据链路层
网络接口层
链路层
SLIP,PPP,ARP,RARP,MTU......
物理层
物理层
IEEE802,IS02110....
TCP/IP模型描述了组成TCP/IP协族的各种协议的功能,在发送主机和接收主机上实现这些协议通过网络交互,为应用程序提供端到端传送。
TCP/IP模型与OSI模型同样采层级结构,但是OSI的模型不如TCP/IP模型发展快,OSI模型的许多协议已经不用。OSI的模型仅仅是个参考的模型,TCP/IP模型是OSI参考模型的实现,TCP/IP模型具备了OSI模型的全部优点并且简化了结构。TCP/IP是模型,而TCP/IP才是协议。

数据封装与解封装:

封装与解封装的图片:
封装:
当一台主机要通过网络发送数据时,数据要从高层一层一层向下传输,每一层添加上对应层的协议格式头,最终在物理层转为字节流发送到接收方。
解封装:
当一台主机通过物理介质从物理层收到了数据,从底层一步一步摘掉各层报头,最终到达应用层用户程序。
通常工作在某一层的网络设备只能处理网络设备本身所在的某一层到物理层的网络数据。

思科网络模拟器介绍和安装:

Cisco Packet Tracer是思科官方的模拟器,图形化适用于网络初学者,其他的进阶网络模拟器还有很多,比如GNS3、EVE-NG。‘
Packet Tracer模拟器下载地址:
注册下载之后,安装就可以了,嫌麻烦的话可以直接从网上下载。
PT模拟器主界面:
notion image

IOS操作系统:

互联网操作系统(Internetwork Operation System)简称IOS系统,是思科公司为其网络设备开发的操作系统。
Cisco IOS是运行于Cisco路由器和某些Cisco交换机上的操作系统,它是一个专用内核,提供路由选择、交换、网络互联和远程通信功能,使用Cisco IOS命令行界面(CLI)来配置Cisco IOS路由器。
IOS操作系统常用命令:
特权模式下Switch#/Router# show wersion #查看IOS系统版本 show flash #查看flash信息,显示flash空间大小,以bin结尾的文件是IOS系统文件 show arp #查看arp信息 show ip route #查看路由信息 show clock #查看系统时间,一般为出厂时间 show running-config #查看运行的配置 show running-config interface f0/0 #查看f0/0接口的信息 show startup-config #查看启动配置,这是下次启动时保存的配置,需要创建。 show interface f0/0 #查看f0/0接口的信息,带宽,运行的协议等 wirte #保存配置到启动配置,如果不保存,下次启动会丢配置 earse startup-configure #恢复出厂设置,启动配置 relod #重启,然后输入y y代表确认 show ip interface brief #查看设备接口的IP,状态等 show startup-config #查看初始化配置 show ip interface f0/0 #查看f0/0口的状态 no [命令]#删除配置 show processes #查看正在运行的进程

操作系统常用网络命令:

ping #测试网络连通性: -a 将目标IP地址解析成主机名 -t 持续ping目标主机直到接收停止信号 -n 指定对目标主机的ping次数 -l 指定ping包的大小 -f 指定IP包的DF位 ipconfig #查看网络设备,IP地址,MAC地址等信息 /all 查看详细信息 /renew 更新适配器的DHCP设置 /release 更新DHCP租约期 /displaydns 显示DNS缓存信息 nslookup #查看域名对应的IP地址 arp #查询arp信息 -a 显示所有ARP信息 -s 绑定静态ARP -n 显示指定的网络接口的ARP项 -d 删除指定的ip的主机,*删除所有主机 netstat -a 显示所有连接和侦听端口 -b 显示在创建每个连接或侦听端口时涉及的可执行文件 -e 显示以太网统计信息 -n 以数字形式显示地址和端口号 -o 显示拥有的与每个连接关联的进程 ID -r 显示路由表 -p proto 显示 proto 指定的协议的连接状态 -s 显示每个协议的统计信息 tracert #路由跟踪 -w 超时时间 -h 搜索目标的最大跃点数 route #查看路由信息 route print 打印路由表 route add 添加路由 route delete 删除路由 route change 改变路由项

IP编址:

网络层,它为所标志的终端设备之间通过网络交换数据片段提供服务。
在IP网络中,每一台设备通过一个唯一的IP地址进行识别。

IPv4地址:

IPv4地址长32位,分为四个八位位组,每个八位位组代表0-255之间的十进制数值,或者用8位二进制数值表示。IPv4地址一般采用点分十进制表示,8位二进制为一组,分为四组,例如192.168.0.8
IPv4地址由网络位和主机位组成,构成网络前缀的位由子网掩码决定,剩余位供主机使用。
类型
二进制表示
点分十进制表示
IP地址
11000000.10101000.00000101.00000001
192.168.5.1
子网掩码
11111111.11111111.11111111.00000000
255.255.255.0
网络号
11000000.10101000.00000101.00000000
192.168.5.0
主机号
00000000.00000000.00000000.00000001
0.0.0.1

有类IP编址:

IP地址最初
IP地址最初根据网络前缀使用的地址位数和主机使用的地址位数,分为几个不同
种类或类别。有类编址系统定义了A类、B类、C类、D类和E类地址空间。A类、B
类和C类用于普通网络,D类指定用于IP组播流量,而E类则留出供实验使用。
地址分类
地址范围
子网掩码
最大主机个数
广播地址
A类
1.0.0.1到127.255.255.254
255.0.0.0
16777214
127.255.255.255
B类
128.0.0.1到191.255.255.254
255.255.0.0
65534
191.255.255.255
C类
192.0.0.1到223.255.255.254
255.255.255.0
254
223.255.255.255
D类
224.0.0.0到239.255.255.255
用于多点广播
E类
240.0.0.0到255.255.255.254
255.255.255.255
notion image

无类域间路由CIDR:

通过IP地址分类可以将IPv4地址划分成不同的网络范围来容纳不同数量的网络设备,但是没办法精细控制网络范围和所容纳的主机数量,从而造成IP地址不够或者被浪费,所以出现了可以一个网络进行子网划分的CIDR和VLSM。
借助CIDR,可以将多个C类地址创建成一个B类地址块。
可以将192.168.0.0分配掩码为255.255.0.0(/16),从而有效地突破陈旧的有类系统的限制,将所有IP地址转变为一个能供多个企业更有效划分的地址块。

可变长子网掩码VLSM:

可以变长子网掩码可以将规定的主类网所规定的网络外进一步分割成更小的子网络,可以更灵活的划分每个子网络中的主机数,从而最大程度利用IP地址:
 
notion image

子网掩码对照表:

128
64
32
16
8
4
2
1
1
0
0
0
0
0
0
0
128
1
1
0
0
0
0
0
0
192
1
1
1
0
0
0
0
0
224
1
1
1
1
0
0
0
0
240
1
1
1
1
1
0
0
0
248
1
1
1
1
1
1
0
0
252
1
1
1
1
1
1
1
0
254
1
1
1
1
1
1
1
1
255

专用IP编址:

互联网号码分配机构(IANA)预留了三个地址块,供专用内联网使用:
网络地址
广播地址
子网掩码
10.0.0.0
10.255.255.255
255.0.0.0
172.16.0.0
172.31.255.255
255.240.0.0
192.168.0.0
192.168.255.255
255.255.0.0
这些网络地址是用由ISP根据RFC过滤,以便使他们不会出现在互联网上路由。

交换机原理:

MAC地址:
MAC地址(Media Access Control Address),也称为局域网地址(LAN Adderss),以太网地址(Ethernet Adderess)或物理地址(Physical Address)。
MAC地址是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。
IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。
IP地址和MAC地址相同具有唯一性。
单播:
在同一网络中,进行一对一通信就是单播。
组播:
在同一网络中,进行一对多的通信就是组播。
广播:
在同一网络中,对所有设备通信的就是广播。
交换技术:
数据链路层是基于MAC地址进行帧的传输。

MAC地址表:

交换机中有一个MAC地址表,里面存放了MAC地址与交换机端口的对应关系,MAC地址表也称为CAM表。
notion image
如果进入交换机的是一个单播帧,交换机则会去查找这个帧的目的mac地址。 1 如果查不到这个MAC地址,则进行泛红操作。 2.如果查到了MAC地址,则比较这个MAC地址表中对应的端口是不是这个帧进入交换机的那个端口,如果不是,则交换机进行转发,如果是则交换机执行丢弃操作(防止进入和发出的端口同一个端口) 2.如果是一个广播帧,则交换机不会查表,则是直接泛洪 3.如果收到一个组播帧,也会从端口发出去。 3.交换机具有学习能力,交换机会分别记录端口和MAC地址的关系,并且存进MAC表。
当同一网络的主机,A主机向B主机发送信息时,会先发送ARP请求来获取B主机的MAC地址,此APR请求中的目的MAC地址时广播地址,源MAC地址是自己的MAC地址,交换机收到该帧后,会将源MAC地址和接收端口的映射关系添加到MAC地址表中,此后,如果交换机的目的MAC地址是B的MAC地址,则通过学习到的端口进行转发,MAC地址表老化时间是300s,如果在300s主机A和B进行过通信,MAC地址表中A的对应关系会被刷新。

ARP协议:

主机 A 想要获取主机 B 的 MAC 地址,通过主机 A 会通过广播 的方式向以太网上的所有主机发送一个 ARP 请求包,这个 ARP 请求包中包含了主机 A 想要知道的主机 B 的 IP 地址的 MAC 地址。
主机 A 发送的 ARP 请求包会被同一链路上的所有主机/路由器接收并进行解析。每个主机/路由器都会检查 ARP 请求包中的信息,如果 ARP 请求包中的目标 IP 地址 和自己的相同,就会将自己主机的 MAC 地址写入响应包返回主机 A。
 
notion image
而当主机A收到ARP响应包之后,就会知道B的MAC地址,并且把B的IP地址和MAC地址的映射关系写入ARP缓存表中,通过ARP -A就可以查看主机中中的ARP缓存信息。

IOS设备基础配置和telnet配置:

IOS系统模式:
Router> //用户模式 Router# //特权模式 Router(config-if)# //接口模式 Router(config-router)# //路由配置模式 Router(config-line)# //线路模式 Router(config-subif)# //子接口模式 Router> //用户模式 Router>enable //在用户模式敲enable进入特权模式 Router#disable //在特权模式敲disable退出到用户模式 Router>enable//在用户模式敲enable进入特权模式 Router#configure terminal//在特权模式敲入configure terminal进入到配置模式 Router(config)#interface ethernet0/0//在配置模式敲入“interface+接口类型+接口编号”进入接口模式 Router(config-if)#exit//敲exit退出接口模式 Router(config)#router rip//敲“router + 路由协议”进入路由配置模式 Router(config-router)#exit//退出路由配置模式 Router(config)#line console 0//进入线路模式 Router(config-line)#end//从线路模式退出(任何时候敲入end会退出到特权模式) Router#configure terminal Router(config)#interface ethernet 0/0.1//进入子接口模式 Router(config-subif)#end//任何时候敲入end会退出到特权模式
IOS系统基本设置:
SW1 Switch> #用户模式 Switch>en #进入特权模式 Switch#conf t #进入配置模式 Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname SW1 #修改设备名 SW1(config)#no ip domain lookup #进制域名解析(防止在特权模式下敲错命令,当成域名解析) SW1(config)#line console 0 #进入线路模式 SW1(config-line)#logging synchronous #log当前显示信息同步 SW1(config-line)#no exec-timeout #关闭会话超时,防止一段时间不操作自动退出 SW1(config-line)#banner motd 'hello' #设置登录消息,当登录路由器时,就会显示hello SW1(config-line)#exit #退出线路模式
telent登录设置:
SW1(config)#enable password 123 #启用特权模式密码(明文密码) SW1(config)#enable password secret 123 #设置密码(加密密码) SW1(config)#line vty 0 4 #开启0到4 5条端口 SW1(config-line)#login local #表示终端登录到本地,使用本地定义的用户名和密码登录 SW1(config-line)#exit SW1(config)#username SW password 456 #设置全局用户名和密码,登录vty时应用 取消特权模式密码 SW1(config)#no enable password #取消全局密码 SW1(config)#no enable secret #取消加密密码 取消vty密码 SW1(config)#line vty 0 4 SW1(config-line)#no password #取消console密码 SW1(config-line)#no login #取消vty登录 设置console密码 SW1(config)#line console 0 SW1(config-line)#password 789 #设置密码 SW1(config-line)#login SW1(config-line)#end #退出到特权模式 SW1#show ip interface brief #查看接口地址和状态
ssh登录设置:
SW1(config)#username sw2 privilege 15 secret 123456 #设置用户名和密码,加密密码,用户级别时15(级别最高),无需输入enbale,即可进入特权 模式(默认级别1,最低) SW1(config)#line vty 0 4 SW1(config-line)#transport input ssh #0到4线路,只允许SSH登录 SW1(config-line)#login local #使用本地用户名登录 SW1(config-line)#do show ip ssh SW1(config)#ip domain-name sw.com #设置域名 SW1(config)#crypto key generate rsa #要启用ssh必须生成密钥 The name for the keys will be: SW1.sw.com Choose the size of the key modulus in the range of 360 to 2048 for your General Purpose Keys. Choosing a key modulus greater than 512 may take a few minutes. How many bits in the modulus [512]: 1024 #输入密钥对长度 SW1(config)#do show ip ssh //查看SSH信息,do命令,使用特权模式执行命令
交换机设置ip地址:
notion image
SW1(config)interface vlan 1 #设置vlan 1 接口 SW1(config)#ip add 192.168.1.1 255.255.255.0 #设置ip地址和子网掩码 SW1(config)#no shutdown #开启端口 SW1(config)#do show interface brief #查看端口IP和状态

telnet登录:

notion image

ssh登录:

notion image
💡
配置完ssh登录的话,原来的telnet就不能登录了。

VLAN:

VLAN虚拟局域网,VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而是实现虚拟工作组的数据交换技术,这一技术主要用于交换机和路由器中Vlan工作在OSI模型的第二层和第三层,VLAN可以用来隔离广播域,不同vlan的之间的通信需要通过路由器或三层交换机来实现,不同VLan之间的主机无法直接实现二层通信。
notion image
中继链路又称trunk链路,可以设置允许所有VLAN帧通过,进入链路又称access链路,只允许唯一vlan通过。
notion image

VLAN实验:

要求:
  • PC0和PC2属于VLAN2
  • PC1和PC3属于VLAN3
  • 同一个VLAN之间的主机可以跨交换机通信
notion image
PC0 IP设置:
notion image
PC1 IP设置:
notion image
PC2 IP设置:
notion image
PC3 IP设置:
notion image
交换机1配置:
Switch(config)#hostname sw1 sw1(config)#vlan 2 #创建vlan2,因为vlan1 是默认创建的 sw1(config)#vlan 3 #创建vlan3 sw1(config)#interface f0/1 #进入端口0/1 sw1(config-if)#switchport mode access #配置接口为access口,设置静态vlan,通过端口划分vlan,不是dynamic vlan,思科默认时access端口 sw1(config-if)#switchport access vlan 2 #将端口加入vlan2 ,当接口处于access模式时加入vlan2 sw1(config)#interface f0/2 #进入端口0/2 sw1(config-if)#switchport mode access sw1(config-if)#switchport access vlan 3 sw1(config)#interface f0/3 #进入端口0/3 sw1(config-if)#switchport mode trunk #配置端口为trunk模式,思科默认允许所有vlan通过,而且思科在一端配置trunk模式就可以通信了。 sw1(config-if)#switchport trunk allowed vlan all #在trunk上允许所有vlan通信 switchport trunk encapsulation dot1q/isl #设置vlan标签的格式,通用格式为dot1q,思科有私有isl格式,思科模拟器二层交换机不支持。
交换机2配置:
Switch(config)#hostname sw2 sw2(config)#vlan 2 #创建vlan2,因为vlan1 是默认创建的 sw2(config)#vlan 3 #创建vlan3 sw2(config)#interface f0/1 #进入端口0/1 sw2(config-if)#switchport mode access sw2(config-if)#switchport access vlan 2 sw2(config)#interface f0/2 #进入端口0/2 sw2(config-if)#switchport mode access sw2(config-if)#switchport access vlan 3 sw2(config)#interface f0/3 #进入端口0/3 sw2(config-if)#switchport mode trunk #配置端口为trunk模式
PC0可以ping通PC2,因为同属一个vlan
notion image
PC0 ping PC1
notion image
sw1(config)#do show vlan
notion image

VTP协议:

VLAN Trunking Protocol,VLAN中继协议,也被称为虚拟局域网干道协议。为思科私有协议,vtp协议通过一点(一台交换机),来管理同步整个网络的vlan的添加,删除,重命名。通过发送VTP通告来同步vlan的修改,VTP协议只维护VLAN的添加和删除。
vtp三种模式:
服务器模式:交换机默认模式,可以修改,创建和删除vlan配置信息。
客户端模式:不能创建,修改和删除vlan信息,只能同步vlan配置信息。
透明模式:可以创建和修改,删除vlan配置信息,但是仅在本地有效,不通告自己的vlan信息,也不同步外部vlan,但可以转发服务器或者客户端的vlan信息。
vtp设置:
sw1(config)#vtp mode server #设置sw2 为server,默认为server模式 sw1(config)#do show vtp status #查看vtp信息 sw1(config)#vtp domain qf #配置vtp域名为qf sw1(config)#no vlan 5 #删除vlan 5 sw2(config)#vtp mode client #设置sw2为client模式 sw2(config)#do show vtp status #查看vtp信息 sw2(config)#vtp mode transparent #设置sw2为transparent模式,透明模式 sw2(config)#do show vtp status #查看vtp信息 sw1(config)#vtp domain qf #配置vtp域名为qf sw2(config)#vlan 6 #sw2处于client模式不能创建vlan VTP VLAN configuration not allowed when device is in CLIENT mode. sw2(config)#vtp mode transparent #设置sw2为透明模式 Setting device to VTP TRANSPARENT mode. #原有的vlan配置不会删除 sw2(config)#vlan 5 #sw2可以创建vlan5了,但是仅在sw2交换机有效 sw2(config-vlan)#name test #将vlan5 命名为test
notion image
notion image
notion image
sw2可以创建vlan5了,但是仅在sw2本地有效。
notion image
 

STP协议:

交换环路会造成广播风暴、帧复制、MAC地址表震荡等问题。所以用到STP协议进行破环。STP的基本原理是,通过在交换机之间传递网桥协议数据单元BPDU,把环路破坏。
BPDU里面有一些主要字段:根网桥ID、根路径成本、发送网桥ID、端口ID等等。
工作原理: 选择根网桥(root bridge),选择根端口(root Ports),指定端口(designated ports),每个stp实例都有一个根网桥,每个非根网桥上都有一个根端口,每个网段有一个指定端口,非指定端口被阻塞。
 

路由:

路由(routing)是指路由器从一个接口上收到数据包,根据ip数据包的目的地址进行定向并转发到另一个接口的过程。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。
路由器工作内容: 支持路由协议 维护路由表项 根据路由表项进行数据包转发
路由表:
路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库,路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值),路由表中含有网络周边的拓扑信息。
路由来源:
直连路由:路由器本地接口所在网段
静态路由:手工配置的路由条目
动态路由:路由器间运行的动态路由协议
路由汇总: 路由汇总能够创建由多个连续子网组成的单一汇总路由,比如可以将10.1.0.0/24,10.1.1.0/24,10.1.2.0/24,10.1.3.0/24 汇总为10.1.0.0/22。汇总带来的优势是多方面的。它能够减小路由表的尺寸,支持路由器处理更多路由。而随着路由数目的减少,路由表的重新收敛速度就会加快,减少了未能选择最佳路由的机会,还会提高路由表的稳定性,未被汇总的网络的不稳定性不会传播。
路由最长匹配原则:
当路由器在将数据包的目的地址在路由表中查找时,采用的原则是“最长匹配原则”,也就是查找目的IP地址与路由前缀匹配度最长的表项,也就是子网掩码最长的路由条目,因为那样路由最精确,使用该表项作为最终数据转发的依据。

静态路由配置:

notion image
notion image
notion image
R0配置:
r0(config)#int g0/0 r0(config-if)#ip add 10.1.1.254 255.255.255.0 r0(config-if)int g0/1 r0(config-if)#ip add 172.16.1.1 255.255.255.0 r0(config-if)#int g0/2 r0(config-if)#ip add 172.16.2.1 255.255.255.0 r0(config)#ip route 192.168.1.0 172.16.1.2 #添加一条路由到192.168.1.0网段,出口时172.16.1.2
R1配置:
r1(config)#int g0/1 r1(config-if)#ip add 192.168.1.254 255.255.255.0 r1(config-if)#int g0/0 r1(config-if)#ip add 172.16.1.2 255.255.255.0 r1(config-if)#int g0/2 r1(config-if)#ip add 172.16.2.2 255.255.255.0 r1(config)#ip route 10.1.1.0 255.255.255.0 172.16.1.1 #添加一条路由条目到10.1.1.0网段,出口时172.16.1.1
这时两台主机就可以ping通了:
notion image

路由负载:

当两个路由表中的条目中的mertic值一样时,就实现了两条路由线路的负载均衡。
R0配置:
r0(config)#ip route 192.168.1.0 255.255.255.0 172.16.2.2
R1配置:
r1(config)#ip route 10.1.1.0 255.255.255.0 172.16.2.1
notion image
notion image

浮动路由:

浮动静态路由是一种特殊的静态路由,通过配置一个比主路由的管理距离更大的静态路由,保证网络中主路由失效的情况下,提供备份路由,但在主路由存在的情况下它不会出现在路由表中。
R0:
r0(config)#ip route 192.168.1.0 255.255.255.0 172.16.2.2 100 #设置路由管理距离100
R1:
r1(config)#ip route 10.1.1.0 255.255.255.0 172.16.2.1 100 #设置路由管理距离100
 
notion image
 
notion image

默认路由:

模拟器要注意添加: no ip cef //关闭cef会把连通后的路由保存在缓存里面,如果不关闭,那你打上了no ip classless后,一样是可以ping的通,会影响实验效果,负载均衡时,也要关闭 ip classless&no ip classless IP classless的作用: 1、ip classless这条命令是作用于路由转发进程的,告诉路由器工作在无类环境下 2、它能让路由器超越有类网络的边界而根据最长匹配条目来转发数据包; 3、当目的网络没有出现在路由表中时通过默认路由转发数据包,而不是简单的丢弃 4、如果路由器工作在有类环境下,当目的网络出现在路由表中,但没有具体的网络匹配时,防火墙将丢弃数据包。
R0:
r0(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.2 #添加缺省路由(默认路由)当匹配不到路由条目时,就会发送到默认路由的下一跳地址
R1:
r1(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.1

黑洞路由:

在路由汇总的时候,要防止出现环路,可以在汇总路由中配置黑洞路由来防止环路。在高级路由协议中,在被汇总的路由器的路由表中,会创建汇总后的路由到Null 0,就会丢弃,来防止路由环路。
R0:
r0(config)#ip route 网络号 子网掩码 Null 0 #设置黑洞路由防止环路

动态路由:

动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。当网络中节点或节点间的链路发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可用路由并继续转发报文。
动态路由概述:动态路由概述:路由器之间用来交换信息的语言。
路径选择依据:
跳数、带宽、时延、可靠性、成本、负载 路由器会通过度量值来确定最优路由路径
收敛:
所有路由器都达到一致状态的过程
动态路由分类:
1.按工作原理可以分为:距离矢量协议,链路状态协议 距离矢量协议:路由器依赖自己相邻的路由器学习路由。如RIP,EIGRP。 链路状态协议:把路由器分成区域,收集区域内所有路由器的链路状态生成网络拓扑图,每个路由器根据拓扑结构计算出路由,如OSPF。 2.按工作范围可以分为:内部网关协议IGP,外部网关协议EGP。 IGP(Interior Gateway Protocol):同一自治系统(使用相同路由协议的网络集合)内部交换路由信息,如OSPF。 EGP(Exterior Gateway Protocol):不同自治系统间交换路由信息,如BGP。 3.按路由更新时是否携带子网掩码可以分为:有类路由协议,无类路由协议。 有类路由协议已被淘汰,如RIPv1,即宣告时不支持可变长子网掩码,只使用默认的ABC三类IP的默认掩码,无类路由协议即宣告时支持可变长子网掩码,现在都是无类路由协议

路由协议优先级:

思科路由协议优先级:
路由协议
优先级
DIRECT
0
STATIC
1
EIGRP Summary
5
EBGP
20
内部EIGRP
90
IGRP
100
OSPF
110
IS-IS
115
RIP
120
EGP
140
外部EIGRP
170
IBGP
200
未知
255

RIP路由协议:

RIPv1路由协议配置:

notion image
R1配置:
R1(config)#interface lo0 #设置环回端口.模拟不同网段 R1(config-if)#ip add 10.1.1.1 255.255.255.0 R1(config-if)#interface g0/0 #设置端口g0/0 R1(config-if)#ip add 172.16.1.1 255.255.255.0 R1(config-if)#no shutdown R1(config)#router rip R1(config-router)#vserion 1 R1(config-router)#network 10.0.0.0 设置路由协议ip 端口,只配置主类网就可以,这样只要是a类网的子ip的接口就会启动rip协议,所以可以不填子网掩码 R1(config-router)#network 172.16.1.0
R2配置:
R2(config)#interface g0/1 R2(config-if)#ip add 172.16.1.2 255.255.255.0 R2(config-if)#no shutdown R2(config)#interface g0/0 R2(config-if)#ip add 172.16.2.1 255.255.255.0 R2(config-if)#no shutdown #打开端口 R2(config)#router rip #指定路由协议为rip R2(config-router)#version 1 #版本为1 R2(config-router)#network 172.16.0.0 #通告端口是172.16.0.0,rip配置端口是主类网
R3配置:
R3(config)#interface g0/0 R3(config-if)#ip add 172.16.2.2 255.255.255.0 R3(config-if)#no shutdown R3(config)#interface lo0 R3(config-if)#ip add 10.1.2.1 255.255.255.0 R3(config)#router rip R3(config-router)#version 1 #如果没有指定协议的版本,那么会是一个混合版本,send是1版本,而接收时1和2的版本,实现兼容 R3(config-router)#network 172.16.0.0 R3(config-router)#network 10.0.0.0
RIP查看命令:
R1#show ip protocols #查看当前的启用的路由协议send 和 receive版本都为 version 1 Automatic network summarization is in effect 版本1自动汇总是生效的,版本1是有类别路由选择协议,在主类网的边界会进行自动汇总 Maximum path: 4 最多在4条线路上进行负载均衡 Distance: (default is 120) 管理距离(优先级)默认是120
R1上运行的路由协议:
notion image
PIPv1协议自动在R2上进行路由汇总,并且进行了自动负载均衡,这样网络无法正常工作。
notion image

RIPv2路由协议配置:

notion image
切换RIP路由协议为v2版本,RIPv2为无类别路由选择协议。
R1:
R1(config)#router rip R1(config-router)#version 2 #rip版本2还是会自动汇总 R1(config-router)#no auto-summary 取消自动汇总 R1#clear ip route * #手动清除路由表,重新成路由表
R2:
R2(config)#router rip R2(config-router)#version 2 #rip版本2还是会自动汇总 R2(config-router)#no auto-summary 取消自动汇总 R2#clear ip route * #手动清除路由表,重新成路由表
R3:
R3(config)#router rip R3(config-router)#version 2 #rip版本2还是会自动汇总 R3(config-router)#no auto-summary 取消自动汇总 R3#clear ip route * #手动清除路由表,重新成路由表
R2路由启用RIPV2的路由信息:
notion image
R2:
R2#show ip rip database #查看R2上的rip数据库 R2#debug ip rip #开rip路由器调试信息
notion image
开启rip调试信息:
notion image

RIP路由协议高级配置:

RIPv2手工汇总:
R1上有三个环回接口,在R2的g0/0端口汇总成10.1.0.0 255.255.252.0
notion image
R1:
R1(config)#interface lo0 R1(config-if)#ip add 10.1.1.1 255.255.255.0 R1(config)#interface lo1 R1(config-if)#ip add 10.1.2.1 255.255.255.0 R1(config)#interface lo2 R1(config-if)#ip add 10.1.3.1 255.255.255.0 R1(config)#interface g0/0 R1(config-if)#ip add 12.1.1.1 255.255.255.252 R1(config-if)#no ip split-horizon #关闭g0/0端口的水平分割,这样每次发送完成的路由表包括自身的网络端口,也就是发送完整的路由信息 R1(config-if)#ip summary-address rip 10.1.0.0 255.255.252.0 #在端口g0/0完成路由汇总,思科PT模拟器不支持rip手工汇总 R1(config-if)#no shutdown R1(config)#router rip R1(config-router)#version 2 R1(config-router)#no auto-summary R1(config-router)#network 10.0.0.0 R1(config-router)#network 12.0.0.0 R1(config)#
R2:
R2(config)#interface g0/0 R2(config-if)#ip add 12.1.1.2 255.255.255.252 R2(config-if)#no shutdown
RIPv2认证配置:
R1:
R1(config)#key chain lion 密钥名lion R1(config)#key 1 密钥1 R1(config)#key-string lion 密钥密码 空格也算密码要注意 show key chain 显示密钥库,pt模拟器不支持,但是可以在show running-config配置中显示 R1(config)#interface g0/0 R1(config-if)#ip rip authentication mode md5 启用md5认证 pt模拟器不支持 R1(config)#ip rip authentication key-chain lion(定义的密钥名) #pt模拟器不支持 R1(config)#interface g0/0 R1(config-if)#ip rip authentication key-chain lion #挂在密钥到端口上
R2:
R2(config)#key chain lion 密钥名lion,两个启用认证的端口的密钥名字可以不一样,但是编号和密码要一样 R2(config)#key 1 密钥1 R2(config)#key-string lion 密钥密码 空格也算密码要注意 R2(config)#interface g0/0 R2(config-if)#ip rip authentication mode md5 启用md5认证 pt模拟器不支持 R2(config)#ip rip authentication key-chain lion(定义的密钥名) #pt模拟器不支持 R2(config)#interface g0/0 R2(config-if)#ip rip authentication key-chain lion #挂在密钥到端口上 R2(config-router)#passive-interface g0/0 #设置g/0端口为被动端口,只接收更新,不发送更新。 R2(config-router)#timers basic #修改rip协议的默认计时器,加快收敛速度。
RIP路由协议的metric度量值是跳数,只要两条路由的跳数相同就实现了负载均衡。

EIGRP路由协议:

EIGRP路由协议配置:

notion image
R1配置:
R1(config)#int lo0 R1(config-if)#ip add 10.1.1.1 255.255.255.0 R1(config)#int g0/0 R1(config-if)#ip add 172.16.1.1 255.255.255.0 R1(config-if)#no shutdown EIGRP配置: R1(config)#router eigrp 1 #启动一个as号为1的eigrp进程 R1(config-router)#no auto-summary #关闭自动汇总 ##eigrp 支持主类网通告和rip一样,但是eigrp可以支持精确的子网通告,通过反掩码支持子网通告 R1(config-router)#network 10.1.1.0 0.0.0.255 #0.0.0.255 0代表不匹配,1代表匹配,代表只 在10.1.1.0/24的接口上启用eigrp协议 R1(config-router)#network 172.16.1.0 0.0.0.255
R2配置:
R2(config)#int g0/0 R2(config-if)#ip add 172.16.1.2 255.255.255.0 R2(config-if)#no shutdown R2(config-if)#int g0/1 R2(config-if)#ip add 172.16.2.1 255.255.255.0 R2(config-if)#no shutdown EIGRP配置: R2(config)#router eigrp 1 # #如果要建立连接关系的不同路由器,eigrp的as号要保持一致 R2(config-router)#no auto-summary R2(config-router)#network 172.16.1.0 0.0.0.255 R2(config-router)#network 172.16.2.0 0.0.0.255
R3配置:
R3(config)#int g0/0 R3(config-if)#ip add 172.16.2.2 255.255.255.0 R3(config-if)#no shutdown R3(config-if)#int lo0 R3(config-if)#ip add 10.1.2.1 255.255.255.0 EIGRP配置: R3(config)#router eigrp 1 R3(config-router)#no auto-summary R3(config-router)#network 172.16.2.0 0.0.0.255 R3(config-router)#network 10.1.2.0 0.0.0.255
R2路由表:
notion image
EIGRP查看命令:
show ip protocols #查看启用的协议 eigrp 默认跳数是100 eigrp 内部管理距离是90,外部是170 show ip eigrp neighbors 查看邻居表 hello 时间为15s,如果15s没有hell,邻居就断掉了 show ip eigrp topology #查看eigrp拓扑表,查看收到的路由 show ip eigrp Traffic Statistics #查看eigrp流量 show ip route eigrp #只查看eigrp路由 debug ip eigrp #打开eigrp路由协议调试信息 no eigrp log-neighbor-changes #关闭eigrp日志消息
查看eigrp邻居关系:
notion image
eigrp计时器和度量值修改:
改变eigrp的计时器时间 在eigrp端口设置 R3(config)#int g0/0 R3(config-if)#ip hello-intervla eigrp 1 3 #改变eigrp的hello时间,1为as号,3为hello时间 R3(config-if)#ip hold-time eigrp 1 9 #同时要改变hold-time时间,要为hello时间的三倍,不同的路由之间计时器最好保持一致。 eigrp k value #使用带宽和延时两个参数作为度量标准,eigrp使用复合度量值,可以改变不同的参数在度量值上权重 k1 = 1 k2 =0 k3 =1 k4 = 0 k5 = 0 R3(config-router)#metric weights 0 1 0 1 0 0 k1和k3是带宽和时延的度量标准,如果只想有带宽那么把k3改为0 ,也就是0 1 0 0 0 0 不同的路由k值必须一样
EIGRP高级配置:
R1和R2,R3之间启用MD5认证,R1向R2和R3发送路由汇总,并且到192.168.1.0上实现负载均衡。
notion image
R1:
R1(config)#int g0/0 R1(config-if)#ip add 12.1.1.1 255.255.255.252 R1(config-if)#no shutdown R1(config-if)#int g0/1 R1(config-if)#ip add 13.1.1.1 255.255.255.252 R1(config-if)#no shutdown R1(config-if)#int lo0 R1(config-if)#ip add 200.1.1.1 255.255.255.0 R1(config-if)#int lo1 R1(config-if)#ip add 200.1.2.1 255.255.255.0 R1(config-if)#int lo2 R1(config-if)#ip add 200.1.3.1 255.255.255.0 EIGRP配置: R1(config)#int g0/0 R1(config-if)#bandwidth 10000 #修改带宽是10000kbit R1(config-if)#int g0/1 R1(config-if)#bandwidth 1000 #修改带宽是1000kbit R1(config)#router eigrp 1 R1(config-router)#no auto-summary R1(config-router)#network 12.1.1.0 0.0.0.255 R1(config-router)#network 13.1.1.0 0.0.0.255 R1(config-router)#network 200.1.1.0 0.0.0.255 R1(config-router)#network 200.1.2.0 0.0.0.255 R1(config-router)#network 200.1.3.0 0.0.0.255
R2:
R2(config)#int g0/0 R2(config-if)#ip add 12.1.1.2 255.255.255.252 R2(config-if)#no shutdown R2(config-if)#int g0/1 R2(config-if)#ip add 192.168.1.2 255.255.255.0 R2(config-if)#no shutdown EIGRP配置: R2(config)#router eigrp 1 R2(config-router)#no auto-summary R2(config-router)#network 12.1.1.0 0.0.0.255 R2(config-router)#network 192.168.1.0 0.0.0.255
R3:
R3(config)#int g0/0 R3(config-if)#ip add 13.1.1.2 255.255.255.252 R3(config-if)#no shutdown R3(config-if)#int g0/2 R3(config-if)#ip add 192.168.1.3 255.255.255.0 R3(config-if)#no shutdown EIGRP配置: R3(config)#router eigrp 1 R3(config-router)#no auto-summary R3(config-router)#network 192.168.1.0 0.0.0.255 R3(config-router)#network 13.1.1.0 0.0.0.255
配置完R1可以ping通R2和R3:
notion image
EIGRP路由汇总:
R1:
R1(config)#int g0/0 R1(config-if)#ip summary-address eigrp 1 200.1.0.0 255.255.252.0 #在g0/0口上进行路由汇总,eigrp支持超网汇总 R1(config-if)#int g0/1 R1(config-if)#ip summary-address eigrp 1 200.1.0.0 255.255.252.0 #在g0/1口上进行路由汇总
R1路由表:
notion image
在R2路由表上已经汇总:
notion image
EIGRP认证设置:
R1(config)#key chain lion #设置密钥名称 R1(config)#key 1 #设置编号 R1(config)#key-string lion #设置密码 accept-lifetime #设置过期时间 R1(config)#int g0/0 #设置配置认证的接口 R1(config-if)#ip authentication mode eigrp 1 md5 指定认证模式 R1(config-if)#ip authentication key-chain eigrp 1 lion 挂载认证 key和key-string要相同 要在配置的端口上都这样设置,R2和R3同理
EIGRP非等开销负载均衡:
R1(config)#router eigrp 1 R1(config-router)#variance 20 #修改variance值实现非等负载开销的负载均衡,只要是大于最小FD乘以 variance的路由都会被加入非等开销负载均衡中,由于R1和R2和R3之间的带宽不一样,就需要配置variance 来实现非等开销负载均衡.

OSPF协议:

OSPF协议配置:

OSPF基础配置:
R1和R2,R3都启用OSPF路由协议,属于同一个区域Area0
notion image
R1:
R1(config)#int lo0 R1(config-if)#ip add 10.1.1.1 255.255.255.0 R1(config-if)#int g0/0 R1(config-if)#ip add 12.1.1.1 255.255.255.252 R1(config-if)#no shudown R1(config-if)#int lo1 #指定router-id R1(config-if)#ip add 1.1.1.1 255.255.255.0 #使用环回接口指定 R1(config)#route ospf 1 #启动ospf 1号进程,可以启动多个ospf进程 R1(config-router)#router-id 1.1.1.1 #设置router-id R1(config-router)#network 10.1.1.1 0.0.0.0 area 0 #路由通告网段最精确通告,区域0 R1(config-router)#network 12.1.1.1 0.0.0.0 area 0 #area既可以写成十进制数字,也可以写成点分十进制
R2:
R2(config-if)#int g0/0 R2(config-if)#ip add 12.1.1.2 255.255.255.252 R2(config-if)#no shutdown R2(config-if)#int g0/1 R2(config-if)#ip add 23.1.1.1 255.255.255.252 R2(config-if)#no shutdown R2(config-if)#int lo1 #指定router-id R2(config-if)#ip add 2.2.2.2 255.255.255.0 #使用环回接口指定 R2(config)#route ospf 1 #启动ospf 1号进程,两台路由之间的进程可以不一样,可以启动多个ospf进程 R2(config-router)#router-id 2.2.2.2 R2(config-router)#network 12.1.1.2 0.0.0.0 area 0 #路由通告网段最精确通告,区域0,输入完就可以看到有邻居连接上来了 R2(config-router)#network 23.1.1.1 0.0.0.0 area 0 #area既可以写成十进制数字,也可以写成点分十进制
R3:
R3(config)#int g0/0 R3(config-if)#ip add 23.1.1.1.2 255.255.255.252 R3(config-if)#no shutdown R3(config-if)#int lo0 R3(config-if)#ip add 10.1.2.1 255.255.255.0 R3(config-if)#int lo1 #指定router-id R3(config-if)#ip add 3.3.3.3 255.255.255.0 #使用环回接口指定 R3(config)#route ospf 1 R3(config-router)#route-id 3.3.3.3 R3(config-router)#network 23.1.1.2 0.0.0.0 area 0 R3(config-router)#network 10.1.2.1 0.0.0.0 area 0
查看ospf命令:
show ip ospf database 查看ospf的数据库 show ip ospf interface 查看路由器上的ospf接口
notion image
R1上的ospf接口信息:
notion image
R1(config-if)#int g0/0 R1(config-if)#ip ospf hello-interval 10 修改计时器hello时间,改hello,dead时间会变,改dead hello不变 wait时间永远和dead一样 R1(config-if)#ip ospf cost 10 #手动修改cost值,手动实现负载均衡 R1(config-if)#auto-cost reference-bandwidth 1000m #修改参考带宽,默认10Mbit R1(config)#clear ip osfp process #清除ospf进程 R1(config-if)#ip ospf prioity 0 #表示优先级为0,这个端口不参加dr和bdr选举 R1#show ip interface g0/0 查看端口状态

OSPF协议高级配置:

notion image
R1和R4属于area1和area2,R3属于area0,R2和R4各自汇总路由后通告给R3
R1:
R1(config-if)#int lo0 R1(config-if)#ip add 1.1.1.1 255.255.255.0 R1(config-if)#int lo1 R1(config-if)#ip add 1.1.2.1 255.255.255.0 R1(config-if)#int lo2 ip add 1.1.3.1 255.255.255.0 R1(config-if)#int g0/0 R1(config-if)#ip add 12.1.1.1 255.255.255.252 ospf配置: R1(config)#router ospf 1 R1(config-router)#router-id 1.1.1.1 R1(config-router)#network 1.1.1.1 0.0.0.0 area 1 R1(config-router)#network 1.1.2.1 0.0.0.0 area 1 R1(config-router)#network 1.1.3.1 0.0.0.0 area 1 R1(config-router)#network 12.1.1.1 0.0.0.0 area 1
R2:
R2(config-if)#int g0/0 R2(config-if)#ip add 12.1.1.2 255.255.255.252 R2(config-if)#no shutdown R2(config-if)#int g0/1 R2(config-if)#ip add 23.1.1.1 255.255.255.252 R2(config-if)#no shutdown R2(config-if)#int lo0 R2(config-if)#ip add 2.2.2.2 255.255.255.0 ospf配置: R2(config)#router ospf 1 R2(config-router)#router-id 2.2.2.2 R2(config-router)#network 12.1.1.2 0.0.0.0 area 1 R2(config-router)#network 23.1.1.1 0.0.0.0 area 0
R3:
R3(config-if)#int g0/0 R3(config-if)#ip add 23.1.1.2 255.255.255.252 R3(config-if)#no shutdown R3(config-if)#int g0/1 R3(config-if)#ip add 34.1.1.1 255.255.255.252 R3(config-if)#no shutdown R3(config-if)#int lo0 R3(config-if)#ip add 3.3.3.3 255.255.255.0 ospf配置: R3(config)#router ospf 1 R3(config-router)#router-id 3.3.3.3 R3(config-router)#network 23.1.1.2 0.0.0.0 area 0 R3(config-router)#network 34.1.1.1 0.0.0.0 area 0
R4:
R4(config-if)#int g0/0 R4(config-if)#ip add 34.1.1.2 255.255.255.252 R4(config-if)#int lo0 R4(config-if)#ip add 4.1.1.1 255.255.255.0 R4(config-if)#int lo1 R4(config-if)#ip add 4.1.2.1 255.255.255.0 R4(config-if)#int lo2 R4(config-if)#ip add 4.1.3.1 255.255.255.0 R4(config-if)#int lo3 R4(config-if)#ip add 4.4.4.4 255.255.255.0 ospf配置: R4(config)#router ospf 1 R4(config-router)#router-id 4.4.4.4 R4(config-router)#network 34.1.1.2 0.0.0.0 area 0 R4(config-router)#network 4.1.1.1 0.0.0.0 area 2 R4(config-router)#network 4.1.2.1 0.0.0.0 area 2 R4(config-router)#network 4.1.3.1 0.0.0.0 area 2
ospf路由汇总:
在R2和R4上进行汇总 必须要在区域间的路由上进行路由汇总,在路由配置模式下 R2: R2(config)#router ospf 1 R2(config-router)#area 1 range 1.1.0.0 255.255.252.0 R4: R4(config)#router ospf 1 R4(config-router)#area 2 range 4.1.0.0 255.255.252.0
ospf在R2上已经汇总:
notion image
ospf在R4上汇总:
notion image

ACL:

ACL(Access Control List)访问控制列表,可以定义一系列不同的规则,设备根据这些规则对数据包进行分类, 并针对不同类型的报文进行不同的处理, 从而可以实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等等。
ACL原理:
根据不同的规则,对数据包进行分类,对不同类型报文进行处理,实现对网络行为的控制,限制网络流量,针对某个网段的数据流量进行操作,匹配上了就执行,没有匹配上,就不执行控制列表内的内容。 ACL的对数据执行的动作 :允许或拒绝流量
ACL不仅可以限制流量访问也可以,针对某些流量做特定处理,比如加解密,NAT转换等。
ACL分类:
标准和扩展ACL,二层ACL
思科:
分类
编号
参数
标准ACL
1-99 1300-1999
源IP地址等
扩展ACL
100-199 2000-2699
源IP地址,目的IP地址,源端口,目的端口等
二层ACL
其他范围
源MAC地址,目的MAC地址,以太帧协议类型等
ACL基本配置:
在R0上部署ACL:
notion image
 
R0:
R0(config)#int g0/0 R0(config-if)#ip add 192.168.1.254 255.255.255.0 R0(config-if)#no shutdown R0(config-if)#int g0/1 R0(config-if)#ip add 10.1.1.1 255.255.255.0 R0(config-if)#no shutdown access-list 1 permit#创建编号1的标准控制列表,后面接access-list规则 access-list 1 deny/permit #拒绝或允许匹配的流量 acssess-list 1 remark #备注access-list条目注释 标准访问列表,应部署在靠近目标的地方 R0(config)#access-list 1 permit 192.168.1.2 0.0.0.0 #只允许192.168.1.2通过,思科access-list 默认拒绝所有流量。可以用any匹配所有源ip地址,host匹配一个源ip地址。 源ip匹配条件是:源ip + 反子网掩码匹配 1代表无所谓,0代表匹配地址,0.0.0.0代表匹配ip地址每一位。 R0(config)#int g0/1 #进入要挂载ACL的接口 R0(config-if)#ip access-group 1 out #挂载ACL的编号和端口的方式,in或out。 每个接口,每个方向,每种协议,只能设置一个ACL. ACL条目是自上而下匹配的. R0(config-if)#no ip access-group 1 out #端口g0/1取消挂载ACL ACL是用于过滤经过router的数据包,它并不会过滤router本身所产生的数据包
R1:
R1(config)#int g0/0 R1(config-if)#ip add 10.1.1.2 255.255.255.0 R1(config-if)#no shutdown
配置完后,PC0:192.168.1.1已经无法访问10.1.1.2
notion image
PC1:192.168.1.2仍然可以访问
notion image
notion image
💡
show access-lists 查看ACL列表和流量匹配情况

扩展ACL设置:

添加两个服务器,应用扩展ACL:
notion image
notion image
R0:
R0(config)#ip route 100.1.1.0 255.255.255.0 10.1.1.2 #添加到服务器的静态路由 #添加扩展ACL列表,编号从100开始,允许源IP:192.168.1.1 到 100.1.1.2 80端口的通信,80端口也可以 替换成某些协议如www,ftp等。eq是指定端口号,也可以有其他的匹配条件,比如大于端口号:gt,指定端口号 范围range等。 扩展访问列表应当放到尽量靠近源地址的地方 R0(config)#access-list 100 permit tcp host 192.168.1.1 host 100.1.1.2 eq 80 R0(config)#access-list 100 permit icmp host 192.168.1.2 host 100.1.1.1 R0(config)#int g0/1 R0(config-if)#ip access-group 100 out
R1:
R1(config-if)#int g0/1 R1(config-if)#ip add 100.1.1.254 255.255.255.0 R1(config-if)#no shutdown R1(config)#ip route 192.168.1.0 255.255.255.0 10.1.1.1 #静态添加路由
这样就配置完成了:
notion image
notion image
notion image
💡
R0上的acl列表已经有流量被匹配上。
扩展ACL命令:
access-list 标号 permit/deny 协议 源地址 反掩码 目标地址 反掩码 匹配条件 permit ip any any #允许所有流量通过,如果设置拒绝流量,一定要在最下面加上。配置的顺序和书写的 顺序一样 deny ip any any #默认禁止所有流量,隐藏在ACL表的最后一条。

命名ACL设置:

ip access-list extended ACL编号 R0(config)ip access-list extended 100 R0(config-ext-nacl)# //ACL命名模式,可以用来删除某一条ACL Router(config-ext-nacl)#do show access-list Extended IP access list 100 10 permit tcp host 192.168.1.1 host 100.1.1.2 eq www (11 match(es)) 20 permit icmp host 192.168.1.2 host 100.1.1.1 (8 match(es)) R0(config)#ip access-list extended 100 # 编辑编号为100的ACL R0(config-ext-nacl)#no 20 #删除ACL编号为20的ACL条目 R0(config-ext-nacl)#15 deny ip any any #插入编号为15的条目 R0(config)#ip access-list extended test #创建名字为test的ACL,命名ACL好处是可以,删除和 插入ACL条目. R0(config-ext-nacl)#10 permit ip any any #在test ACL中添加条目 结果: R0(config-ext-nacl)#do show access-list Extended IP access list 100 10 permit tcp host 192.168.1.1 host 100.1.1.2 eq www (11 match(es)) 15 permit ip any any Extended IP access list test 10 permit ip any any

DHCP协议:

DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP服务端配置:
R1作为DHCP服务器,向PC1和R2提供IP地址,思科路由器,交换机和三层交换机都带有完整的DHCP功能。
notion image
R1:
R1(config)#int g0/0 R1(config-if)#ip add 192.168.1.254 255.255.255.0 #dhcp服务的端口添加ip地址,它不能为自己添加ip地址 R1(config-if)#no shutdown R1(config)#server dhcp #启动dhcp服务器 R1(config)#ip dhcp pool lion #创建dhcp ip地址池创建名字为lion R1(dhcp-config)#network 192.168.1.0 255.255.255.0 #设置dhcp服务器提供服务的网络和dhcp ip地址池ip的范围 R1(dhcp-config)#default-router 192.168.1.254 #指定默认网关,dhcp网关指向R1自身 R1(dhcp-config)#domain-name lion.com #网络域名可选 R1(dhcp-config)#dns-server 61.134.4.61 #网络dns服务器可选 R1(dhcp-config)#lease 7 #租约期 7天 #可选,pt模拟器不支持 R1(dhcp-config)#ip dhcp excluded-address 192.168.1.5 192.168.1.10 #dhcp保留地址5到10就不会被服务器分配
R2:
R2(config-if)#int g0/0 R2(config-if)#ip address dhcp #设置这个端口通过dhcp获取ip地址
查看dhcp相关命令:
debug ip dhcp #pt模拟器不支持 debug ip dhcp server packet #dhcp服务器调试 pt不支持 show dhcp server statistics #查看dhcp服务器的情况 pt不支持 show ip dhcp binding #DHCP绑定地址信息 show ip dhcp conflict #DHCP地址冲突信息 show ip dhcp pool #DHCP地址池信息 show ip dhcp relay #DHCP中继信息
notion image
notion image
 
notion image
 

NAT:

NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
NAT功能:
NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。把内网的私有地址,转化成外网的公有地址。使得内部网络上的(被设置为私有IP地址的)主机可以访问Internet。
NAT分类:
1.静态NAT:一对一地址转换,手动配置地址转换
2.动态NAT:一对一地址转换,配置一个地址池,动态从池子中取出地址进行转换
3.PAT:多对一地址转换,多个地址转换成一个地址,不同的地址用端口号区别

NAT配置:

notion image
R1:
R1(config)#int g0/0 R1(config-if)#ip add 192.168.1.254 255.255.255.0 R1(config)#no shutdown R1(config)#int g0/2 R1(config-if)#ip add 61.1.1.1 255.255.255.0 R1(config-if)#no shutdown 静态nat设置: R1(config)#ip nat inside source static 192.168.1.1 61.1.1.11 #设置静态nat设置 把内部192.168.1.1转换成外部61.1.1.11地址 (config)#ip nat inside source static 192.168.1.2 61.1.1.12 R1#show ip nat translations #查看nat转换,已经配置成功 Pro Inside global Inside local Outside local Outside global --- 61.1.1.11 192.168.1.1 --- --- --- 61.1.1.12 192.168.1.2 --- --- R1(config)#int g0/0 R1(config-if)#ip nat inside #定义转换方向,定义g0/0是内部接口 R1(config)#int g0/2 R1(config-if)#ip nat outside #定义g/2是外部接口,从g0/0口进入,g0/2出的ip地址就会被转换. R1(config)#debug ip nat 查看nat转换情况
设置结果:
notion image
动态nat设置:
R1:
R1(config)#ip nat pool lion 61.1.1.10 61.1.1.20 netmask 255.255.255.0 #创建一个名为lion的nat地址池 R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255 #反码0匹配,1代表无所谓,允许所有192.168.1.0/24这个网络的ip地址 R1(config)#ip nat inside source list 1 pool lion #挂载出入口到地址池和ACL
PAT设置:
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255 R1(config)#ip nat inside source list 1 interface g0/2 overload #设置PAT,多个内部地址转换成 g0/2的外部IP地址,不同的流量用端口号区别
添加一个服务器,模拟内网地址访问外网网站
notion image
内网主机可以访问外网网站:
notion image

PPPOE协议:

PPPOE(Point-to-Point Protocol Over Ethernet)以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。由于协议中集成PPP协议,所以实现出传统以太网不能提供的身份验证、加密以及压缩等功能,也可用于缆线调制解调器(cable modem)。PPPoE全称为Point to Point Protocol over Ethernet(以太网上的点对点协议),是将以太网和PPP协议结合后的协议。通过PPPoE技术和宽带调制解调器(比如ADSL Modem)就可以实现高速宽带网的个人身份验证访问,创建虚拟拨号连接,这样就可以高速连接到Internet,通俗来说就是平常上网时,办理宽带上网时,通过网络运营商连接到互联网时的一种认证协议,认证时需要提供用户名和密码。

PPPOE协议配置:

路由器一个作为PPPOE服务端,一个作为客户端,外加一个PC客户端。
notion image
参考配置:
PPPOE-SERVER:
Router#conf t Router(config)#int f0/1 Router(config-if)#pppoe enable group global //间bba分组与物理接口相关联,关联global Router(config-if)# %LINK-5-CHANGED: Interface Virtual-Access1, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, changed state to up Router(config-if)#no shutdown Router(config-if)# %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up Router(config-if)#exit Router(config)#ip local pool lion 100.1.1.10 100.1.1.200 //创建ip地址池,分配ip Router(config)#bba-group pppoe global //分配bba组为global Router(config-bba)#virtual-template 1 //创建虚拟模板接口1 Router(config-bba)#exit Router(config)#interface virtual-Template 1 //进入虚拟接口1 Router(config-if)#ip unnumbered f0/1 //不分配特定ip,通过f0/1获取ip Router(config-if)#peer default ip address pool lion //关联虚拟模板接口到ip地址池lion Router(config-if)#ppp authentication chap callin //关键配置,配置ppp认证方式为chap单向认证 //ppp authentication chap 为双向认证,服务端和客户端保持一致 AAA: Warning, authentication list callin is not defined for PPP. Router(config-if)#int f0/1 Router(config-if)#ip add 100.1.1.1 255.255.255.0 //添加ip地址 Router(config-if)#exit Router(config)#username lion password abc //配置用户名用于PPPOE认证
PPPOE-CLIENT:
Router(config)#int f0/1 Router(config-if)#pppoe-client dial-pool-number 1 //关联f0/1接口设置dialer接口1 Router(config-if)# %LINK-5-CHANGED: Interface Virtual-Access1, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, changed state to up Router(config-if)#no shutdown Router(config-if)# %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up Router(config-if)#exit Router(config)#int dialer 1 //进入dialer 1接口 Router(config-if)#encapsulation ppp //设置封装格式为ppp,思科默认为HDLC为思科私有 Router(config-if)#ip address negotiated //设置ip地址为协商获得 Router(config-if)#mtu 1492 //设置mtu大小 Router(config-if)#ppp authentication chap callin //设置认证方式为chap单向认证,这个要和服务器保持一致 //也可设置为ppp authentication chap pap callin 两种认证方式都可以 AAA: Warning, authentication list callin is not defined for PPP. Router(config-if)#ppp chap hostname lion //pppoe用户名,如果为空,则用主机名,所以hostname相当于用户名 Router(config-if)#ppp chap password abc //设置密码 Router(config-if)# %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up Router(config-if)#dialer pool 1 //指定要使用的拨号池 %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up %LINK-5-CHANGED: Interface Virtual-Access2, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access2, changed state to up Router(config)#ip route 0.0.0.0 0.0.0.0 dialer 1 //指定默认路由为dialer 1接口
实验结果:
PC客户端和路由器都通过PPPOE获得了IP地址:
notion image
PC客户端可以ping通路由器服务端:
notion image
思科PPPOE认证文档:
了解和配置 PPP CHAP 认证
质询握手身份验证协议 (CHAP)(已在 RFC 1994 中定义)通过三向握手来验证对等体的身份。 以下是在 CHAP 中执行的一般步骤: 在完成 LCP(链路控制协议)阶段并在两个设备之间协商 CHAP 之后,身份验证程序向对等体发送一条质询消息。 对等体使用通过单向散列函数(消息摘要算法 5 (MD5))计算的值进行响应。 身份验证程序根据自己计算出的预期散列值检查响应。如果两个值匹配,则身份验证成功;否则,将终止连接。 此认证方法取决于只有证明人和对等体知道的"秘密"。该密钥不会通过链路发送。虽然身份验证只是单向身份验证,您仍可以借助为相互身份验证设置的相同密钥来双向协商 CHAP。 有关 CHAP 的优缺点的详细信息,请参阅 RFC 1994 。 本文档的读者应掌握以下这些主题的相关知识: 如何通过 encapsulation ppp 命令在接口启用 PPP。 debug ppp negotiation 命令输出。有关详细信息,请参阅 了解 debug ppp negotiation 输出。 当链路控制协议(LCP)阶段不处于打开状态时,能够进行故障排除。这是因为,在 LCP 阶段已完成并处于打开状态之前,不会开始 PPP 身份验证阶段。如果 debug ppp negotiation 命令未表明 LCP 处于打开状态,您需要先对此问题进行故障排除,然后才能继续。
了解和配置 PPP CHAP 认证
使用 ppp chap hostname 和 ppp authentication chap callin 命令的 PPP 认证
PPP 协商包括几个步骤,例如链路控制协议 (LCP) 协商、身份验证和网络控制协议 (NCP) 协商。如果双方不能就正确的参数达成协议,那么连接将被终止。一旦链路建立,双方将使用在 LCP 协商期间确定的身份验证协议进行相互验证。在开始 NCP 协商之前,必须成功通过身份验证。 PPP 支持两种身份验证协议:密码验证协议 (PAP) 和质询握手身份验证协议 (CHAP)。 有关文档规则的详细信息,请参阅 Cisco 技术提示规则 。 本文档没有任何特定的前提条件。 本文档中的信息基于以下软件和硬件版本。 PAP 身份验证包含两次握手,在两次握手过程中,用户名和密码在链路上以明文发送。因此,PAP 身份验证无法防御回放和线路探测。 另一方面,CHAP 身份验证将定期使用三次握手验证远程节点的身份。在建立 PPP 链路后,主机发送将会发送一个"质询"消息到远程节点。远程节点使用通过单向哈希功能计算出来的值进行响应。主机使用自己计算出来的哈希值对响应进行检查。如果两个值匹配,则身份验证将被确认;否则,将终止连接。 本部分提供有关如何配置本文档所述功能的信息。 注意: 要查找有关本文档中使用的命令的其他信息,请使用IOS命令查找工具 当两个设备正常使用 CHAP 身份验证时,一方向另一方发送一个质询,另一方予以响应,并由质询程序进行验证。每一方都独立地验证另一方的身份。如果您希望通过呼叫路由器或设备操作不支持身份验证的非 Cisco 路由器,您必须使用 ppp authentication chap callin 命令。在使用带 callin 关键字的 ppp authentication 命令时,如果远程设备发起呼叫(例如远程设备"拨入"),接入服务器只需验证远程设备即可。 在这种情况下,仅指定对传入(收到的)呼叫进行身份验证。 当远程Cisco路由器连接到使用不同管理控制机制的Cisco或非Cisco的中央路由器,或网络服务提供商(ISP)或中央路由器轮循上时,必须配置不同于主机名的认证用户名。在此情况下,不提供路由器主机名,或者不同的时间使用不同的主机名(轮循)。 并且,ISP 分配的用户名和口令可能不是远程路由器的主机名。在这种情况下,可以使用 ppp chap hostname 命令来指定要用于身份验证的备用用户名。 例如,请考虑多个远程设备拨入一个中心站点的情况。使用正常的 CHAP 身份验证,必须在中央路由器上配置每台远程设备的用户名(应为主机名)和共享秘密。在这种情况下,中央路由器的配置管理可能变得十分冗长和繁琐;然而,如果远程设备使用与它们的主机名称不同的用户名,则可以避免这种情况。可以为中心站点配置一个用户名和共享秘密,并将此用户名和共享秘密用于验证多个拨入客户端。 如果路由器1向路由器2发起呼叫,路由器2会向路由器1发起呼叫,但路由器1不会向路由器2发起呼叫。这是因为路由器1上配置了 ppp authentication chap callin 命令。这是单向身份验证的示例。 在此设置中,路由器 1 上配置了 ppp chap hostname alias-r1 命令。路由器 1 使用"alias-r1"而非"r1"作为用于 CHAP 身份验证的主机名。 路由器 2 拨号器映射名称应与路由器 1 的 ppp chap 主机名匹配否则,将会建立两条 B 通道,每个方向一条通道。 !
使用 ppp chap hostname 和 ppp authentication chap callin 命令的 PPP 认证
 
Built with Potion.so