GrandAdmiralThrawn
XP Nazi
|
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
|
das centos darf aber nicht ins internet ?
|
Indigo
raub_UrhG_vergewaltiger
|
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
|
Möglicherweise verstehe ich das ganz falsch aber wäre das nicht ein Fall für traceroute?
|
GrandAdmiralThrawn
XP Nazi
|
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: # 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
|
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
|
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
|
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.
differential image maker
|
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
|
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: <?php
echo $_SERVER['REMOTE_ADDR'];
?>
Auf der Client VM passiert dann als Teil eines Systemkonfigurationsskripts einfach sowas: #!/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? 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
|
Gute Lösung
|
Snoop
Here to stay
|
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
|
Sonst wär's ja einfach gewesen. Im Prinzip habe ich da jetzt wohl eh genau das nachgebaut was diese Onlineservices auch anbieten.
|