"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Von hinter einem NAT die externe IP auslesen (LAN only!, SOLVED)

GrandAdmiralThrawn 08.07.2020 - 11:58 3188 12
Posts

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3682
Hallo,

Ich bräuchte eine Lösung um auf Linux von der Kommandozeile aus meine externe IP zu ermitteln. Dabei geht es um ein VM Image, das aufgrund von Pool Exhaustion nicht bridged werden kann, also hinter'm NAT des Hypervisors sitzt. Ich brauche aber für diverse Sysconfigs meine externe LAN IP, also die vom Host.

Ich kann dabei keine externen Dienste benutzen, muß das also irgendwie innerhalb unserer LANs lösen. Zwei DNS Server sind im LAN vorhanden, befinden sich aber nicht unter meiner Kontrolle.

Der Host ist Windows 10, der Hypervisor ist VirtualBox in Version 6.0. Der Gast ist CentOS 8 Linux.

Gibt es irgendeine Lösung, mit der sich meine VM ihre externe Host IP holen kann?

Danke!
Bearbeitet von GrandAdmiralThrawn am 08.07.2020, 14:28

davebastard

Vinyl-Sammler
Avatar
Registered: Jun 2002
Location: wean
Posts: 11469
das centos darf aber nicht ins internet ?

Indigo

raub_UrhG_vergewaltiger
Avatar
Registered: Mar 2001
Location: gigritzpotschn
Posts: 6687
edit: sorry, hab nicht genau gelesen, du willst die externe ip vom host, nicht die öffentliche externe ip adresse ermitteln...
Bearbeitet von Indigo am 08.07.2020, 12:12

roscoe

tinkerer
Avatar
Registered: Mar 2005
Location: 1050 Wien
Posts: 667
Möglicherweise verstehe ich das ganz falsch aber wäre das nicht ein Fall für traceroute?

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3682
Ich habe tracepath versucht, das beim CentOS dabei ist, aber da sehe ich nur die Routing IPs.

Also mein privater VM Pool ist 10.20.2.0/24. Sagen wir der externe LAN Pool ist 192.168.0.0/24. Nehmen wir an meine VM hat private IP 10.20.2.15. Der Gateway vom Hypervisor in's äußere LAN ist 10.20.2.2.

Der Windows 10 Host hat dann z.B. 192.168.0.15 als Adresse und 192.168.0.1 als Gateway. Die DNS Server sind wieder ein einem anderen Subnetz. Sagen wir Mal die wären 192.168.1.253 und 192.168.1.254.

Wenn ich jetzt aus der VM raus ein Tracepath auf einen der DNS fahre, schaut das so aus:

Code:
# tracepath -n 192.168.1.253
 1?: [LOCALHOST]              omtu 1500
 1: 10.0.2.2                                0.503ms
 2: 10.0.2.2                                0.434ms
 2: 192.168.0.1                             1.045ms asymm 64
 3: 192.168.1.253                           0.842ms !H
    Resume: pmtu 1500

Er zeigt mir also an: Localhost, Gateway IP der VM, nochmal Gateway IP der VM, dann Gateway vom LAN, und am Ende den Zielhost. Das war leider ein Griff in's Leere.

Und das CentOS in der VM darf nicht in's Internet. Auch werden die IPs und Namen vom externen LAN (192.168.0.0 mit *.unseredomain.at usw.) nur vom lokalen LAN DNS aufgelöst. Ich kann also sowieso keinen externen Service fragen. Ich will ja eine LAN IP, keine richtig öffentliche INet IP.

Ich hoffe ich habe das klar ausgedrückt? Wenn nicht, fasse ich das nochmal kurz zusammen:
  • VM Guest IP: 10.20.2.15
  • VM Guest-to-Host Gateway: 10.20.2.2
  • Host IP: 192.168.0.15 <- Die brauche ich!
  • Host LAN Gateway: 192.168.0.1
  • LAN DNS: 192.168.1.253, 192.168.1.254

