HCLA从基础到成熟

发布时间:2024年01月19日

9.9-DHCP静态路由的设置:

1.如何开始dhcp服务:首先进入二级命令,dhcp enable 开启dhcp服务,然后创建池塘:IP pool xx为池塘取个名字 一台设备上可以有多个池塘,但一个池塘只能服务一个广播域,network ---IP----mask 24绑定接口(此处绑定的接口为所要分配的IP范围),gateway该网段的网关地址(此处填写的IP地址为接口所在的网关地址),dns-list --ip --子网掩码(144.144.144.144),服务器地址,最后进入接口dhcp select global 在接口上单独开启dhcp服务

简记:开启-创建-绑定范围-绑定网关-dns服务器地址-开启接口的dhcp服务 补:路由器dhcp的排除地址:exclude IP address——————此处填写排除两个地址的范围 lease表示租期:dhcp默认分配的IP地址;一般表示一天 判断广播域最重要的是要看洪泛 查看配置ip的命令:IPconfig (在电脑里查看)/display IP interence brief(路由器里查看)

9.10:静态路由的配置:

ip route-static:目标路由+子网掩码+下一跳 ? 遵循路由最短原则,否则会出现环路(TTL可以缓解环回) 环回接口的配置: ? 在路由器上创建环回接口以后可以测试该pc的TCP/IP的协议栈道能否正常的封装和解封装数据 ? 环回接口配置:interence loopback 0-1024; 手工汇总: ? 配置静态路由连接多个子网时可以直接连接子网的母网网段; 缺省路由: ? 路由表查表时没有发现该条路由,使用该条目, ? 缺省路由的配置:IP route-static 0.0.0.0 0.0.0.0 下一跳的IP; 空接口路由: ? 如果访问就丢弃;配置:ip route-static 192.168.1.0 24 Null 0 浮动静态路由: ? 通过修改路由的优先级来实现路由备份的设置 ? 配置:IP route-static 192.168.1.0 24 192.168.2.1 preference 61

建立网络连接的tcp/ip协议:

ACK报文是用来应答的,SYN报文是用来同步的 三次握手,四次挥手详情: 初始时:客户端处于Closed状态,服务器处于Listen状态; 第一次握手:客户端发送SYN报文给服务器,初始序列号为x(seq=x), 此时客户端进入SYN_SENT状态;这时,客户端可以知道自己发送能力正常,服务器可以知道自己接收能力正常,客户端发送能力正常。 第二次握手:服务器通过自己的SYN报文给与客户端确认和响应,服务器进入SYN_RECV状态;这时客户端可以知道服务器收发能力正常,自己收发能力正常;服务器知道自己收发能力正常,但不知道客户端接收能力正常,因此需要第三次握手。服务器发送报文的四个参数具体含义如下: SYN=1,表示为连接请求报文,也不能携带数据; seq=y,服务端的序列号为y; ACK=1,表示确认客户端序列号有效,此时确认号(ack)有值; ack=seq+1:ack的值为客户端传来的序列号(seq)加1,即ack=x+1; 第三次握手:客户端收到服务器的SYN+ACK的包,此时客户端处于ESTABLISHED(已确认)状态,表示客户端和服务器都表示同意连接,因此客户端发送一个ACK报文,ack仍为序列号+1,即y+1,初始序列号为x,因此客户端发送的第二次报文,序列号要+1,即x+1;这时服务器可以确认客户端收发能力正常;第三次握手可以携带数据。 SYN=1或ACK=1表明这是一个连接请求报文 SYN=1时的报文不能携带数据,如果可以携带数据的话,如果有人在第一次握手的SYN报文放入很多数据,重复发送大量的这些报文,服务器就会消耗大量内存缓存这些报文,服务器就更容易被攻击。 半连接队列和全连接队列 完成第一次和第二次握手后的TCP连接,讲socket放到半连接队列中;

完成第三次握手后,socket会从半连接队列移到全连接队列,当调用accpet函数时,从全连接队列中返回可用的socket给用户进程。

四次挥手的目的 TCP是全双工的工作模式,因此每个方向都必须单独进行关闭。当一方完成自己的数据发送任务后,就可以发送一个FIN报文来终止这个方向的连接。

全双工:客户端在给服务器端发送消息的同时,服务器端也可以给客户端发送消息; 半双工:客户端可以给服务端发消息,服务器端也可以给客户端发消息,但客户端和服务端不能同时发。 刚开始客户端和服务器端都处于ESTABLISHED状态,假如客户端发起关闭请求; 第一次挥手:客户端向服务器发送FIN报文(FIN=1,seq=u),发完后进入FIN_WAIT_1状态,即主动关闭TCP连接,不再发送数据,但可以接收服务器发来的报文,等待服务器回复; 第二次挥手:服务器接到FIN报文后,返回一个ACK报文(ACK=1,ack=u+1,seq=v),表明自己接收到此报文,服务器进入CLOSE_WAIT关闭等待状态,此时客户端就知道服务端接到自己的断开连接请求,进入到FIN_WAIT_2状态,TCP处于半关闭状态,但服务器端可能还有数据要传输。 第三次挥手:服务器关闭客户端连接,发送FIN报文(FIN=1,seq=w,ack=u+1)给客户端,此时服务器处于LAST_ACK状态,等待客户端回应。 第四次挥手:客户端收到FIN报文后,发送一个ACK(ACK=1,ack=w+1,seq=u+1)给服务器作为应答,此时客户端处于TIME_WAIT状态,这个状态是为了等待足够的时间以确保TCP接收到连接中断请求的确认。 注意:这时服务器到客户端的TCP连接并未被释放,客户端需要经过等待2MSL(MSL表示一个报文的来回时间)后才会进入CLOSED状态,这样做的目的是确保服务器收到自己的ACK报文,如果在规定时间没有收到客户端发的ACK,那么服务器会重发FIN,客户端再次收到FIN报文,就知道自己的ACK丢了,然后会重发ACK给服务器。服务器收到ACK后,就会关闭连接,处于CLOSE状态了。 等待2MSL的原因: 防?客户端最后?次发给服务器的确认在?络中丢失以?于客户端关闭,?服务端并未关闭,导致资源的浪费。 等待最?的2msl可以让本次连接的所有的?络包在链路上消失,以防造成不必要的?扰。 如果客户端直接closed,然后?向服务端发起了?个新连接,我们不能保证这个新连接和刚关闭的连接的端?号是不同的。假设新连接和已经关闭的?端?号是?样的,如果前?次滞留的某些数据仍然在?络中,这些延迟数据会在新连接建?后到达服务端,所以socket就认为那个延迟的数据是属于新连接的,数据包就会发?混淆。所以客户端要在TIME_WAIT状态等待2倍的MSL,这样保证本次连接的所有数据都从?络中消失。 为什么客户端需要TIME_WAIT状态 假设最终的ACK丢失,服务器会重发FIN,客户端必须维护TCP状态信息以便可以重发最终的ACK,否则就发送RST(TCP连接出错),结果服务端认为发生错误。TCP实现必须可靠地终止连接的两个方向(全双工关闭),客户端必须进入TIME_WAIT状态,以免可能出现重发ACK的情形。

为什么挥手比握手多一次 因为握手的时候并没有数据传输,所以服务端的** SYN 和 ACK 报文可以一起发送**,但是挥手的时候有数据在传输,所以 ACK 和 FIN报文不能同时发送,需要分两步,所以会比握手多一步。

为什么三次挥手不行 因为服务端在接收到FIN, 往往不会立即返回FIN ,必须等到服务端所有的报文都发送完毕了,才能发FIN。因此先发一个ACK表示已经收到客户端的FIN,延迟一段时间才发FIN。这就造成了四次挥手。

如果是三次挥手会造成: 如果将服务端的两次挥手合为一次,等于说服务端将ACK和FIN的发送合并为一次挥手,这个时候长时间的延迟可能会导致客户端误以为FIN没有到达客户端,从而让客户端不断的重发FIN。所有只能第二次握手先发送ACK确认接收到了客户端的数据,等服务器发送完了数据,再发送FIN包进行第三次挥手。 TCP报文参数释义 在三次握手和四次挥手中,报文发送都会携带一些参数,这些参数的具体解释如下:

SYN:同步序列号标志位,tcp三次握?中,第?次会将SYN=1,ACK=0,此时表?这是?个连接请求报?段,对?会将SYN=1,ACK=1,表?同意连接,连接完成之后将SYN=0

FIN:在tcp四次挥?时第?次将FIN=1,表?此报?段的发送?数据已经发送完毕,这是?个释放链接的标志

ACK:当ACK=1时,我们的确认序列号ack才有效,当ACK=0时,确认序号ack?效,TCP规定:所有建?连接的ACK必须全部置为1

序号(seq):占 32位4 个字节,序号范围[0,2^32-1],序号增加到 2^32-1 后,下个序号又回到 0。TCP 是面向字节流的,通过 TCP 传送的字节流中的每个字节都按顺序编号,而报头中的序号字段值则指的是本报文段数据的第一个字节的序号。例如:我们的seq = 201,携带的数据有100,那么最后?个字节的序号就为300,那么下?个报?段就应该从301开始.

确认号(ack):占 32位4 个字节,期望收到对方下个报文段的第一个数据字节的序号。当标志位ACK值为1时,才能产生有效的确认号ack。并且:ack=seq+1;

RST:当RST=1时,表明TCP连接出现严重错误,此时必须释放连接,之后重新连接,?叫重置位.

URG:紧急指针标志位,当URG=1时,表明紧急指针字段有效.它告诉系统中有紧急数据,应当尽快传送,这时不会按照原来的排队序列来传送.?会将紧急数据插?到本报?段数据的最前?

PSH:推送操作,提示接收端应用程序立即从TCP缓冲区把数据读走。

rip动态路由的配置:

RIP协议:标准的距离矢量型IGP协议:存在V1和V2版本,使用跳数作为度量,默认优先级为100

v1:由类别,不携带子网掩码-不支持子网划分,子网汇总V2:无类别携带子网掩码-支持子网划分,子网汇总。

v1广播更新--255.255.255.255 v2组播更新-224.0.0.9 rip 破环机制:从此口入,不从此口出

rip 1 启动时可以配置进程号,仅具有本地意义,默认为一 version 1选则版本一 network :不需要写掩码,rip必需宣告主类:激活:可选中的接口可以收发rip的信息;路由:被选中的接口可以共享网段信息给其他网络邻居 手工配置:网络密钥:在与邻居直连的接口上配置:rip authentication-mode md5 usual 123456(邻居间的密钥必须完全一致) ripv2手工汇总:在更新路由器上,所有更新发出的接口上配置汇总即可: interface g0/0/0 rip summary-address 2.2.2.0 255.255.254.0(此处子网掩码不可省略) 沉默接口:用于路由器被宣告rip中的连接终端接口,被沉默后将不在周期发送rip信息 silent-interface eth 0/0/0 缺省路由配置(边界路由器只能静态手工添加):default-route originate 加快收敛:(加快收敛速度,缩短时间)timers rip 15 90 150

OSPF: 开放式最短路径优先协议:无类别链路状态型协议:(携带子网掩码)

区域之内传拓扑,区域之间传路由

一.ospf的数据包:周期收发,来确定hello存活,---keeplive包 包括:DBD数据库描述--本地的LS数据库所有信息的目录 LSR 链路状态请求--用于向对端询问 LSU 链路状态更新--携带LSA具体信息 (LSA-链路状态通告--具体的拓扑或路由信息) LSack链路状态确认

二.ospf的状态机:Down 一旦接收到对端的hello包,进入下一个状态机 lnit 初始化 接收到对端的hello,且该包中存在本端的RID,进入下个状态 2way双向通讯 邻居关系的建立标志条件 条件:

exstrat :预启动,使用不携带数据库目标信息的DBD包进行主从关系的选举,RID数值大为主,邮箱进入下一个状态机 Exchang:准交换 使用携带数据库目录的DBD包进行目录共享 Loading: 加载 查看完对端的DBD目录后,基于本地未知的LSA;使用LSR向对端查询,对端使用LSU来进行LSA内容的共享应答;本端收到LSA后,需要使用LSack来进行确认; FULL 转发 邻接 (毗邻)关系建立的标志

三.OSPF的工作过程

ospf协议启动配置完成后,邻居间收发hello包认知对端,建立邻居关系,生成邻居表; 邻居关系建立后,将进行条件匹配;匹配失败将维持邻居关系;仅hello包周期保活即可; 条件匹配的邻居将进一步发展为邻接关系;过程中使用DBQ交换数据库目录;使用LSR/LSU/LSack来获取本地未知的LSA信息;完成数据库表的同步 之后本地基于本地完整的数据库,生成有向图,再将有向图转换为最短路径树,之后以本地为起点计算到达所有未知网段的最短路径,然后将其加载到本地的路由表中; 收敛完成:之后每10s,邻居或邻接间周期使用hello包保活即可;每30min邻接关系周期比对一次数据库目录,查漏补缺;

拓扑结构突变: 1.新增网段 2.断开网段 3.无法沟通

4.ospf的基础配置:

ospf 1 router-id 1.1.1.1 启动时,可以定义进程号,默认为一;仅具有本地意义,还可以定义RID(使用IPV4作为,全网需要唯一,手工配置-环回接口ip地址数值最大--物理接口数值最大) ? 宣告:1.激活 2.共享该接口信息 3、区域划分 ? area 0 ? network 1.1.1.1 0.0.0.0 ? network 12.1.1.0 0.0.0.255(反掩码) ? ospf在宣告时可以使用反掩码进行精确匹配

区域划分规则:

1:星型结构---中心骨干区域为编号0,大于0为非骨干区域,所有非骨干必须连接到骨干; 2:必须存在ABR--区域边界路由器

过程:ospf启动配置完成后,邻居间收发hello包,获取对端RID,生成邻居表(display ospf peer brief--查看ospf邻居表) 邻居关系建立后,邻居间进行条件的关注,条件不匹配将维持邻居关系,仅hello包周期保活;条件匹配邻居间可以进行邻接关系的建立,将使用DBD/LSR/LSU/LSack来获取未知的LSA信息,完成所有路由器的LSDB的同步--数据库表(display ospf lsdb)但数据库同步完成后,本地基于数据库转换为有向图,再转换位最短路径树。然后以本地为起点到计算到达本地所有未知网段的最短路径,然后将这些路由加载到本地的路由表中;度量为cost值cost=开销=参考带宽/接口带宽 默认参考带宽为100m, 当接口带宽大于参考带宽时,cost值为1 可能导致选路不佳;修改带宽(bandwidth-reference 1000)切记:全网需修改一致 ospf优选整段路径cost值之和最小;

五-ospf的拓展配置:

1.从邻居关系建立成为邻接关系的条件 条件需要关注网络类型: 点到点网络:在网段中只能存在两个节点; MA(多路访问)网络:在一个网段中可以配置的节点数量不限制;而不是当下连接了几个节点; ospf协议在点到点网络类型中,所有的邻居关系均会建立为邻接关系; 在MA网络中,将进行DR/BDR选举;所有非DR/BDR仅仅建立邻居关系,不成为邻接,避免了重复更新。 选举规则:先比较所有参选接口的优先级,默认为1;大优,取值范围0-255;若优先级相同,比较参选设备的ospf协议的RID,数值大优; 通过修改参选接口的优先级,可以干涉选举:(ospf dr-priority __) 切记:该选举非抢占,在修改优先级后,必须手工重启所有参选设备的ospf协议,才能进行重新选举。(reset ospf process) 若参选接口的优先级为0;表示退出选举,无需重启进程。 注:DR是每个网段选一个,一个局域网中可以有多个DR

2.认证:ospf authentication-mode md5 1 cipher (密码)

3.汇总:ospf协议不支持接口汇总,因为区域内部传输拓扑信息,物理信息不可汇总,在区域与区域间ARP进行路由共享时,可以汇总配置。

在边界路由器上配置该命令

(ospf 1)(area 0)(abr-summary 1.1.0.0 255.255.252.0)

4.沉默接口:--用于被宣告的连接用户终端的接口,不再周期发送ospf协议的任何信息,不得配置于连接邻居的骨干接口,否则无法建立邻居关系。(silent-interface Gigabitetherent 0/0/1)

5.加快收敛:邻居间hello time10s dead time40s 修改本端接口的hellotime ,本端dead time 自动四倍关系匹配。对端需要手工修改,其次邻居间的hello time 与dead time 必须完全一致,否则无法建立邻居关系。(进入接口后 ospf timer hello 5)

6.缺省路由:边界路由器上,配置缺省指令后,将主动向内部发送缺省信息,之后内部所有路由器自动生成缺省路由指向边界路由器(ospf 1)(default-route-advertise always)

VLAN:虚拟局域网:路由器与交换机协同工作后,将一个广播域逻辑切分为多个;配置思路:

1.交换机上创建VLAN

2交换机上各个接口划分到对应的VLAN中

3.TRUNK(中继)干道 ---sw-sw sw-rout

4.VLAN间路由 -- 路由器子接口 多层交换机SVI

vlan配置命令:

1.创建vlan 编号0-4095 其中1-4094可用 ,默认存在vlan1,且所有接口默认属于vlan1;

创建vlan--vlan2

批量创建vlan--vlan batch 2 to 10

批量删除vlan--undo vlan batch 2 to 10

2.交换机上的各个接口划分到对应的vlan中

进入接口--interface eth0/0/0

先将该接口修改为接入模式--port link-type access

再将其划分到对应的vlan中--port default vlan 2

3.TRUNK干道--不属于任何一个vlan,可以承载多个vlan的流量转发,过程中需要标记和识别不同vlan的流量

进入接口--port-group group-member interface eth0/0/0 interface eth0/0/1

先将接口修改为trunk模式--port link-type trunk

在定制允许列表,默认进仅允许vlan1通过-- port trunk allow-pass vlan 2to3

4.路由器的子接口-vlan区间路由:进入接口:interface eth0/0/0.1

dot1q termination vid 2 (定义其管理的vlan标签)

ip address 192.168.1.1 24 (定义该vlan接口的网关)

arp broadcast enable (开启arp协议)

ACL访问控制列表:

作用:

1.在流量转发的基础上限制流量的进或出

2.为其他策略定义感兴趣流量。

当数据包流量经过路由器接口进或出时,ACL可以匹配流量产生动作---允许 拒绝。

匹配规则:自上而下逐一匹配,上条匹配按上条执行,不再查看下一条。

cisco系在表格末尾隐含拒绝所有;华为系在末尾隐含允许所有;

分类: 标准 拓展

标准 ----仅关注数据包中的源 ,目标IP地址 ,还可以关注目 标端口号或协议

acl配置命令:

1.标准ACL----由于标准ACL仅关注数据包中源ip地址,故调用时,应该尽量的靠近目标,以免误删流量

编号为2000-2999均为标准列表 ,一台设备上可以创建多张表格,但一个接口的一个方向上只能调用一张表格

命令1:acl 2000

rule deny source 192.168.1.1 0.0.0.0 (拒绝)(反掩码精确匹配)

rule permit source 192.168.2.0 0.0.0.255(许可)

rule deny source any

在编辑acl规则时,需要清楚的定义动作-允许或拒绝 ,使用通配符精确设计范围

默认以5为步调,自动添加序号,便于插入和删除

rule 7 permit source 192.168.1.2 0.0.0.0

undo rule 10

命令2:interface eth0/0/0 (首先进入接口)

traffic-filter acl 2000

traffic-filter outbound acl 2000 (出战写入表开始工作)

traffic-filter inbound acl 2000 (入栈写入表开始工作)

规则编写完成后,必须在接口宣告方可使用,一定要注意方向

拓展ACL

---由于拓展ACL精确匹配流量源,目地址,故调用时应该尽量靠近源头,避免资源浪费:

注意:一台路由器上可以写n张acl表,但一个接口只能调用一张acl表。

1.关注数据包中的源,目标ip地址:

命令1:acl 3000

rule deny IP source 192.168.1.2 0.0.0.0 (源ip)destination 192.168.3.2 0.0.0.0 (目标ip)

