HCLA从基础到成熟

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被被绑定后,其他私有地址将无法再被转发。

你可能感兴趣的:(网络,智能路由器)