一口气入门计算机网络基础(CCNA)

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模拟器下载地址:

Cisco Packet Tracer - Networking Simulation Tool (netacad.com)

注册下载之后,安装就可以了,嫌麻烦的话可以直接从网上下载。

PT模拟器主界面:

https://s2.loli.net/2022/05/06/X4GdaW6ikTPmAtr.png

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.00000001192.168.5.1
子网掩码11111111.11111111.11111111.00000000255.255.255.0
网络号11000000.10101000.00000101.00000000192.168.5.0
主机号00000000.00000000.00000000.000000010.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.254255.0.0.016777214127.255.255.255
B类128.0.0.1到191.255.255.254255.255.0.065534191.255.255.255
C类192.0.0.1到223.255.255.254255.255.255.0254223.255.255.255
D类224.0.0.0到239.255.255.255用于多点广播
E类240.0.0.0到255.255.255.254255.255.255.255

2022-04-28_152515.png

无类域间路由CIDR:

通过IP地址分类可以将IPv4地址划分成不同的网络范围来容纳不同数量的网络设备,但是没办法精细控制网络范围和所容纳的主机数量,从而造成IP地址不够或者被浪费,所以出现了可以一个网络进行子网划分的CIDR和VLSM。

借助CIDR,可以将多个C类地址创建成一个B类地址块。

可以将192.168.0.0分配掩码为255.255.0.0(/16),从而有效地突破陈旧的有类系统的限制,将所有IP地址转变为一个能供多个企业更有效划分的地址块。

可变长子网掩码VLSM:

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

2022-04-28_152515.png

子网掩码对照表:

1286432168421
10000000128
11000000192
11100000224
11110000240
11111000248
11111100252
11111110254
11111111255

专用IP编址:

互联网号码分配机构(IANA)预留了三个地址块,供专用内联网使用:

网络地址广播地址子网掩码
10.0.0.010.255.255.255255.0.0.0
172.16.0.0172.31.255.255255.240.0.0
192.168.0.0192.168.255.255255.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表。

绘图s2.png

如果进入交换机的是一个单播帧,交换机则会去查找这个帧的目的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。

绘图3.png

而当主机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地址:

TLENT.png

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登录:

telenet.png

ssh登录:

ssh.png

VLAN:

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

绘图2d2.png

中继链路又称trunk链路,可以设置允许所有VLAN帧通过,进入链路又称access链路,只允许唯一vlan通过。

绘图42.png

VLAN实验:

要求:

  • PC0和PC2属于VLAN2
  • PC1和PC3属于VLAN3
  • 同一个VLAN之间的主机可以跨交换机通信

vlan1.png

PC0 IP设置:

2022-04-28_142448.png

PC1 IP设置:

2022-04-28_142517.png

PC2 IP设置:

2022-04-28_142529.png

PC3 IP设置:

2022-04-28_142541.png

交换机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

2022-04-28_152515.png

PC0 ping PC1

2022-04-28_152732.png

sw1(config)#do show vlan

2022-04-28_153956.png

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

2022-04-28_182243.png

2022-04-28_182803.png

2022-04-28_183636.png

sw2可以创建vlan5了,但是仅在sw2本地有效。

2022-04-28_184136.png

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地址与路由前缀匹配度最长的表项,也就是子网掩码最长的路由条目,因为那样路由最精确,使用该表项作为最终数据转发的依据。

静态路由配置:

2022-04-28_221025.png

2022-04-28_222934.png

2022-04-28_223337.png

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通了:

2022-04-28_222743.png

路由负载:

当两个路由表中的条目中的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

2022-04-28_225128.png

2022-04-28_225612.png

浮动路由:

浮动静态路由是一种特殊的静态路由,通过配置一个比主路由的管理距离更大的静态路由,保证网络中主路由失效的情况下,提供备份路由,但在主路由存在的情况下它不会出现在路由表中。

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

2022-04-28_231156.png

2022-04-28_231515.png

默认路由:

模拟器要注意添加:
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的默认掩码,无类路由协议即宣告时支持可变长子网掩码,现在都是无类路由协议

路由协议优先级:

思科路由协议优先级:

路由协议优先级
DIRECT0
STATIC1
EIGRP Summary5
EBGP20
内部EIGRP90
IGRP100
OSPF110
IS-IS115
RIP120
EGP140
外部EIGRP170
IBGP200
未知255

