私はいくつかのNAT Debian 7 Wheezyを実行しているルーターでtincを実行しています。VPNはスイッチモードでセットアップしたため、DHCP要求を中継し、すべてのVPNを介して応答することを除いて、数か月間正常に機能します。問題は、ホストAがDHCP用に10.10.10.2-254のプールを使用し、ゲートウェイとして10.10.10.1を使用していることです(ホストA)。ホストBは、DHCP用に10.10.10.2-254のプールを使用しています。ゲートウェイ(ホストB)など。
私の「クラウド」の目的は、すべてのネットワーク(A、B ..)のすべてのホストを同じLANに表示することであるため、ティンクタップ(イーサネット)インターフェイスは物理LANインターフェイス間でブリッジされることに注意してください。
私はこれを克服するための簡単な解決策を探しています。 physdevおよびphysdevでiptablesを使用しようとしました-tincインターフェイスを指定しますが、これは機能しないようです。
これに対する他の解決策はありますか?
追伸:マルチキャストやその他のルーティング不可能なプロトコルが本当に必要なので、tincをルーターモードに切り替えることは解決策ではありません。
Sysctl変数net.bridge.bridge-nf-call-iptablesが1に設定されている場合は、iptables -t mangle -mphysdevで機能するはずです。
sysctl -w net.bridge.bridge-nf-call-iptables=1
iptables -t mangle -I PREROUTING -m physdev --physdev-in vpn1 \
-p udp --dport 67:68 -j DROP
Ebtablesでブロックする方法もあります。
## dont accept dhcp packets directed to the local machine
ebtables -A INPUT --in-interface vpn1 --protocol ipv4 \
--ip-protocol udp --ip-destination-port 67:68 -j DROP
## dont forward dhcp packets coming in from vpn
ebtables -A FORWARD --in-interface vpn1 --protocol ipv4 \
--ip-protocol udp --ip-destination-port 67:68 -j DROP
## dont send dhcp requests over vpn
ebtables -A FORWARD --out-interface vpn1 --protocol ipv4 \
--ip-protocol udp --ip-destination-port 67:68 -j DROP