Ich meine wird der Rechner2 die Packete auch weiterleiten, wenn sie laut IP-Adresse gar nicht bei ihm ankommen sollten/für ihn gedacht sind?
Genau das bewirkt "echo 1 > /proc/sys/net/ipv4/ip_forward". Wenn Pakete an einem Interface des PC's ankommen, die nicht für ihn selbst bestimmt sind, der PC aber weiss, wie diese Pakete ihr eigentliches Ziel erreichen können (nämlich über sein zweites Interface), dann leitet er sie entsprechend (und unverändert) weiter. Bei "echo 0 > /proc/sys/net/ipv4/ip_forward" würde dein PC solche Pakete einfach ignorieren.
Beim "unveränderten" Weiterleiten der Pakete stellt sich am SOHO-Router aber nun folgendes Problem ein (analog zu unserem Beispiel hier):
Da kommt ein Paket von Rechner 1 mit der IP 192.168.1.34 an. Der SOHO-Router weiss aber nur, daß er alle Rechner im Netz 192.168.178.0/24 direkt erreichen kann. Alle anderen Rechner erreicht er über sein Standard-GW (also ein Rechner beim DSL-Provider). Folglich schickt er seine Antwortpakete an 192.168.1.34 nicht nach 192.168.178.30 (Rechner 2), über den sie weitergeleitet worden sind, sondern ins Internet. Die Lösung für dieses Dilemma ist simpel: teile dem SOHO-Router mit, daß er das Netz 192.168.1.0/24 über die IP 192.168.178.30 (Rechner 2) erreicht. Das kann man unter Linux oder Windows mit dem Kommando route erreichen. Viele SOHO-Router bieten in ihrem Webinterface deshalb die Möglichkeit an, "Additional Routes" zu konfigurieren.
Wenn ich das mit dem Proxy-ARP richtig verstanden habe, hat das gegenüber DNAT und MASQUERADE den Vorteil, daß nicht das eigentliche IP-Paket manipuliert werden muss - sprich man spart sich das Umschreiben der Quell-IP im IP-Paket. Stattdessen antwortetet der (Proxy-ARP-)Router einfach auf beiden physikalischen Interfaces auf ARP-Anfragen mit beiden MAC-Adressen - die anderen Rechner bekommen also immer eine MAC-Adresse "vorgegaukelt", zu der sie auch den Weg kennen - sprich, die sie erreichen können, auch wenn diese MAC-Adresse physikalisch eigentlich nicht für sie erreichbar ist.