Raw Socket send zu mehreren Routern

Gast #5618196
Lesenswert?

Hallo zusammen,

ich möchte aus einem Linux-Daemon UDP-Pakete über mehrere LTE-Router an 
eine öffentliche IP-Adresse versenden. Es soll eine Art 'bonding' der 
LTE-Provider erreicht werden, allerdings nur für die von meinem Programm 
gesendeten UDP-Pakete. Die LTE-Router (keine Surfsticks) sollen über 
Ethernet mit dem Linux-Rechner verbunden werden.

Um nicht in das grundsätzliche Routing des Linux-Rechners einzugreifen 
(das soll nämlich mit einem Standard-Gateway für den 'normalen' Traffic 
bestehen bleiben) habe ich geplant, die UDP-Pakete über einen RAW-Socket 
zu versenden. So habe ich die Kontrolle über die MAC-Adressen des 
Datenpaketes.

Ist es richtig daß ich so über die Ziel-MAC-Adresse dann bestimmen kann 
welcher LTE-Router im lokalen Netzwerk das Paket zur Weiterleitung ins 
Internet bekommt? Die IP-Adresse wäre die immer gleiche Adresse des 
Rechners im Internet, der alle diese Pakete bekommen soll.

Also ein 'manuelles' Routing, welches den Weg über das Standard-Gateway 
umgeht.

Kann von Euch jemand abschätzen, ob das klappen könnte?

Herzlichen Dank + Grüße, brt
#5618956
Lesenswert?

brt schrieb:
> Hallo zusammen,
>
> ich möchte aus einem Linux-Daemon UDP-Pakete über mehrere LTE-Router an
> eine öffentliche IP-Adresse versenden. Es soll eine Art 'bonding' der
> LTE-Provider erreicht werden, allerdings nur für die von meinem Programm
> gesendeten UDP-Pakete. Die LTE-Router (keine Surfsticks) sollen über
> Ethernet mit dem Linux-Rechner verbunden werden.
>
> Um nicht in das grundsätzliche Routing des Linux-Rechners einzugreifen
> (das soll nämlich mit einem Standard-Gateway für den 'normalen' Traffic
> bestehen bleiben)

Kannst du nicht einen eigenen Eintrag in der Routing-Tabelle für diese 
eine spezielle IP machen?

> habe ich geplant, die UDP-Pakete über einen RAW-Socket
> zu versenden. So habe ich die Kontrolle über die MAC-Adressen des
> Datenpaketes.

Nein. Was du dafür brauchst, sind Packet-Sockets. Raw-Sockets geben dir 
Zugriff auf den IP-Header, aber nicht den MAC-Header.
Du musst aber dann einen eigenen IP-Stack implementieren.
Gast #5619344
Lesenswert?

brt schrieb:
> Hallo zusammen,
>
> ich möchte aus einem Linux-Daemon UDP-Pakete über mehrere LTE-Router an
> eine öffentliche IP-Adresse versenden. Es soll eine Art 'bonding' der
> LTE-Provider erreicht werden, allerdings nur für die von meinem Programm
> gesendeten UDP-Pakete. Die LTE-Router (keine Surfsticks) sollen über
> Ethernet mit dem Linux-Rechner verbunden werden.
>
> Also ein 'manuelles' Routing, welches den Weg über das Standard-Gateway
> umgeht.


Mit "ip route" und "ip rule" geht das unter Linux. Ist nicht weiter 
schwer und gehört seit Ewigkeiten zu den Bordmitteln.
#5619360
Lesenswert?

Rolf M. schrieb:
> Kannst du nicht einen eigenen Eintrag in der Routing-Tabelle für diese
> eine spezielle IP machen?

So wie ich das verstanden habe, möchte er seine Ziel-IP im Internet über 
mehrere Wege gleichzeitig ansprechen um die Leitungskapazität mehrerer 
LTE-Verbindungen zu bündeln. Dann kommt er mit einem Eintrag für die 
Ziel-IP natürlich nicht weiter, denn der ginge ja nur für eine Route.

Was man aber einfach machen könnte, wäre dem Quellrechner mehrere IPs in 
seinem LAN zu verpassen, für jeden Routing-Weg eine. Jetzt verwendest Du 
eine Policy-Route um alles was von Quell-IP 1 kommt über diesen Router 
zu schicken, alles was von Quell-IP 2 kommt über einen anderen etc. Das 
Standardgateway bleibt davon unberührt.

Jetzt kannst Du die UDP-Pakete ganz normal erzeugen wie jetzt auch 
schon, Du musst einfach nur eine bestimmte Quell-IP setzen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren