proxy arp und policy routing

Erik Heinz erik at iks-jena.de
Mit Sep 6 10:42:11 CEST 2006


On Tue, Sep 05, 2006 at 06:46:15PM +0200, Michael Schnupp wrote:
> 
> Damit das nicht völlig im Chaos endet, nennen wir die Geräte Linux-(R)outer,
> (T)elefon, und (C)omputer. Und schließen den Router direkt ans (N)etz
> und die beiden anderer dahinter.
> 
>         ,--- T
>  N --- R
>         '--- C

[...]

> In der einfachen Version bekommt R gar keine IP-Adresse, muss aber
> (per Proxy-ARP) ARP-Anfragen richtig beantworten. - Da taucht im Prinzip
> die obige Frage auf. (Man könnte da sicher noch schlimmere Szenarien
> konstruieren.)

Irgendeine IP(v4)-Adresse sollte das Interface schon haben. Die Frage ist,
was verbirgt sich im Netz N? Im Normalfall wird R nur mit einem einzigen
Router kommunizieren, dann braucht es kein proxy-arp, sondern eine
simple Hostroute auf diesem Router.

proxy-arp würdest Du dann brauchen, wenn
1. die für T und C verwendete Adresse unbedingt aus dem IP-Netz stammen
   muss, das auf dem Ethernet N iegt, und
2. Du aus irgendwelchen Gründen keine Route eintragen kannst, z.B. A) weil 
   in N zuviele Geräte stehen oder B) der Router dem Provider gehört und
   der nicht willens ist, eine Route einzutragen.

Im Fall 2B bietet sich eine nicht-technische Lösung des Problems an.

> In der komplizierteren Version, soll man den Router auch noch (z.b. per
> ssh) unter (natürlich wieder der selben) IP-Adresse erreichen können. 

Das wäre der klassische Anwendungsfall für NAT, sofern die betreffenden
Protokolle unterstützt werden.

> Da gibt es dann aber das Problem, dass man keinem Interface diese
> IP-Adresse zuweisen kann, da sonst die Adresse in der local-Tabelle landen
> und damit der ganze Routing-Algorithmus umgangen wird, da es wohl keine
> Chance gibt, noch irgend eine andere Regel davorzuklemmen. :(

Das nicht - aber iptables könnte helfen: in der mangle table gibt es ein 
target ROUTE. Laut IPTABLES(8) kannst Du damit das normale Routing umgehen.

Erik