ARP|ARP 路由表 RIP ACL NAT

**
ACL **
ARP:地址解析协议-----------知道逻辑定位,不知道物理定位
ARP工作流程:
假设主机A和B在同一个网段,主机A要向主机B发送信息,具体的地址解析过程如下:
1.主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。
2.如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。
3.主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。
4. 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。
ARP缓存表:
设备通过ARP解析到目的MAC地址后,将会在自己的ARP表中增加IP地址到MAC地址的映射表项,以用于后续到同一目的地报文的转发。
分类:
1)AARP正向ARP----使用广播机制,通过对端的IP地址获取对端MAC地址
2)RARP反向ARP----通过对端的MAC地址来获取对端IP地址
3)自返ARP(无故ARP):新添设备向周围广播自己的MAC,顺便解决地址冲突问题,每个设备的端口MAC唯一
4)代理ARP:如果需要进行跨网段通信,设备需要将流量先交给网关,再由网关发送ARP广播去寻找目标,收到ARP应答的网关重新对数据进行封装,最终完成通信,整个通信过程不改变源和目标IP地址。-------代理ARP能够解决跨网段请求MAC地址的问题
ARP攻击就是通过伪造IP地址和MAC地址实现ARP 欺骗,进行发送伪造的免费ARP,或者发送伪造的ARP应答,主机接受到免费的ARP或者ARP应答后就会进行修改自己的ARP缓存表,导致通信被阻塞等问题。
局域网内通信:
1)无交换机,只有一条路时:CSMA/CD 带碰撞检测的载波侦听多路访问技术
侦听到冲突,实施随机时间避让
2)有交换机(隔离冲突域):在交换机中缓存,再发送
新型交换机:每个接口一个内存,极短时间内,点对点通信
CDMA/CD即带冲突检测的载波监听多路访问技术(载波监听多点接入/碰撞检测)
工作原理:发送数据前,先侦听信道是否空闲,若空闲,则立即发送数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同时有两个或两个以上的节点都有提出发送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随机时间,在重新尝试。简单总结为:先听后发,变法边听,冲突停发,随机延迟后重发
优点:原理简单,技术上容易实现,网络中各工作站处于平等地位,不需要集中控制,不提供优先级控制。但在网络负载增大时,发送时间增长,发送效率急剧下降。
载波侦听:侦听线路是否干净,是否有其他数据,等待机制
多路访问:多台PC同时访问局域网
冲突检测:随机避让算法 一旦侦听到冲突,就随机出来一个数字,这个数字就是延后发送的时间
CSMA-CD:采用IEEE 802.3标准,应用在数据链路层,在PC端来做
后期发展过程中产生了交换机内部家用(总线型)商用(矩阵型)两种。
总线型交换机对总线的要求过高并容易造成带宽不够的阻塞。
矩阵型交换机突破了共享带宽限制,在交换网络内部没有带宽瓶颈,不会因为带宽资源不够而产生阻塞。
交换机中MAC表需同步到硬件的CAM表(一个时钟频率可查找完) 路由表–>cef表
ARP|ARP 路由表 RIP ACL NAT
文章图片

