라우팅 정책이 작동하지 않습니다

라우팅 정책이 작동하지 않습니다

OpenWrt를 사용하는 액세스 포인트가 있습니다. 동일한 LAN의 다른 호스트에 Squid(IP 주소 192.168.80.148)가 있습니다. 대상 포트 80을 사용하여 패키지를 192.168.80.148로 라우팅하고 싶습니다.

그래서 나는 가지고있다

root@ap:/tmp# iptables -L -vn -t mangle
Chain PREROUTING (policy ACCEPT 67354 packets, 54M bytes)
 pkts bytes target     prot opt in     out     source               destination         
67358   54M fwmark     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain INPUT (policy ACCEPT 1548 packets, 127K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 65789 packets, 54M bytes)
 pkts bytes target     prot opt in     out     source               destination         
65789   54M mssfix     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 1017 packets, 133K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 66808 packets, 54M bytes)
 pkts bytes target     prot opt in     out     source               destination         
25686 1564K MARK       tcp  --  *      br-lan  0.0.0.0/0            0.0.0.0/0            PHYSDEV match ! --physdev-in eth0+ tcp dpt:80 MARK set 0x1

Chain fwmark (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain mssfix (1 references)
 pkts bytes target     prot opt in     out     source               destination         
root@ap:/tmp# ip rule ls
0:      from all lookup 128 
0:      from all fwmark 0x1 lookup squid1 
1:      from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default 
root@ap:/tmp# ip route show table squid1
default via 192.168.80.148 dev br-lan 

그래서 라우팅이 작동하지 않습니다. 패키지가 내 스테이션에서 오징어가 담긴 상자로 전송되는 것을 볼 수 없습니다.

한 가지 중요한 점은 액세스 포인트가 사이트의 기본 게이트웨이가 아니라는 것입니다. AP의 모든 포트는 동일한 VLAN에 있으므로 AP는 고유한 IP 주소를 가지며 내부 인터넷 ADSL 모뎀과 동일한 LAN에 있습니다. ADSL 모뎀의 LAN IP 주소는 기본 게이트웨이입니다.

내가 뭘 잘못했나요?

편집하다:

테스트 규칙을 추가했습니다.

iptables -t mangle -A OUTPUT -o br-lan -p tcp -m physdev ! --physdev-in eth0+ -m tcp --dport 80 -
j MARK --set-xmark 0x1/0xffffffff

이 경우 라우팅이 작동한다는 것을 알았습니다(AP 자체의 트래픽은 오징어 상자를 통과합니다). 따라서 문제는 이 스테이션의 트래픽이 라우팅되지 않는다는 것입니다. 왜?

관련 정보