netfileter

netfilter是网络数据包过滤处理工具,支持四种主要的功能,其中包括nat和filter功能,nat的优先级较高

 

iptables

iptables是netfileer的管理工具,用来定义规则和行为动作

 

nat

进行网络地址转换,默认情况下,当数据包往外发送时先进行路由转换,再进行nat,发到本机的数据包则先进行nat转换再进行路由,现在多采用端口复用技术,nat把发出的数据包的端口进行映射并记录。可以节省外网ip,不同局域网内的主机可以采用相同的内网ip

 

五个挂载点

数据包至少经过一个挂载点,nat可作用在prerouting,postrouting和output这三个挂载点上,当数据包经过这三个挂载点时nat可根据规则和行为对满足规则的挂载点进行相应的处理

 

数据包正常情况下在五个挂在点上的传输顺序:

分三种情况:

1.由外向内的数据包:prerouting—>进行路由,判断是发送给本机的数据包->in

2.由内向外的数据包:out->路由->postrouting

3.转发,先不考虑

 

根据数据包的目的ip进行路由选择,之后将下一跳的ip地址转换为mac地址,并填入数据包的mac首部,数据包在转发过程中源mac和目的mac一直在改变,但源ip和目的ip一直不变