summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2023-08-11 09:53:48 +0800
committerluwenpeng <[email protected]>2023-08-11 09:53:48 +0800
commit41025a03ea0e7adf85f520c2cee76fd2607680d2 (patch)
treed2ebfcd4b42943ae2b22c3fd7e36125d94a04a82
parente34aa3f5e23d7fa0b95944269c499d5c1e7c23aa (diff)
更新README.md
-rw-r--r--README.md95
-rw-r--r--platform/test/README.md15
-rw-r--r--platform/test/inject_packet.pcapbin0 -> 2624 bytes
3 files changed, 71 insertions, 39 deletions
diff --git a/README.md b/README.md
index ed25218..ff0fccf 100644
--- a/README.md
+++ b/README.md
@@ -2,9 +2,8 @@
## 简介
-
-- PacketAdapter 是一个基于 iptables 的数据包过滤,转换/适配工具。
-- PacketAdapter 并不会凭空产生数据包,而是将 iptables 过滤的数据包重新转换/适配后再回注到网络中。
+- PacketAdapter 是一个数据包过滤/转换/适配工具。
+- PacketAdapter 并不会凭空产生数据包,而是将 MRZCPD 上送的数据包重新转换/适配后通过 RAW Socket 回注到管理口。
- 可用于 Overlay networks 中 Packet encapsulation and decapsulation,屏蔽端到端协议层之间的差异。
## 应用 -- 实现 GTP Overlay 数据包的解封装
@@ -15,7 +14,7 @@ PacketAdapter 通过 iptables 将 Firewall 发送的 GTP RST 包进行过滤,�
```
+-----------+ +-----------+
-| TCP/UDP | | TCP/UDP |
+| ********* | | ********* |
+-----------+ +-----------+
| IPv4/IPv6 | | IPv4/IPv6 |
+-----------+ +-----------+
@@ -24,7 +23,7 @@ PacketAdapter 通过 iptables 将 Firewall 发送的 GTP RST 包进行过滤,�
| UDP | ==> | |
+-----------+ | |
| IPv4/IPv6 | | |
-+-----------+ | |
++-----------+ | Replace |
| MAC | | MAC |
+-----------+ +-----------+
```
@@ -33,44 +32,62 @@ PacketAdapter 通过 iptables 将 Firewall 发送的 GTP RST 包进行过滤,�
* /MAC/IPv6 的 first next header 必须为 UDP。
* 目前不支持 GTP 扩展头。
-## 运行环境
-
-``` shell
-# yum install --downloadonly --downloaddir=./ libnetfilter_queue.x86_64
-# yum install --downloadonly --downloaddir=./ libnetfilter_queue-devel.x86_64
-# 安装 libnetfilter_queue
-yum install -y libnetfilter_queue
-
-# 清空 iptables
-iptables -F -t nat
-iptables -F -t filter
-iptables -F -t mangle
-iptables -F -t raw
-
-ip6tables -F -t nat
-ip6tables -F -t filter
-ip6tables -F -t mangle
-ip6tables -F -t raw
+## 应用 -- 实现 VLAN Overlay 数据包的解封装
-# 增加 iptables
-/usr/sbin/iptables -A OUTPUT -o eno2 -p udp --dport 2152 -j NFQUEUE --queue-num 1
-/usr/sbin/ip6tables -A OUTPUT -o eno2 -p udp --dport 2152 -j NFQUEUE --queue-num 1
-
-# 删除 iptables
-/usr/sbin/iptables -D OUTPUT -o eno2 -p udp --dport 2152 -j NFQUEUE --queue-num 1
-/usr/sbin/ip6tables -D OUTPUT -o eno2 -p udp --dport 2152 -j NFQUEUE --queue-num 1
+```
++-----------+ +-----------+
+| ********* | | ********* |
++-----------+ +-----------+
+| IPv4/IPv6 | | IPv4/IPv6 |
++-----------+ +-----------+
+| VLAN | ==> | |
++-----------+ | |
+| VLAN | | |
++-----------+ | Replace |
+| MAC | | MAC |
++-----------+ +-----------+
+```
-# 调试 iptables
-# /usr/sbin/iptables -A OUTPUT -o eno2 -j LOG
-# /usr/sbin/ip6tables -A OUTPUT -o eno2 -j LOG
+## 应用 -- 实现 MPLS Overlay 数据包的解封装
-# 启动服务
-systemctl enable packet_adapter
-systemctl start packet_adapter
+```
++-----------+ +-----------+
+| ********* | | ********* |
++-----------+ +-----------+
+| IPv4/IPv6 | | IPv4/IPv6 |
++-----------+ +-----------+
+| MPLS | ==> | |
++-----------+ | |
+| MPLS | | |
++-----------+ | Replace |
+| MAC | | MAC |
++-----------+ +-----------+
```
-## TODO
+## 应用 -- 实现 PPPOE Overlay 数据包的解封装
+```
++-----------+ +-----------+
+| ********* | | ********* |
++-----------+ +-----------+
+| IPv4/IPv6 | | IPv4/IPv6 |
++-----------+ +-----------+
+| PPPOE | ==> | |
++-----------+ | Replace |
+| MAC | | MAC |
++-----------+ +-----------+
+```
-- [x] support service
-- [ ] support filestat
+```
++-----------+ +-----------+
+| ********* | | ********* |
++-----------+ +-----------+
+| IPv4/IPv6 | | IPv4/IPv6 |
++-----------+ +-----------+
+| PPPOE | ==> | |
++-----------+ | |
+| VLAN | | |
++-----------+ | Replace |
+| MAC | | MAC |
++-----------+ +-----------+
+``` \ No newline at end of file
diff --git a/platform/test/README.md b/platform/test/README.md
new file mode 100644
index 0000000..bf8f2bc
--- /dev/null
+++ b/platform/test/README.md
@@ -0,0 +1,15 @@
+# README
+
+## 配置 IPv6 测试环境
+
+``` shell
+# config IPv6 address
+/usr/sbin/ip addr add fe80::42:acff:fe11:2/64 dev eth0
+
+# config IPv6 route
+/usr/sbin/ip -6 route add default dev eth0 via fe80::42:acff:fe11:1
+
+# config IPv6 neigh
+/usr/sbin/ip -6 neigh flush dev eth0
+/usr/sbin/ip -6 neigh add fe80::42:acff:fe11:1 lladdr aa:aa:bb:bb:cc:cc dev eth0 nud permanent
+``` \ No newline at end of file
diff --git a/platform/test/inject_packet.pcap b/platform/test/inject_packet.pcap
new file mode 100644
index 0000000..68c3865
--- /dev/null
+++ b/platform/test/inject_packet.pcap
Binary files differ