davebastard

Vinyl-Sammler
Avatar
Registered: Jun 2002
Location: wean
Posts: 11469
is der host im dns eingetragen? sonst kannst doch den LAN dns mit "dig" oder "host" fragen ?

wieso ändert sich die ip vom host überhaupt ? einfach im DHCP fixieren....

edit: das mit traceroute ist klar, der zeigt nur die nächsten hops
Bearbeitet von davebastard am 08.07.2020, 13:03

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3682
Die Host IP ändert sich nicht. Unser zentraler DHCP weist die fix auf MAC-Basis zu. Die Sache ist nur die: Die VM entwickle ich, und die wird dann auf über 100 Rechnern deployed. Natürlich mit über 100 unterschiedlichen Host IPs dann.

Zu dig: Ich habe einfach keinen blassen Schimmer wie man dig benutzt, hab's noch nie gebraucht. Für einen schnellen Hinweis bin ich sehr dankbar, weil mir die Zeit davonrennt. Muß ein komplett neues System bauen in nur einem Monat..

Danke!

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3682
Doublepost!

Gewisse Hosts darf die VM ja im LAN ansprechen. Da ist auch ein Webserver dabei. Ich denke mir grade, vielleicht könnte man ein simples PHP Skript bauen, das einfach nur die Client IP zurückgibt. Und die dann per wget oder curl abrufen?

mr.nice.

endlich fertig
Avatar
Registered: Jun 2004
Location: Wien
Posts: 6286
Eventuell könnte ein arp-scan zum Erfolg führen, es hängst aber auch davon ab wie die Netzwerkgeräte konfiguriert sind, sprich ob sie das zulassen.
Du müsstest im Klasse C Netz, wo der Webserver steht, einen arp-scan machen und dir das Ergebnis irgendwie abholen, bzw. schicken lassen.

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3682
arp-scan gibt's scheinbar bei CentOS 8 standardmäßig nicht mehr. Danke trotzdem für den Vorschlag! Ich habe es jetzt aber schon um's Eck gelöst.

Folgendes Miniskript returnIP.php liegt jetzt auf einem Webserver, der zu unserer Infrastruktur gehört. Mit dem muß die VM sowieso reden können.

Skript:
Code:
<?php
  echo $_SERVER['REMOTE_ADDR'];
?>

Auf der Client VM passiert dann als Teil eines Systemkonfigurationsskripts einfach sowas:

Code:
#!/usr/bin/env sh
myIP=$(curl -k [url]https://usersuperwebserver.unserdomain.at/getclientip/returnIP.php[/url])

Mit ${myIP} kann ich dann weiterarbeiten und Fallentscheidungen treffen. Auf dem Server ist der Zugriff bereits auf die entsprechenden IP Ranges limitiert, was also keine weitere Konfig erfordert.

Edit: Wieso fügt das Forum hier Tags innerhalb einer Code-Sektion ein? ugly_244957.gif Also diese URL-tags im Code oben gehören da natürlich nicht hin...

Bearbeitet von GrandAdmiralThrawn am 08.07.2020, 14:13

roscoe

tinkerer
Avatar
Registered: Mar 2005
Location: 1050 Wien
Posts: 667
Gute Lösung :)

Snoop

Here to stay
Registered: Jun 2002
Location: Gablitz
Posts: 1075
das nächste mal einfach im terminal:

curl ifconfig.me

:)

edit: sorry, hab übersehen, dass nur lokal gemeint ist :(
Bearbeitet von Snoop am 08.07.2020, 15:50

GrandAdmiralThrawn

XP Nazi
Avatar
Registered: Aug 2000
Location: BRUCK!
Posts: 3682
Sonst wär's ja einfach gewesen. ;)

Im Prinzip habe ich da jetzt wohl eh genau das nachgebaut was diese Onlineservices auch anbieten.

Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz