如何将一个接口上的流量镜像到另一个接口?

如何将一个接口上的流量镜像到另一个接口?

我基本上是尝试在 wlan0 接口(Ubuntu 18.04)上实现一个 tap 接口,即将每个通过 wlan0(传入和传出)的数据包镜像到另一个接口(tap0)。

我已经使用以下配置启动了 tap0/etc/network/interfaces

allow-hotplug tap0
auto tap0
iface tap0 inet manual
    pre-up ip tuntap add tap0 mode tap user root
    pre-up ip addr add 192.168.2.52/24 dev tap0
    up ip link set dev tap0 up
    post-up ip route del 192.168.2.0/24 dev tap0
    post-up ip route add 192.168.2.52/32 dev tap0
    post-down ip link del dev tap0

然后,我尝试使用以下 iptable 规则将流量从 wlan0 路由到 tap0:

iptables -A FORWARD -i wlan0 -o tap0 -j ACCEPT 
iptables -A FORWARD -i tap0 -i wlan0 -j ACCEPT

然后我尝试使用tcpdump -ni tap0 -vv但它没有显示任何数据包。

PS:我也尝试过以下方法:

方法 1: 通过编辑调出点击界面/etc/rc.local和:

tunctl -t tap0
ifconfig tap0 192.168.2.52 netmask 255.255.255.0 up
iptables -t nat -A POSTROUTING -s 192.168.2.52/24 -j MASQUERADE
tcpdump -ni tap0 -vv still shows no packets.

方法 2:

# For incoming traffic
tc qdisc add dev wlan0 ingress
tc filter add dev wlan0 parent ffff: \
   protocol all prio 2 u32 \
   match u32 0 0 flowid 1:1 \
   action mirred egress mirror dev tap0

# For outgoing traffic
tc qdisc replace dev wlan0 parent root handle 10: prio
tc filter add dev wlan0 parent 10: \
   protocol all prio 2 u32 \
   match u32 0 0 flowid 10:1 \
   action mirred egress mirror dev tap0

请帮忙。谢谢!

相关内容