1. tap
○ 系统内核中的虚拟网络设备
○ 数据链路层(2层),以太网(Ethernet)协议
2. namespace
○ 不同namespace的资源互相不可见,实现隔离
○ 从网络的角度看,实现了隔离独立的网络协议栈
○ 协议栈包括:接口,IP,路由,防火墙规则,sockets等
3. veth pair
○ 一对设备,包含两个tap,可连接两个namespace
4. bridge
○ 交换机,可以连接多个同网络的tap
○ 可通过多个veth pair连接多个相同网络的namespace
5. router
○ 路由器,可以连接多个不同网络的tap,基于ip_forward
○ 可通过多个veth pair连接多个不同网络的namespace
6. tun
○ 网络层(3层),三层隧道,IP点对点设备
○ 支持的5种隧道:
§ ipip:以IPv4的报文头封装IPv4的数据包,IPv4 in IPv4
§ gre:通用路由封装(Generic Routing Encapsulation,GRE)以IPv4的报文头封装任意协议的包,IPv4/IPv6 over IPv4
§ sit:以IPv4的报文头封装IPv6的数据包,IPv6 over IPv4
§ isatap:站内自动隧道寻址协议(Intra-Site Automatic Tunnel Addressing Protocol,ISATAP),用于IPv4网络中IPv4/IPv6节点间通信
§ vti:虚拟隧道接口(Virtual Tunnel Interface,VTI),为IPsec隧道提供一个可路由的接口类型
7. iptables
○ 运行于内核空间,实现了防火墙、NAT等功能
○ 内置5张表:filter表用于防火墙;nat表用于NAT;mangle表用于流量整形;raw表;security表
○ NAT包括:静态NAT(Static NAT),动态NAT(Dynamic NAT),端口复用(Port Address Translation)
○ 防火墙:规则包括入接口,出接口,协议,源地址,目的地址,源端口,目的端口
○ 流量整形:修改数据包服务类型(Type of Service,ToS),生命周期(Time to Live,TTL)以及标志(Mark),以实现服务质量(Quality of Service,QoS)和策略路由等