Routing mit Proxy Arp

Wikipedia erklärt Proxy Arp wunderschön:

Proxy ARP erlaubt einem Router, ARP-Anforderungen für Hosts zu beantworten.

Die Hosts befinden sich dabei in durch einen Router getrennten Netzen - verwenden untypischer Weise jedoch den gleichen IP-Adressenbereich. Bei der Kommunikation ist für die Hosts der Router transparent, das heißt, er braucht nicht speziell angesprochen zu werden, sondern die Hosts können wie gewöhnlich Pakete über verschiedene Netze hinweg versenden.

Sendet Computer A eine ARP-Anforderung an Computer B, reagiert der dazwischen liegende Router anstelle des Computers B mit einer ARP-Antwort und der Hardwareadresse der Schnittstelle (MAC des Ports am Router), auf der die Anfrage empfangen wurde. Der anfragende Computer A sendet dann seine Daten an den Router, der sie dann an Computer B weiterleitet.

Überhaupt erspare ich mir viel Gerede, lest bitte den wirklich guten Artikel. Hier geht es um die praktische Umsetzung.

echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp

Und die Routen entsprechend setzen

ip route del x.x.x.32/27 dev eth0
ip route del x.x.x.32/27 dev eth1
ip route add x.x.x.33 dev eth0
ip route add x.x.x.32/27 dev eth1

Routing einschalten

echo 1 > /proc/sys/net/ipv4/ip_forward

Und das war es auch schon. Eine Alternative zu Proxy Arp ist das einrichten einer Netzwerkbrücke mit dem Kommando brctrl