RIP路由协议:

RIPv1路由协议配置:

2022-04-29_135941.png

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上运行的路由协议:

2022-04-29_153714.png

PIPv1协议自动在R2上进行路由汇总,并且进行了自动负载均衡,这样网络无法正常工作。

2022-04-29_160438.png

RIPv2路由协议配置:

2022-04-29_135941.png

切换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的路由信息:

2022-04-29_163029.png

R2:

R2#show ip rip database #查看R2上的rip数据库
R2#debug ip rip #开rip路由器调试信息

2022-04-29_163425.png

开启rip调试信息:

2022-04-29_163840.png

RIP路由协议高级配置:

RIPv2手工汇总:

R1上有三个环回接口,在R2的g0/0端口汇总成10.1.0.0 255.255.252.0

2022-04-29_165023.png

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路由协议配置:

2022-04-29_180108.png

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路由表:

2022-04-29_184006.png

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邻居关系:

2022-04-29_191702.png

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上实现负载均衡。

2022-04-29_195700.png

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:

2022-04-29_201455.png

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路由表:

2022-04-29_203054.png

在R2路由表上已经汇总:

2022-04-29_202846.png

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

2022-04-29_220311.png

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接口

2022-04-29_221842.png

R1上的ospf接口信息:

2022-04-29_223056.png

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协议高级配置:

2022-04-29_224302.png

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上已经汇总:

2022-04-29_225841.png

ospf在R4上汇总:

2022-04-29_230350.png

ACL:

ACL(Access Control List)访问控制列表,可以定义一系列不同的规则,设备根据这些规则对数据包进行分类, 并针对不同类型的报文进行不同的处理, 从而可以实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等等。

ACL原理:

根据不同的规则,对数据包进行分类,对不同类型报文进行处理,实现对网络行为的控制,限制网络流量,针对某个网段的数据流量进行操作,匹配上了就执行,没有匹配上,就不执行控制列表内的内容。
ACL的对数据执行的动作 :允许或拒绝流量

ACL不仅可以限制流量访问也可以,针对某些流量做特定处理,比如加解密,NAT转换等。

ACL分类:

标准和扩展ACL,二层ACL

思科:

分类编号参数
标准ACL1-99 1300-1999源IP地址等
扩展ACL100-199 2000-2699源IP地址,目的IP地址,源端口,目的端口等
二层ACL其他范围源MAC地址,目的MAC地址,以太帧协议类型等

ACL基本配置:

在R0上部署ACL:

2022-04-30_123341.png

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

2022-04-30_132739.png

PC1:192.168.1.2仍然可以访问

2022-04-30_132821.png

2022-04-30_133315.png

扩展ACL设置:

添加两个服务器,应用扩展ACL:

2022-04-30_135023.png

2022-04-30_155549.png

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 #静态添加路由

这样就配置完成了:

2022-04-30_160730.png

2022-04-30_160937.png

2022-04-30_155539.png

扩展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功能。

2022-04-30_170055.png

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中继信息

2022-04-30_195149.png

2022-04-30_195417.png

2022-04-30_195644.png

NAT:

NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。

NAT功能:

NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。把内网的私有地址,转化成外网的公有地址。使得内部网络上的(被设置为私有IP地址的)主机可以访问Internet。

NAT分类:

1.静态NAT:一对一地址转换,手动配置地址转换

2.动态NAT:一对一地址转换,配置一个地址池,动态从池子中取出地址进行转换

3.PAT:多对一地址转换,多个地址转换成一个地址,不同的地址用端口号区别

NAT配置:

2022-04-30_200835.png

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转换情况

设置结果:

2022-04-30_204451.png

动态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地址,不同的流量用端口号区别

添加一个服务器,模拟内网地址访问外网网站

2022-04-30_213107.png

内网主机可以访问外网网站:

2022-04-30_212634.png

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客户端。

https://s2.loli.net/2022/05/04/u6NvMxO4jwfo9iy.png

参考配置:

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地址:

https://s2.loli.net/2022/05/04/UgdrbO4l2xYhIXC.png

PC客户端可以ping通路由器服务端:

https://s2.loli.net/2022/05/04/Y43G18VXmlLA7q6.png

思科PPPOE认证文档:

了解和配置 PPP CHAP 认证

使用 ppp chap hostname 和 ppp authentication chap callin 命令的 PPP 认证

  • 26
    点赞
  • 189
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值