# PacketAdapter -- Packet Filtering & Adaptation tools ## 简介 - PacketAdapter 是一个数据包过滤/转换/适配工具。 - PacketAdapter 并不会凭空产生数据包,而是将 MRZCPD 上送的数据包重新转换/适配后通过 RAW Socket 回注到管理口。 - 可用于 Overlay networks 中 Packet encapsulation and decapsulation,屏蔽端到端协议层之间的差异。 ## 应用 -- 实现 GTP Overlay 数据包的解封装 PacketAdapter 通过 iptables 将 Firewall 发送的 GTP RST 包进行过滤,然后将 GTP 数据解封装后回注到网络中。 例如:将 “MAC/IPv4 or IPv6/UDP/GTP1/IPv4 or IPv6/TCP or UDP“ 中的 "/IPv4 or IPv6/UDP/GTP1" 协议层剥离。 ``` +-----------+ +-----------+ | ********* | | ********* | +-----------+ +-----------+ | IPv4/IPv6 | | IPv4/IPv6 | +-----------+ +-----------+ | GTP1 | | | +-----------+ | | | UDP | ==> | | +-----------+ | | | IPv4/IPv6 | | | +-----------+ | Replace | | MAC | | MAC | +-----------+ +-----------+ ``` 注意: * /MAC/IPv6 的 first next header 必须为 UDP。 * 目前不支持 GTP 扩展头。 ## 应用 -- 实现 VLAN Overlay 数据包的解封装 ``` +-----------+ +-----------+ | ********* | | ********* | +-----------+ +-----------+ | IPv4/IPv6 | | IPv4/IPv6 | +-----------+ +-----------+ | VLAN | ==> | | +-----------+ | | | VLAN | | | +-----------+ | Replace | | MAC | | MAC | +-----------+ +-----------+ ``` ## 应用 -- 实现 MPLS Overlay 数据包的解封装 ``` +-----------+ +-----------+ | ********* | | ********* | +-----------+ +-----------+ | IPv4/IPv6 | | IPv4/IPv6 | +-----------+ +-----------+ | MPLS | ==> | | +-----------+ | | | MPLS | | | +-----------+ | Replace | | MAC | | MAC | +-----------+ +-----------+ ``` ## 应用 -- 实现 PPPOE Overlay 数据包的解封装 ``` +-----------+ +-----------+ | ********* | | ********* | +-----------+ +-----------+ | IPv4/IPv6 | | IPv4/IPv6 | +-----------+ +-----------+ | PPPOE | ==> | | +-----------+ | Replace | | MAC | | MAC | +-----------+ +-----------+ ``` ``` +-----------+ +-----------+ | ********* | | ********* | +-----------+ +-----------+ | IPv4/IPv6 | | IPv4/IPv6 | +-----------+ +-----------+ | PPPOE | ==> | | +-----------+ | | | VLAN | | | +-----------+ | Replace | | MAC | | MAC | +-----------+ +-----------+ ```