寻址过程:
源mac地址a 目标mac f 源IP1.1 目的ip 3.2
由于是第一次通信,则通信地址不在同一网段,找网关,发arp,找到源mac a 目的mac b。路由器作用是去掉二层封装,看到源IP1.1 目的IP3.2,然后路由器查表,路由表去往3.2的路从E1出去,下一跳为2.2,从E1出来封装三层,源mac c 源IP1.1 目的ip3.2,不知道目的mac,发送arp到E0,找到目的mac d; 同理去掉二层封装,源IP1.1 目的ip3.2 ,查询路由表,查出出接口E1和下一跳3.2,源IP1.1 源mac e 目的IP3.2 目的mac f。
**
路由表 **
路由表的构成:
1、协议
分类 :
(1)链路层自发现 C-网段 L-主机
(2)静态—人工写上去的
(3)动态—程序计算
分类:根据AS分类 IGP和EGP
2、路由前缀:网络目的地址
3、(管理距离/度量值)
管理距离(来源的信任度)0-255 0完全信任
度量值:为动态服务(静态和直连没意义)只能在一个相同动态协议下比较。
4、出接口
5、下一跳
路由表查找方式
1.递归查找—没有找到出接口时会递归,从上往下查找,找到一个出接口才进行转发
2.精确(最长匹配原则)查找—选择具有最长(最精确)的子网掩码, 匹配,则转发;无匹配,则找默认路由 0.0.0.0/0 2.2.2.2 e0,默认路由都没有,则丢弃——远古级别,现在不用
路由表和MAC表的区别:
查找效率MAC表快,一次查找,CAM芯片无论多大一个时钟频率就能找完
MAC表是一次查找,本质查的是CAM表,路由表查找比较费时。
**
RIP **
RIP—路由信息协议
RIP为距离矢量协议,基于UDP520端口进行工作;使用跳数作为度量;支持等开销负载均衡,默认4条,最大6条,IOS版本12.4以上16条;管理距离为120;周期更新30–无ack、无hello包,触发更新;
存在V1/V2/NG(IPV6)
V1和V2的区别:
1、V1有类别,V2无类别;V2支持VLSM/CIDR;V1支持连续子网;
2、V1广播更新–255.255.255.255 V2组播更新–224.0.0.9
3、V2支持认证
宣告:
1.路由参与传播
2.使接口具有收发rip数据包的能力(若接口连接pc/网关口,应将接口调为被动接口,防止发送数据passive-interface e0/1)
主类宣告:路由器上所有接口都会被宣告到rip中,该接口无法划入其他网络域中
被动接口 Passive-interface
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#Passive-interface default
R1(config-router)#No passive-interface s1
路由表的放置原则
1、表内没有的路由就添加,出接口就是接收到接口,下一跳的添加是路由器的发出路由数据包的出接口的IP地址
2、如果有路由先看管理距离,管理距离小的放置,同种协议理应看度量但实际不看,先看是否同源如果同源无条件放置,不同源才比较开销
当拓朴发生变化时所有接口发送request尽量找回丢失网段强制回应缺失路由
Request机制:当网络拓扑发生变动时 不能一直等待rip周期,更快的找回变动路由
向所有接口发送request包,强制其他路由器回应请求路由
数据受TTL时间限制,不会无限循环
RIP防环机制:
1、水平分割—此口进不从此口出----直线拓扑防环—避免重复更新----MA网段避免重复更新
并非所有情况都有益,手工关闭:no ip split-horizon(接口下)
2、最大跳数—15跳,16跳不可达
3、毒性逆转—触发更新
将跳数写为16,路由可能消失;标记(possible down)的路由再次回来,称为逆转;毒性逆转可以忽略水平分割
4、抑制计时器 ----------- 30s 更新 180s 失效 180s 抑制 240s刷新
同源更新,等待180s再更新。180s之后还有更新,说明这条路由死亡。180s之后此路由回来,存活。
V1和V2版本兼容性问题:
默认V1设备收发V1的路由,V2设备收发V2路由;升级版本1设备收V1/2,发V1;若需兼容,可以修改接口的收发版本规则;
R3(config)#interface s1/0
R3(config-if)#ip rip send version 1 2
R3(config-if)#ip rip receive version 1 2
注:V1设备即使修改发送V2路由,也只是更新的目标地址转换成组播,但子网掩码依然无法携带;V2设备修改为发送版本1,可以模仿V1设备不携带掩码;
控制RIP选路–偏移列表–在控制层面更新进出的接口上,人为加大度量;可以叠加
R1(config)#access-list 1 permit 1.1.1.0 定义感兴趣流量
R1(config)#router rip
R1(config-router)#offset-list 1 in 1 serial 1/1
ACL 方向 增加1 进出接口
v1的连续子网问题
连续子网—母网相同,掩码长度一致;
在V1的RIP中,若本地即将共享给邻居的路由与本地和邻居直连网段为连续子网,那么本地将携带主机位发送路由给邻居,邻居在接收到存在主机位的路由时,将使用与邻居直连网段的掩码来添加到这些路由中;
若网络地址本身没有形成连续子网,可以使用第二地址来构建
r1(config)#interface s1/1
r1(config-if)#ip address 1.1.3.1 255.255.255.0 secondary
Rip的缺点:只能进行主类网宣告
弥补:
1.创建VLAN并把不想宣告的接口划入VLAN
2.输入指令 no ip rip send version 2
修改时间 times basic 30 180 180 240
如果不想宣告接口时,关闭接口接送发送宣告或者通过过滤进行
no ip rip receive ver 2
no ip rip send ver 2
**
ACL **
ACL:访问控制列表
ACL是一张表 每张ACL可包含多个条目 每个条目需要做permit/deny动作,方向有in和out
ACL最后一条一定是access-list 1 deny any
ACL:
1、访问控制-----在路由器上流量进或出的接口上控制流量;
2、定义感兴趣流量 —为其他的策略匹配流量
匹配规则:至上而下逐一匹配,上条匹配按上条执行,不再查看下条;末尾隐含拒绝所有
类型:
1、标准ACL------仅关注数据包中的源ip地址,在最靠近目标的接口上调用
检查源地址
通常允许或拒绝整个协议簇
编号范围1-99或者1300-1999
Router(config)#access-list 1 deny host 192.168.4.2 拒绝单一设备
Router(config)#access-list 1 deny 192.168.4.0 0.0.0.255 拒绝范围
Router(config)#access-list 1 deny any 拒绝所有
Router(config)#access-list 1 permit any 允许所有
Router(config)#interface fastEthernet 0/0.1
Router(config-subif)#ip access-group 1 out 调用
2、扩展ACL-----关注数据包中源、目标ip地址、目标端口号、协议号,在最靠近源的接口上调用
检查源地址和目的地址
通常允许或拒绝特定协议和应用程序
编号范围100-199 或者2000-2699
Eq 等于
Gt 大于
Lt 小于
Neq 不等于
Range 范围
Ack 标志位(检查)
Fin 结束位
Psh 也在标志位内
Rst 重置位 例如:如果百度发送过来一个rst标志位,说明百度要求PC重置连接,一般用于阻止访问某个网站
Fragments 分片
Time-range 给ACL设置一个生效时间 //生效时间段
log日志
debug ip packet 跟ACL号可详细查询
ARP|ARP 路由表 RIP ACL NAT
文章图片

