OSI网络参考模型:TCP/IP模型:数据封装与解封装:思科网络模拟器介绍和安装:IOS操作系统:操作系统常用网络命令:IP编址:IPv4地址:有类IP编址:无类域间路由CIDR:可变长子网掩码VLSM:子网掩码对照表:专用IP编址:链路本地地址:交换机原理:MAC地址表:ARP协议:IOS设备基础配置和telnet配置:telnet登录:ssh登录:VLAN:VLAN实验:VTP协议:Native VLAN:STP协议:路由:静态路由配置:路由负载:浮动路由:默认路由:黑洞路由:动态路由:路由协议优先级:RIP路由协议:RIPv1路由协议配置:RIPv2路由协议配置:RIP路由协议高级配置:EIGRP路由协议:EIGRP路由协议配置:OSPF协议:OSPF协议配置:OSPF协议高级配置:ACL:扩展ACL设置:命名ACL设置:DHCP协议:NAT:NAT配置:PPPOE协议:PPPOE协议配置:DTP协议:
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FX4GdaW6ikTPmAtr.png?table=block&id=03bef3e8-74c7-439a-839e-9194145b1b7b&cache=v2)
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 | 240.0.0.0 | ㅤ | 用于多点广播 |
E类 | 240.0.0.0到255.255.255.254 | 240.0.0.0 | ㅤ | 255.255.255.255 |
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FnZxtA1XeRsqBgjz.png?table=block&id=b3c10115-6c1d-4efe-9d2a-d03231895b03&cache=v2)
无类域间路由CIDR:
通过IP地址分类可以将IPv4地址划分成不同的网络范围来容纳不同数量的网络设备,但是没办法精细控制网络范围和所容纳的主机数量,从而造成IP地址不够或者被浪费,所以出现了可以一个网络进行子网划分的CIDR和VLSM。
借助CIDR,可以将多个C类地址创建成一个B类地址块。
可以将192.168.0.0分配掩码为255.255.0.0(/16),从而有效地突破陈旧的有类系统的限制,将所有IP地址转变为一个能供多个企业更有效划分的地址块。
可变长子网掩码VLSM:
可以变长子网掩码可以将规定的主类网所规定的网络外进一步分割成更小的子网络,可以更灵活的划分每个子网络中的主机数,从而最大程度利用IP地址:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F10%2FI5Qb8Yl2MwyjtmN.png?table=block&id=19e91325-90f6-41a7-869a-910933a8972d&cache=v2)
子网掩码对照表:
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过滤,以便使他们不会出现在互联网上路由。
链路本地地址:
网路地址 | 子网掩码 | 地址范围 |
169.254.0.0 | 255.255.0.0 | 169.254.0.0-169.254.255.255.255 |
在没有可用IP配置的环境中,操作系统自动将此地址分配给本地主机,这些地址可以用于小型点对点网络中,或者无法从DHCP服务器中获取地址的主机使用。
链路本地地址的数据包ttl应设置为1,本地链路地址不发送到任何路由转发,链路本地地址不提供本地网络之外的服务,C/S应用程序和点对点应用程序使用链路本地地址也能正常工作
交换机原理:
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FGvYU5PNXn6I7A8b.png?table=block&id=177e3895-cac6-45f7-94d7-4b1b0de745ee&cache=v2)
如果进入交换机的是一个单播帧,交换机则会去查找这个帧的目的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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2Fnk4Nf1qi8yZYtAO.png?table=block&id=6b949aa2-3ab0-4bf7-8b25-8ae65880dd41&cache=v2)
而当主机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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FtwZzGcAl2X6HgvR.png?table=block&id=61178d55-700f-4162-a076-4788e74ec240&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FiX3Nr2Buyb1LOdg.png?table=block&id=748b5331-312e-4123-b523-d3f16506e69e&cache=v2)
ssh登录:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FwHf1A9cECsUnNzR.png?table=block&id=da6df157-ec3d-4110-a591-039bcc87c6c1&cache=v2)
配置完ssh登录的话,原来的telnet就不能登录了。
VLAN:
VLAN虚拟局域网,VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而是实现虚拟工作组的数据交换技术,这一技术主要用于交换机和路由器中Vlan工作在OSI模型的第二层和第三层,VLAN可以用来隔离广播域,不同vlan的之间的通信需要通过路由器或三层交换机来实现,不同VLan之间的主机无法直接实现二层通信。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FZcV4eMRTqy3lzOF.png?table=block&id=2b00f15d-9b39-4412-acbb-bf6fb33e2921&cache=v2)
中继链路又称trunk链路,可以设置允许所有VLAN帧通过,进入链路又称access链路,只允许唯一vlan通过。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FOKV7RfrWg8JQjUb.png?table=block&id=da38998a-945b-45b0-9887-11107d75a7a9&cache=v2)
VLAN实验:
要求:
- PC0和PC2属于VLAN2
- PC1和PC3属于VLAN3
- 同一个VLAN之间的主机可以跨交换机通信
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FZRwqIVcDB3oa6Sg.png?table=block&id=d593f50e-4247-4311-bde5-047a8021803c&cache=v2)
PC0 IP设置:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FF3EuapwSDU2NGCn.png?table=block&id=7d1ccc8e-f353-49fe-a1af-e37f01b82237&cache=v2)
PC1 IP设置:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2F5maGFUHBVsRW7C2.png?table=block&id=44f64f3a-c6d3-47db-86c8-0b285f0c1cd1&cache=v2)
PC2 IP设置:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FuwPHpOxEeBZFrlT.png?table=block&id=c510edfc-a039-4310-926c-42c5ecf42dc7&cache=v2)
PC3 IP设置:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FyM9UBIdmglSfq2z.png?table=block&id=018d2a61-4e0b-4b64-a359-c089e30eeb46&cache=v2)
交换机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模式 Switch#show interfaces ? Ethernet IEEE 802.3 FastEthernet FastEthernet IEEE 802.3 GigabitEthernet GigabitEthernet IEEE 802.3z Port-channel Ethernet channel port interface Vlan Catalyst Vlans #显示VLAN信息 etherchannel Show interface etherchannel information status interface line status switchport Show interface switchport information trunk Show interface trunk information #显示trunk端口的信息 | Output Modifiers <cr> 如果只有一个vlan的话,可以不配置trunk,而可以配置成access,划分给某个vlan就可以
PC0可以ping通PC2,因为同属一个vlan
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FJnHD4cORie2UtBf.png?table=block&id=92f6c982-a3a5-4313-aa4b-30edf0ee3fdc&cache=v2)
PC0 ping PC1
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2F3zpj6tgOnaRTPMW.png?table=block&id=25978052-eafc-4a59-9532-740c4e020b89&cache=v2)
sw1(config)#do show vlan
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2Fh4NzUi2e896uCTy.png?table=block&id=29ccfcec-7954-4713-9ce3-814b4417a3a1&cache=v2)
VTP协议:
VLAN Trunking Protocol,VLAN中继协议,也被称为虚拟局域网干道协议。为思科私有协议,vtp协议通过一点(一台交换机),来管理同步整个网络的vlan的添加,删除,重命名。通过发送VTP通告来同步vlan的修改,VTP协议只维护VLAN的添加和删除。
vtp三种模式:
服务器模式:交换机默认模式,可以修改,创建和删除vlan配置信息。
客户端模式:不能创建,修改和删除vlan信息,只能同步vlan配置信息。
透明模式:可以创建和修改,删除vlan配置信息,但是仅在本地有效,不通告自己的vlan信息,也不同步外部vlan,但可以转发服务器或者客户端的vlan信息。
vtp设置:
标准配置: SW(config)#vtp version 2 #vtp版本 vtp mode server/client/transparent #vtp模式 vtp password lion #vtp密码 vtp domain abc #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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FZTWforCpiMKn2Hv.png?table=block&id=aaade737-dd50-4b8f-8545-29e85cbdd2bf&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FjB6QsDhJRZ72CnH.png?table=block&id=f66faee8-e55e-4f9f-82ee-9c03714ed57b&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2F8ap6bzUGjqvuI7M.png?table=block&id=b65875c9-9082-45ac-b199-b5987156bd62&cache=v2)
sw2可以创建vlan5了,但是仅在sw2本地有效。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FH5mw1McKgOLklSU.png?table=block&id=e86d1633-4182-4eff-80a1-bc486bfff990&cache=v2)
Native VLAN:
DTP,STP都是在vlan 1,也就是Native VLAN中的进行传输的。
Native Vlan和其他Vlan的另外一个区别在于:非Native Vlan在trunk中传输数据时要被添加Vlan标记的(如dot1q或者isl),但是native vlan在trunk中传输数据时是不进行标记的。
在trunk链路上,如果switchport trunk allowed vlan all,那么所有带有vlan信息的帧都允许通过,如果不加switchport trunk allowed vlan all,那么只有native vlan 这个vlan的帧才能通过,默认native vlan 是vlan 1。
native vlan实验:
在两台交换机上实现通过不同vlan,实现相同网段ip进行通信,通过native vlan
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F13%2FPdXGwtgH6fRcAEx.png?table=block&id=aad82149-b592-4853-9a2b-ff624ad29bd0&cache=v2)
配置:
SW0:
Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#int f0/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 10 % Access VLAN does not exist. Creating vlan 10 Switch(config-if)#int f0/2 Switch(config-if)#switchport mode trunk Switch(config-if)# %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to down %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to up Switch(config-if)#switchport trunk native vlan 10 #设置native vlan 为vlan 10 Switch(config-if)#%SPANTREE-2-RECV_PVID_ERR: Received BPDU with inconsistent peer vlan id 1 on FastEthernet0/2 VLAN10. %SPANTREE-2-BLOCK_PVID_LOCAL: Blocking FastEthernet0/2 on VLAN0010. Inconsistent local vlan. Switch(config)#no spanning-tree vlan 10 #关闭vlan10生成树协议
SW1:
Switch>en Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#int f0/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 20 % Access VLAN does not exist. Creating vlan 20 Switch(config-if)#int f0/2 Switch(config-if)#switchport mode trunk Switch(config-if)#%SPANTREE-2-RECV_PVID_ERR: Received BPDU with inconsistent peer vlan id 10 on FastEthernet0/2 VLAN1. %SPANTREE-2-BLOCK_PVID_LOCAL: Blocking FastEthernet0/2 on VLAN0001. Inconsistent local vlan. Switch(config-if)#switchport trunk native vlan 20 Switch(config-if)# %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet0/2 (20), with Switch FastEthernet0/2 (10). %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet0/2 (20), with Switch FastEthernet0/2 (10) Switch(config)#no spanning-tree vlan 20 Switch(config)#
配置完成后两台pc可以互通了:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F13%2Fa4snowD78OVQ9Up.png?table=block&id=7d34e87a-8eab-4af5-b136-399be1c7cffe&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FxPsjrOXGAghq4lN.png?table=block&id=407be5f4-832d-4c7f-aeae-700ac6247b76&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FGN5U28V1n43AIue.png?table=block&id=0821661e-0852-4922-9d94-00b41d89d44f&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2Fc6jvKPhBw2Igx7M.png?table=block&id=21fc57a8-4245-4693-8a72-0741b8de3223&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FXm6NpeRcsadhZkY.png?table=block&id=48f798a6-c7c6-4520-8052-49dc8c4fcea1&cache=v2)
路由负载:
当两个路由表中的条目中的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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FJ9msWRB2MZPrNlD.png?table=block&id=7291cb51-a676-48bb-8832-a648159ae7d3&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FmX1gCWH2tQfBZJx.png?table=block&id=048a3fd7-4c6f-43af-98be-ff5d1a5231d6&cache=v2)
浮动路由:
浮动静态路由是一种特殊的静态路由,通过配置一个比主路由的管理距离更大的静态路由,保证网络中主路由失效的情况下,提供备份路由,但在主路由存在的情况下它不会出现在路由表中。
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FdAuMQqVUhyoBfzZ.png?table=block&id=2d6dc0f6-e9d9-419e-a4cd-41c8884295c5&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FO2YIT6bEVPsNr3D.png?table=block&id=430f5e94-9be0-4805-9866-1774c7fd0799&cache=v2)
默认路由:
模拟器要注意添加: 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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FHoEFaZb9fztDqQX.png?table=block&id=7191adc4-0b39-4ed9-ba46-bcef3158f3fe&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FwNmuAHZbqd6lxyk.png?table=block&id=c3c7af1e-8e3a-42a2-ba69-75aa32d3c8ea&cache=v2)
PIPv1协议自动在R2上进行路由汇总,并且进行了自动负载均衡,这样网络无法正常工作。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FkxVmeM4t1aXhjrf.png?table=block&id=71aebed0-3714-4a55-a4f2-7aa941177f49&cache=v2)
RIPv2路由协议配置:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FHoEFaZb9fztDqQX.png?table=block&id=695ee7a0-8a19-4a62-8295-138a56ab042b&cache=v2)
切换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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2Fzj9mKT1rnBpki6O.png?table=block&id=cfa61340-fc72-49a9-b134-623f6b545bfb&cache=v2)
R2:
R2#show ip rip database #查看R2上的rip数据库 R2#debug ip rip #开rip路由器调试信息
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FuRnyqU8YmIAKOb3.png?table=block&id=98c18da0-06d6-4353-9825-21352b5a8ed5&cache=v2)
开启rip调试信息:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FTP1Wa4xSkQ2ineh.png?table=block&id=53cb4be6-e24a-424f-a973-ac56a75858dc&cache=v2)
RIP路由协议高级配置:
RIPv2手工汇总:
R1上有三个环回接口,在R2的g0/0端口汇总成10.1.0.0 255.255.252.0
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FOK2x1XV9nWzibAp.png?table=block&id=9b366ad5-f857-4e52-a2ba-e4ed8e47d10e&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FuCvylfQPDhIZdkR.png?table=block&id=04a51a88-900a-47fb-b1a4-b15b3f50089b&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FB6WbHyKgolStFuz.png?table=block&id=2da6b4f3-c720-427b-9912-81af17a772e8&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2F8CPoOv6Gl7pRqhH.png?table=block&id=566e52b1-8394-42ee-bc57-2b021e5cc999&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FRMQmt2bsjE8OSh5.png?table=block&id=66353ea2-4208-4cf7-88b4-bddcd43f09a4&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FU5Hdwqk37SWgvpG.png?table=block&id=c98c8ae0-b412-4244-afb6-7dbf703d9be0&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FnoEgjphP4FfJ2aD.png?table=block&id=0319947f-7c44-4cfc-a891-ddaf8f9f1d13&cache=v2)
在R2路由表上已经汇总:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FAX1H5N3VER7ZgDx.png?table=block&id=f31b1c1c-6139-486b-a4d6-96c4b923c5e6&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FY6DHLfNrA7k8ITs.png?table=block&id=e7e42bae-00f9-4c5b-b1f5-03380e26abda&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FUK6AQCYbOErdX8h.png?table=block&id=b5e60748-557d-4cc3-82c6-192eb4c98e08&cache=v2)
R1上的ospf接口信息:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FN89CEgbzxMoS7t1.png?table=block&id=5311021e-677c-4c49-963d-00acc631612b&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FNclVuLhSX93G8C2.png?table=block&id=b5c8bc5a-6583-4ee7-bcd9-bfaf11c9a748&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2F3FzZ8PanDfYWQiJ.png?table=block&id=71e35339-bbce-4d6b-bb67-702d7fac3ba1&cache=v2)
ospf在R4上汇总:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FwSHGfkREDOCnlam.png?table=block&id=b07e8368-ef10-4edb-8ca0-e9398ef92267&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FljPWLfmFeyrbwSv.png?table=block&id=9d84a000-0bd8-495f-bcad-ce23c312560f&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FCqilbjGgprhExue.png?table=block&id=de94db53-ed67-4bca-b7ee-bd9616c4f665&cache=v2)
PC1:192.168.1.2仍然可以访问
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2F1RDkAZFH98m7NGb.png?table=block&id=7613e4b3-9c58-415c-b54c-7e1a534ad8b8&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2F6VzPtaxs3qbO8pW.png?table=block&id=417e8d3b-0a56-407c-b0e1-cad800c7ca3e&cache=v2)
show access-lists 查看ACL列表和流量匹配情况
扩展ACL设置:
添加两个服务器,应用扩展ACL:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FtES7vzd3WPX6Hl4.png?table=block&id=00a1108e-22e9-4d05-9aa5-fe76675c0927&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2F5X6Oh1atMcQPu8s.png?table=block&id=77924e5e-3271-4e34-ace5-442716955b7a&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FCHGv6uMEFlPSgUw.png?table=block&id=69434fb0-f329-4f9b-89c0-5d6bd737e036&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2F5JG9cTaNjhLU3kW.png?table=block&id=0dc4d109-4a1a-453a-ad40-7b6022a1995f&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FDxcFUw34QuaENT2.png?table=block&id=c97c2490-6a09-4f56-875f-5c9e894c3d51&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FXJt1ouUzbxARjON.png?table=block&id=a1a88f4a-91e4-4895-bac3-d8adf46a71d0&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2F8gXTvm6BHqdaAoW.png?table=block&id=e53fc328-7811-4f8b-8124-c47af1586e35&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2Fmp2cPhAQRtszuwy.png?table=block&id=9bfc391b-913e-4dcd-93d1-11ec02932f15&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FfH2VGJRZlEb6uCM.png?table=block&id=62eabca2-19fb-4294-b588-34b6d3a82e30&cache=v2)
NAT:
NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
NAT功能:
NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。把内网的私有地址,转化成外网的公有地址。使得内部网络上的(被设置为私有IP地址的)主机可以访问Internet。
NAT分类:
1.静态NAT:一对一地址转换,手动配置地址转换
2.动态NAT:一对一地址转换,配置一个地址池,动态从池子中取出地址进行转换
3.PAT:多对一地址转换,多个地址转换成一个地址,不同的地址用端口号区别
NAT配置:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FXmSiPvs74JnFxq3.png?table=block&id=e25cb753-ebbe-4199-9e04-3c44fd1a443f&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FMQ9xbXFAVOpkgh5.png?table=block&id=59e33faa-8705-4392-913c-fa751d102eeb&cache=v2)
动态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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FcTHpbfOWByPo6Qd.png?table=block&id=d099a37a-e20e-461b-b611-99ab9e5c3146&cache=v2)
内网主机可以访问外网网站:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F06%2FaYrDche34JvFKSI.png?table=block&id=1e30249a-5f6d-4893-a621-b4a48a00cf9c&cache=v2)
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F04%2Fu6NvMxO4jwfo9iy.png?table=block&id=ce532f89-4cf6-4300-9c6e-522b440d145a&cache=v2)
参考配置:
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](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F04%2FUgdrbO4l2xYhIXC.png?table=block&id=38055231-2339-4a9b-8ded-3f846d1ca749&cache=v2)
PC客户端可以ping通路由器服务端:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs2.loli.net%2F2022%2F05%2F04%2FY43G18VXmlLA7q6.png?table=block&id=d7894ee0-6fa0-4efc-af7b-a5b5717a4fdf&cache=v2)
思科PPPOE认证文档:
DTP协议:
思科动态中继协议 DTP,是 VLAN 组中思科所有协议,主要用于协商两台设备间链路上的中继过程以及中继封装 802.1Q 类型。 DTP是cisco专有的协议,它只能用于交换机之间建立trunk链路,并且每隔30s发送DTP帧。
DTP采用协商的方式来决定是否将接口配置为Trunk,在需要使用Trunk链路时,通常是手工静态配置接口模式,并且手工指定Trunk封装协议。
当交换机与交换机的接口相连时,多数都需要配置为Trunk模式;交换机连接主机时,都需要配置为access模式。
中继协议有很多不同类型。如果端口被设置为 Trunk 端口,那么该端口便具有自动中继功能,在某些情况下,甚至具有协商端口中继类型的功能。这种与其它设备之间进行的协商中继方法的过程被称之为动态中继技术。
首先,中继链路两端最好都能理解它们是中继端口,否则它们将中继帧视为正常帧。终端工作站无法理解信息帧头里另外添加的标签信息,其驱动程序也无法识别该标签信息,从而导致终端系统锁定或当机。为解决这个问题,思科推出了用于交换机的协议以实现通信目的。推出的第一版本是 VTP,即 VLAN 中继协议,它与 ISL 共同工作。最新推出的版本,即动态中继协议 (DTP),也可与 802.1q 共同工作。
思科动态中继协议 DTP,是 VLAN 组中思科所有协议,主要用于协商两台设备间链路上的中继过程以及中继封装 802.1Q 类型。 DTP是cisco专有的协议,它只能用于交换机之间建立trunk链路,并且每隔30s发送DTP帧。
DTP采用协商的方式来决定是否将接口配置为Trunk,在需要使用Trunk链路时,通常是手工静态配置接口模式,并且手工指定Trunk封装协议。
当交换机与交换机的接口相连时,多数都需要配置为Trunk模式;交换机连接主机时,都需要配置为access模式。
中继协议有很多不同类型。如果端口被设置为 Trunk 端口,那么该端口便具有自动中继功能,在某些情况下,甚至具有协商端口中继类型的功能。这种与其它设备之间进行的协商中继方法的过程被称之为动态中继技术。
首先,中继链路两端最好都能理解它们是中继端口,否则它们将中继帧视为正常帧。终端工作站无法理解信息帧头里另外添加的标签信息,其驱动程序也无法识别该标签信息,从而导致终端系统锁定或当机。为解决这个问题,思科推出了用于交换机的协议以实现通信目的。推出的第一版本是 VTP,即 VLAN 中继协议,它与 ISL 共同工作。最新推出的版本,即动态中继协议 (DTP),也可与 802.1q 共同工作。
工作模式:
ON | 手工静态配置为Trunk,并且还会向对方主动发起DTP信息,要求对方也工作在Trunk模式,无论对方邻居在什么模式,自己永远工作在Trunk模式。 |
Desirable | 此模式为DTP主动模式,工作在此模式的接口会主动向对方发起DTP信息,要求对方也工作在Trunk模式,如果对方回复同意工作在Trunk模式,则工作在Trunk模式,如果没有DTP回复,则工作在access模式。 |
Auto | 此模式为DTP被动模式,工作在此模式的接口不会主动发起DTP信息,只会等待对方主动发起DTP信息,如果收到对方的DTP信息要求工作在Trunk模式,则自己回复对方同意工作在Trunk模式,最后的模式为Trunk,如果DTP被动模式收不到DTP要求工作在Trunk的信息,则工作在access模式。 |
nonegotiate | 停止DTP协商,就是禁止协商模式,端口只允许处于一种状态要么是access,要么是trunk
换句话说,如果一端端口启用了不协商模式为trunk 另外一端为自适应 那么就不能通信了。 |
access | 为Access模式,用来连接用户电脑的一种模式,只用于接入链路。例如:当一个端口属于vlan 10时,那么带着vlan 10的数据帧会被发送到交换机这个端口上。 |
两个相互连接端口模式对应关系:
ㅤ | auto | Desirable | trunk | access |
auto | access | trunk | trunk | access |
desirable | trunk | trunk | trunk | access |
trunk | trunk | trunk | trunk | limited connectivity |
access | access | access | limited connectivity | access |
设置某个接口的DTP模式: Switch(config-if)#switchport mode dynamic ? auto Set trunking mode dynamic negotiation parameter to AUTO desirable Set trunking mode dynamic negotiation parameter to DESIRABLE Switch(config-if)#switchport mode dynamic auto Switch#show interfaces trunk #显示trunk信息 Port Mode Encapsulation Status Native vlan Fa0/3 on 802.1q trunking 1 Port Vlans allowed on trunk Fa0/3 1-1005 Port Vlans allowed and active in management domain Fa0/3 1,2,3,4 Port Vlans in spanning tree forwarding state and not pruned Fa0/3 1,2,3,4 sw2(config-if)#switchport mode dynamic auto sw2(config-if)# %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to up sw2(config-if)#do show int trunk Port Mode Encapsulation Status Native vlan Fa0/3 auto n-802.1q trunking 1 Port Vlans allowed on trunk Fa0/3 1-1005 Port Vlans allowed and active in management domain Fa0/3 1,2,3,4 Port Vlans in spanning tree forwarding state and not pruned Fa0/3 none sw2(config-if)#switchport nonegotiate #设置某个trunk接口为neonegotiate模式,不协商模式 sw2(config-if)#switchport protected #对某个端口进行保护模式,禁止这个端口之间进行互访,两个 端口都要配置成 protected ,protected可以访问非protectd端口 sw2(config-if)#switchport port-security ? #通过mac地址限制,在端口上限制某些MAC地址 aging Port-security aging commands mac-address Secure mac address maximum Max secure addresses violation Security violation mode