注意:目标ip 地址均使用通配符标定范围,或any代表所有,切记表格调用到接口方可生效。

2.关注数据包中的源,目标ip地址,以及目标端口号:

命令1:acl 3000

rule deny tcp source 192.168.1.2 0.0.0.0 destination 192.168.2.2 0.0.0.0 destination-port eq 23

以上规则拒绝了192.168.1.2 对 192.168.2.2 的tcp下目标端口23 访问--拒绝talent

Talent 远程登陆 基于TCP的23号端口进行访问; 要求登录与被动设备可达,其次被登录设备开启了远程登陆服务

在被登录设备上预设登陆的账号和密码

命令1:aaa

ocal-user qiaolu privilege level 15 passwd cipher 123456

ocal-user qiaolu service-type tainet

虚拟登录接口调用

命令2: user-interface vty 0 4

authentication-mode aaa

配置命令: 在边界路由器上,连接外部的接口上配置,

[r2] acl 2000 先使用acl定义可被转换的私有ip地址范围

rule permit source 192.168.1.0 0.0.0.255 同意1.0范围内的IP流量转发

q 返回上一个界面

int g0/0/0 进入该外部接口,在边界路由器连接外部的接口上进行一对多的配置;

nat outbound 2000 acl表格中关联2000的IP流量,在通过该接口转发时修改源ip地址为该物理接口(g0/0/0)的IP地址,并产生临时的映射列表,用于数据包的回复。

一对多 : 将多个私有ip地址转换为同一个公有ip地址,基于端口号进行区分,故又被分成为PAT-端口地址转换,属于一种动态的nat。

缺点: 1ms内最多同时进行65535个数据包的地址转换;超过该数据包量需要排队增加延时;

由于一对多是内部多个ip地址与外部的一个ip产生临时的映射关系;故只能内部向外部进行数据请求后,产生映射记录;才能让外部服务端基于该记录进行应答,--- 内部服务器无法为外部设备提供服务。

配置命令:int g0/0/0

nat static global(公有的) 12.1.1.1 inside (私有的) 192.168.1.2

公有ip地址12.1.1.1与私有ip地址192.168.1.2 进行状态转换

一对一:标准的一种静态nat,固定将一个ip地址转换为另一个ip地址,在边界路由器上连接外部的接口进行配置,华为要求一对一的公有ip地址,不能为外部接口上实际配置的IP地址

端口映射: --属于静态nat :仅用于一个ip地址的一个固定端口与另一个ip地址的一个固定端口进行地址转换

当外部访问本地g0/0/2的ip地址,且目标端口号为80时,将目标ip地址转换为192.168.1.2的80端口号

配置命令:int g0/0/2

nat static protocol tcp global current-interence 80 inside 192.168.1.2 80

nat static protocol tcp global current-interface 8888 inside 192.168.1.3 80

             ? 当外部设备访问到g0/0/2 的接口ip地址时,且目标端口号8888 ,那么将被转换为192.168.1.3的80端口;

多对多:将多个私有ip地址转换为多个公有ip地址

先使用acl定义私有ip的地址范围

[r2] acl 2005

rule permit source 172.16.0.0 0.0.255.255

q

再设定公有ip地址范围

[r2] nat address-group 1 12.1.1.3 12.1.1.10 从12.1.1.3 到10 最后到边界路由器上,连接外网的接口上进行多对多的配置;

[r2] int g0/0/2 进入外网接口

nat outbound 2005 address-group 1

注:以上的配置命令,实现效果为,172.16.0.0 0.0.255.255 范围内所有的私有ip地址进入边界路由器,向内部访问时,将以65535个端口为批次循环使用12.1.1.3 到12.1.1.10 的所有公有ip地址;实则为同时多个一对多;

若在命令的尾部添加no-pat的指令 ,多对多将从动态nat 变成静态nat

进入连接外部网络的接口后

nat outbound 2005 address-group 1 no-pat

增加no-pat 后,最先来的边界路由器的ip地址,将逐一与边界的公有ip地址进行一对一的绑定,当所有公有ip被被绑定后,其他私有地址将无法再被转发。

文章来源:https://blog.csdn.net/2301_76602495/article/details/135601553
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。