ARP|ARP 路由表 RIP ACL NAT
文章图片

ARP|ARP 路由表 RIP ACL NAT
文章图片

ARP|ARP 路由表 RIP ACL NAT
文章图片

ARP|ARP 路由表 RIP ACL NAT
文章图片

ARP|ARP 路由表 RIP ACL NAT
文章图片

ARP|ARP 路由表 RIP ACL NAT
文章图片

反掩码用法
access-list 1 permit 10.1.1.0 (抓路由)
access-list 1 permit 10.1.1.0 0.0.0.255(抓10.1.1.0的网段)
1表示不在意 0表示在意
O 10.1.1.0/24
O 10.1.1.1/32
access-list 1 permit 10.1.1.0 0.0.0.254 (抓偶数)
access-list 1 permit 10.1.1.1 0.0.0.254 (抓奇数)
默认+10生成序列号,便于删除和插入
Router(config)#ip access-list extended a
Router(config-std-nacl)#15 deny host 1.1.1.1-----------命名ACL的写法
扩展ACL一般用于抓流量
一般抓流量时不写源端口,因为源端口是随机值
1-1023是知名端口
1023以上为不知名端口
**
NAT **
NAT:网络地址转换
NAT可以让那些使用私有地址的内部网络连接到Internet或其他IP网络上,NAT路由在将内部网络的数据包发送到公用网络时,在IP包的报头把私有地址转换成合法的IP地址。
原理:改变IP包头,使目的地址,源地址或两个地址在包头中被不同地址替换
使用场景:IPV4网络,因为IPV6地址足够多,不需要进行转换,NAT解决了IPV4地址不够用的情况,还能一定程度上防止外部攻击。
交换机上做不了NAT,除非是大型交换机(耗内存,耗操作)
ip nat inside source
数据从Inside进入 先查路由表再转换 原转换
数据从outside进入 先转换后路由 目的转换
show ip nat translation nat查看的转换表
一对一:(静态)
r2(config)#ip nat inside source static 192.168.1.2 12.1.1.2
一对多:(动态)PAT --端口地址转换
将多个私有ip地址转换为同一公有ip地址,依赖数据包中的端口号来进行区分;
先使用ACL定义感兴趣流量----哪些私有ip地址被转换
r2(config)#access-list 1 permit 192.168.1.0 0.0.0.255
r2(config)#access-list 1 permit 192.168.2.0 0.0.0.255
r2(config)#ip nat inside source list 1 interface fastEthernet 1/0 overload
多对多:(静态或动态)
r2(config)#access-list 2 permit 192.168.0.0 0.0.255.255 定义内部本地地址范围
r2(config)#ip nat pool xxx 12.1.1.2 12.1.1.10 netmask 255.255.255.0
定义内部全局地址范围 公有地址建立,集中
r2(config)#ip nat inside source list 2 pool xxx overload 配置多对多NAT
在配置多对多NAT时,是否携带overload将决定为静态或动态多对多;
不带—静态多对多 最先来的边界路由器上的9个私有ip地址与这9个公有ip地址形成一对一;
携带—动态多对多 循环占用每个公有ip地址进行PAT;
【ARP|ARP 路由表 RIP ACL NAT】端口映射:
r2(config)#ip nat inside source static tcp 192.168.1.100 80 12.1.1.2 80
本地 全局
通过外部访问12.1.1.2,同时目标端口为80时,目标ip地址就一定被转换为192.168.1.100,端口号80;
r2(config)#ip nat inside source static tcp 192.168.1.200 80 12.1.1.2 8080
通过外部访问12.1.1.2同时目标端口为8080时,目标ip地址就一定被转换为192.168.1.200,端口号80;
切记:一旦进行nat配置,就必须定义边界路由器上各个接口的方向
r2(config)#interface fastEthernet 1/0
r2(config-if)#ip nat outside
r2(config-if)#exit
r2(config)#interface fastEthernet 0/0
r2(config-if)#ip nat inside
r2(config-if)#exit
r2(config)#interface fastEthernet 0/1
r2(config-if)#ip nat inside
捕捉下一跳区分同源NAT
route-map G permit 10
match in address 1(捕捉语言、目的)
match ip naxt-hop 9(捕捉下一跳)
强行让内网用户访问私网地址ip nat enable
如果内外网用户访问内部服务器都使用公网域名访问,现有的inside和outside无法解决问题,解决思路有两个:内部部署DNS服务器使域名映射私网;接口下ip nat enable 再ip nat source,没有outside和inside之分

    推荐阅读