브리징 및 iptables 사후 라우팅

브리징 및 iptables 사후 라우팅

나는 세 개의 NIC와 두 개의 NIC 사이에 브리지( eth1및 브리지)가 있는 Linux 3.14 PC를 가지고 있습니다.eth2

내 질문

POSTROUTING 규칙을 통과하는 트래픽이 없는 이유는 무엇입니까? 참고로, 다리를 통과(전달)하는 교통 상황에서는 모든 것이 괜찮습니다. 누구든지 작동하도록 조언을 해줄 수 있습니까?

ifconfig eth1 down
ifconfig eth2 down

ifconfig eth1 up
ifconfig eth1 0.0.0.0

ifconfig eth2 up
ifconfig eth2 0.0.0.0

brctl addbr sm0
brctl addif sm0 eth1
brctl addif sm0 eth2

ifconfig sm0 up

iptables -t mangle -A POSTROUTING -o eth1 -p all  -j CLASSIFY --set-class 1:99

iptables -t mangle -A POSTROUTING -o eth2 -p all  -j CLASSIFY --set-class 2:99

규칙

o iptables -t mangle -nvL
Chain PREROUTING (policy ACCEPT 38914 packets, 2954K bytes)
 pkts bytes target     prot opt in    out     source         destination

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

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in    out     source         destination

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

Chain POSTROUTING (policy ACCEPT 38072 packets, 2844K bytes)
 pkts bytes target     prot opt in    out     source         destination
    0     0 CLASSIFY   all  --  *     eth1    0.0.0.0/0      0.0.0.0/0      CLASSIFY set 1:99
    0     0 CLASSIFY   all  --  *     eth2    0.0.0.0/0      0.0.0.0/0      CLASSIFY set 2:99

시스템 구성 파일

net.ipv4.ip_forward=1

다음 값을 0 또는 1로 설정해도 iptables에는 영향이 없습니다.

net.bridge.bridge-nf-call-arptables=1
net.bridge.bridge-nf-call-ipv6tables=1
net.bridge.bridge-nf-call-ipv4tables=1

답변1

다리는 교통 경로를 지정하지 않으므로 규칙을 따를 필요가 없습니다 POSTROUTING.

넷필터 문서를 참조하세요브리지 네트워크 필터자세한 내용과 이 구성을 변경하는 방법(커널 3.2.0):

modprobe bridge    # Enable bridge-netfilter
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

관련 정보