链路层的数据格式是帧,数据帧的具体格式是帧头+payload,数据的形态就是skb
链路层需要进行一定的数据校验,如:校验
数据到达网络层,需要完成包头检测,其中包括了IP版本,总长度,TTL,数据体协议ID,packet ID,数据包的重组,类似帧收集合并成网络层PDU,网络层的PDU产生之后,就会经过netfilter了,入口源路由过滤主要是针对防火墙中的设置的源过滤(ip或者端口),如果顺利通过,接下来就是判断目的是否是本机,从而决定是否发送到local deliver的filter,如果不是发到本机,再就是ip forward的路由过滤,真正的路由表就在此处,路由表的key就是五元组,它的val就是出口的网卡,如果再顺利通过,最后就是在出口处的目的路由filter,这个也能在防火墙中配置,也就是这些配置条目要加载到内核中,还有一个netfilter就是local out的方式。
路由表的作用是找到下一跳,它的实际含义是指下一跳所对应的出口网卡,所谓的入口源路由,也就是pre routing,实际含义就是执行路由之前处理,post routing它的实际含义就是执行路由规则之后的处理。
路由表中的规则的优先级是如何的?
应该是根据路由规则中的信息模糊程度来做优先级的
路由配置越是清晰优先级就越高
默认路由或者网关的优先级如何?
nat是目的路由filter,将源IP更换成某个IP,nat属于post routing
应该说router是所有的包都要经过的,都要来判断是否是本机还是出去的网卡
router是转发规则,pre routing是过滤规则,post routing更多地是修改规则,也就是修改源
阅读(1059) | 评论(0) | 转发(0) |