几张表之间的关系

一、MAC表项:

从ISO网络模型上划分来说,路由表位于网络层,它用来进行路由和寻址功能。而Mac表则维护数据链路层,用来记录MAC地址-->端口之间的映射。说到MAC表,虽然每一台网络设备都存在,但是更多的是在交换机中进行详细介绍。
1、MAC表中包括的内容有:

1) MAC地址

2) 物理接口

3) Mac条目类型(可能)

3) 老化时间  

4) VLAN-ID(可能)

因为MAC表项也存在动态Mac和静态Mac之分,因此在Mac表中会有老化时间、类型。
静态MAC地址与静态路由一样,有管理员负责管理维护;而动态Mac表项则是通过学习而来。在交换机中一般存在两个重要线程:地址学习线程、报文转发线程。
2、地址学习线程:

源MAC学习法: 交换机从网络上收到报文后,利用数据包的源MAC地址进行学习,并建立MAC表项。

端口移动机制:交换机收到报文后,如果发现报文接收端口与MAC表中对应的端口不一致时,进行端口移动,将Mac地址重新学习到新的端口上。

地址老化机制:如果长时间没有收到某Mac表项对应的报文,则删除此表项。等下次报文来时重新进行学习。

3、报文转发线程:

交换机收到报文后,根据报文中的目的Mac查询Mac表。如果找到,则从相应的端口发出;如果没有找到,则向除入端口以外的所有端口发送(即传说中的泛洪);

如果交换机收到的报文目的Mac和源Mac所在端口相同,则丢弃此报文;

交换机收到的目的Mac为广播报文时,则向除入端口以外的所有端口转发广播报文。
注意:广播和泛洪是两个不同的概念,虽然有时两个都向所有的端口发送报文。

 

二、arp缓存表

在7层OSI模型中,IP地址工作在第三层(网络层),Mac地址工作在第二层(数据链路层),两者之间各行其道,互不干扰。在进行报文转发时,目的IP地址我们是明确的,但是目的Mac地址却不知道;在封装报文时,先封装IP头部,然后填充二层头部。但是由于不知道Mac地址,因此二层头部无法填充,此时便需要用到ARP协议,它通过查询指定IP地址对应的Mac地址,构建出一个Mac表项,我们通过查询此表项便可以知道:目的IP地址对应的Mac地址。因此在Mac表,本质上就是:IP地址和Mac地址间的映射。

ARP表项的老化时间默认20分钟

 

三、RIB路由表/FIB转发表

路由表被称为路由信息库(Routing Information Base,RIB),转发表也叫转发信息库(Forwarding Information base,FIB)

具备路由功能的华为数通设备(路由器、三层交换机等),都维护着两种重要的数据表:路由表(RIB)、转发表(FIB)。

1、RIB路由表

路由表通常存储在设备的动态内存中,如RAM随机存储器中,

每台路由器都维护着一张全局路由表,另外路由器所运行的每种路由协议也维护着该协议自己的路由表。

全局路由表,就是通过display ip routing-table命令输出的表格。

路由器可以通过多种途径获取路由信息,它可以运行多种动态路由协议,而每一种通过动态路由协议所获知的路由信息首先存储于该协议自己的路由表中,然后路由器根据路由优先级和度量值等信息来进行路由的优选,并将优选路由加载到全局路由表中。

将路由表视为路由器的控制平面,转发表位于数据平面。

 

实际上路由表并不直接指导数据转发,也就是说,路由器在执行路由查询时,并不是在路由表中进行报文目的地址的查询,真正指导数据转发的是FIB表,由于FIB表由RIB表生成,所以两张表具有一致性,在绝大多数场合中,我们阐述路由器转发数据过程时,会用“路由器查询路由表来决定数据转发的路径”这一说法,但需要注意的是,路由器查询的是FIB表,位于控制层面的路由表只是提供了路由信息而已。

路由表中有四类路由:

直连路由(由链路层协议发现的路由)

静态路由(由管理员手动配置的路由)

缺省路由(有管理员手动配置的路由)

动态路由(由动态路由协议发现的路由)

静态路由表特点:
静态路由是由管理员在路由器中手动配置的固定路由,由管理员负责维护工作,静态路由不会超时老化、也不会同网络拓扑结构的变化发生变化。静态路由由于完全需要管理员的维护,不能实时感知网络拓扑并进行调整,通常只用于小规模、拓扑简单的网络中。

动态路由表特点:
动态路由表由动态路由协议创建、更新、维护;常见的动态路由协议有:BGP协议、RIP协议、OSPF协议、ISIS协议、EIGRP协议等。动态路由协议最大的优势是:可以实时感知网络拓扑的变化,并对路由表做出相应的调整;网络扩展性好,适合大中型网络;

路由表匹配原则:

精确匹配算法

最长前缀匹配算法(Longest Prefix Matching, 简称LPM)


通常情况下,网络设备会同时实现这两种匹配算法,但是各家在实现上有所不同而已。路由匹配算法对于网络设备而言,非常重要。作为转发设备,如果路由条目达到一定数量(如十万条级别,百万条级别、千万条级别、…),就需要充分考虑匹配算法的性能问题。

2、FIB转发表

FIB表是位于路由器数据平面的表格,实际上它外观上与路由表非常相似,FIB的表项被称为转发表项,每条转发表项都指定要到达的某个目的地,所需要通过的出接口及下一跳IP地址等信息。

路由器将优选的路由存储在路由表中,而将路由表中活跃的路由下载到FIB表,并使用FIB表转发数据。

 

FIB表中数据往往被存储在一个ASIC专用集成电路中,这使得设备在FIB表中进行数据查询时,可以实现相当高的速度。当然,FIB表空间是有限的,因此,大型网络中要关注设备的路由表规模,在保证数据可达的前提下,通过各种机制及手段来减小设备路由表的规模

  

RIB表/FIB表不存在老化时间

FIB包含TimeStamp2、Destination/Mask这两个字段
  

四、nat地址转换表  

nat地址转换类型有静态转换、动态转换、Easy IP统一转换三种方式

下图为采用Easy IP方式的NAT地址转换表

 

  

五、端口映射表

 

六、IPSG静态绑定表

 

七、IPSG动态绑定表

 

八、防火墙会话表

 

九、防火墙Server-map表

1、在防火墙上开启ASPF【Application Specific Packet Filter | 应用级特定的包过滤】功能后,防火墙将能够识别7层应用,通过分析整段数据流的第一个报文,来预判出后续报文的应用类型,从而创建一张Sever-map表,Server-map表并不是当前连接的状态,而是防火墙预判出的后续报文的状态,当防火墙收到一个数据时,其先检查自身的会话表项,若没有找到会话表项,则查找Sever-map表,若能够找到Server-map表项,命中Server-map表项的数据不再受安全策略的控制

2、Server-map表的每个条目的老化时间时47s,超时后会自动清空当前表项

备注:不管FTP工作在哪种模式,只要是放行FTP类型流量都需要打开ASPF功能

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
权限功能的设计通常需要考虑以下几个方面: 1. 用户:存储用户基本信息及登录信息,如用户名、密码、邮箱、手机号等。 2. 角色:定义系统中的角色类型,如管理员、普通用户等。 3. 权限:定义系统中的权限类型,如查看、修改、删除等。 4. 用户角色关系:记录用户与角色之间关系。 5. 角色权限关系:记录角色与权限之间关系。 6. 操作日志:记录用户的操作历史,包括操作时间、操作类型、操作对象等。 下面是一个简单的 SQL 设计示例: ``` -- 用户 CREATE TABLE `user` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NOT NULL, `email` VARCHAR(50) NOT NULL, `mobile` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ); -- 角色 CREATE TABLE `role` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ); -- 权限 CREATE TABLE `permission` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `url` VARCHAR(200) NOT NULL, PRIMARY KEY (`id`) ); -- 用户角色关系 CREATE TABLE `user_role` ( `user_id` INT(11) NOT NULL, `role_id` INT(11) NOT NULL, PRIMARY KEY (`user_id`, `role_id`) ); -- 角色权限关系 CREATE TABLE `role_permission` ( `role_id` INT(11) NOT NULL, `permission_id` INT(11) NOT NULL, PRIMARY KEY (`role_id`, `permission_id`) ); -- 操作日志 CREATE TABLE `operation_log` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `user_id` INT(11) NOT NULL, `operation_type` VARCHAR(50) NOT NULL, `operation_time` DATETIME NOT NULL, `operation_object` VARCHAR(200) NOT NULL, PRIMARY KEY (`id`) ); ``` 在实际应用中,可能还需要增加一些其他的字段和,根据具体需求进行设计。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱潜水的鱼11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值