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