GRE 터널 tun0
을 통해 tc
의 도움으로 하나의 인터페이스에서 "모든"네트워크 트래픽을 미러링하려고합니다. GRE 터널은 정상적으로 작동하며 핑 (ping)을 통해 아무런 문제없이 패킷을 보낼 수 있습니다. 나는 다음과 같은 명령을 사용하여 tc-qdisc
및 tc-filter
추가 :이 TutorialGRE 터널을 통한 tc로 트래픽 미러링은 들어오는 트래픽 만 수신합니다.
문제에
tc qdisc add dev ens5 ingress
tc filter add dev ens5 parent ffff: \
protocol all \
u32 match u8 0 0 \
action mirred egress mirror dev tun0
및
tc qdisc add dev ens5 handle 1: root prio
tc filter add dev ens5 parent 1: \
protocol all \
u32 match u8 0 0 \
action mirred egress mirror dev tun0
등이
에만 문제가 유입 트래픽이오고 있다는 것입니다 GRE 터널을 통해. 인터페이스 ens5
을 통해 다른 컴퓨터에 ping을 수행 할 때 tun0
인터페이스를 통해서만 icmp echo replies
을 얻습니다. 내가 뭘 잘못 했니?
디버그
[email protected]:~$ tcpdump -i tun0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
10:23:28.952197 IP 192.168.20.12 > 192.168.20.15: ICMP echo reply, id 3453, seq 1, length 64
10:23:29.954454 IP 192.168.20.12 > 192.168.20.15: ICMP echo reply, id 3453, seq 2, length 64
10:23:30.952864 IP 192.168.20.12 > 192.168.20.15: ICMP echo reply, id 3453, seq 3, length 64
10:23:31.953207 IP 192.168.20.12 > 192.168.20.15: ICMP echo reply, id 3453, seq 4, length 64
10:23:32.955350 IP 192.168.20.12 > 192.168.20.15: ICMP echo reply, id 3453, seq 5, length 64
10:23:33.957000 IP 192.168.20.12 > 192.168.20.15: ICMP echo reply, id 3453, seq 6, length 64
10:23:34.956313 IP 192.168.20.12 > 192.168.20.15: ICMP echo reply, id 3453, seq 7, length 64
터널을 통해 미러링 된 트래픽을 어떻게 처리 했습니까? GRE 또는 VXLAN 터널에 egress 스 니펫을 적용 할 때마다 Linux 호스트가 잠 깁니다. 내부 스 니펫이 정상적으로 작동합니다. 몇 가지 다른 배포판을 사용해보십시오. – Astron
VXLAN을 생성하여 터널 인터페이스 tun0을 추가했습니다. 그런 다음 위와 같이 정확한 명령을 사용했습니다. 예 : IP 링크 추가 vxlan0 유형 vxlan id 42 그룹 1.1.1.1 dev eth0' – Florian
이상한, 장치 이름에 대해 vxlan42와 같은 tun0 verse를 지정하면 충돌이 발생했습니다. – Astron