Ubuntu にブリッジを設定して、LAN を同じサブネットにあるゲートウェイにリンクしています。トラフィックを制御するにはこれが必要ですが、現在はサブネットを変更できないため、代わりにルーティングすることはできません。
ゲートウェイは、192.168.0.0/16 内のさまざまな他の /24 サブネットに MPLS を提供する ISP によって制御されます。
現在の設定は次のとおりです。
192.168.10.1 (gw) <-> eth0 <-> br0 (192.168.10.3) <-> eth1 <-> LAN (192.168.10.0/24)
br0 Link encap:Ethernet HWaddr ..
inet addr:192.168.10.3 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...
eth0 Link encap:Ethernet HWaddr ..
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1 Link encap:Ethernet HWaddr ..
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
これは正常に動作しており、問題は発生していません。
また、ブリッジの一部ではない同じサーバー (192.168.10.3) 上に、データセンター インフラストラクチャへの Tinc VPN もあります。例:
tincvpn Link encap:Ethernet HWaddr ..
inet addr:192.168.10.3 Bcast:192.168.255.255 Mask:255.255.0.0
...
LAN からブリッジを経由して特定の宛先 (例: 192.168.5.0/24) に向かうパケットのルーティングをオーバーライドして、tinc 経由で送信されるようにしたいと考えています。つまり、LAN 上の 192.168.10.x から 192.168.5.x へのパケットは、ゲートウェイではなく tinc 経由で送信される必要があります。
何も設定せずに LAN 上のすべてのマシンでこれが機能するようにしたいのですが、現時点では、LAN 上の各 PC/サーバーに次の静的ルートを追加するという回避策を見つけました。
route add -net 192.168.5.0/24 via 192.168.10.3 dev eth0
静的ルートを機能させるには、192.168.10.3 上のすべてのインターフェースに対して proxy_arp を有効にする必要もありました。
次の構成を試しましたが、機能しませんでした。
ip rule add fwmark 20 lookup 20
ip route add 192.168.0.0/16 dev tincvpn table 20
ebtables -t broute -I BROUTING -i eth1 -p ipv4 --ip-dst 192.168.5.0/24 -j REDIRECT --redirect-target DROP
iptables -t mangle -I PREROUTING -i eth1 -d 192.168.5.0/24 -j MARK --set-mark 20
この設定では、パケットはマングルルールに到達し、マークされましたが、tincvpnインターフェースにルーティングされませんでした。
私たちの理解では、ebtables を使用してブリッジからパケットをドロップし、ポリシー ベース ルーティングを使用してパケットが tinc を通過するようにする必要があると理解していました。この理解は正しいでしょうか?
なぜこれが機能しなかったのか、何かアイデアをお持ちの方がいらっしゃいましたら、教えていただけると幸いです。
どうもありがとう、
トム