Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Unterstützung von virtuellen Hosts

&pagelevel(3)&pagelevel

Zusätzlich zu einem realen Host (Standardhost) können mehrere virtuelle Hosts definiert werden. Der reale und der virtuelle Host werden durch die statische oder dynamische Generierung, die BCAM anbietet, eingerichtet. Zusätzliche Maßnahmen sind erforderlich, um die Adressierbarkeit der Anwendungen zu gewährleisten. Es ist möglich, dass ein virtueller Host über mehrere IP-Adressen verfügt.

Diese Funktionalität hat keine Auswirkungen auf bestehende oder neue Standardanwendungen. Sie wird mit Hilfe neuer Subfunktionen von soc_ioctl() und getsockopt(), setsockopt() erbracht, die den Sockets-Anwender in die Lage versetzen, die notwendigen Informationen über die Konfiguration mit virtuellen Hosts zu erhalten und entsprechend in den Anwendungen einzusetzen.
Beim Ablauf der bind()-Funktion wird entschieden, auf welchem Host die Anwendung abläuft. Zu diesem Zeitpunkt muss dem Socket mitgeteilt werden, welcher Host adressiert werden soll.
Bei einer Single-Adressierung erfolgt dies automatisch durch die angegebene IP-Adresse, bei einer ANYADDR- oder LOOPBACK-Adressierung ist die Angabe des entsprechenden BCAM-Hostnamen erforderlich. Er muss im Bedarfsfall mit der neuen setsockopt()-Subfunktion SO_VHOSTANY vor der Ausführung von bind() im Socket eingetragen werden. Das ist notwendig, weil sowohl die ANYADDR, als auch die LOOPBACKADDR keinem Host eindeutig zugeordnet werden kann.
Mit den neuen soc_ioctl()-Subfunktionen SIOCGLVHNUM und SIOCGLVHCONF können die Anzahl von virtuellen Hosts und die dazugehörigen BCAM-Hostnamen und Socket-Hostnamen ermittelt werden.
Es ist zu beachten, dass natürlich weiterhin eine Zuordnung von Sockets-Anwendungen zu einem virtuellen Host über die Application-Tabelle in BCAM erfolgen kann.
Darum ist es auch möglich, den realen Host mit der neuen Funktionalität zu adressieren.

BCAM-Hostname:

Er ist acht Zeichen lang. Es dürfen alphanumerische Zeichen und dieSonderzeichen #, @, $ oder Leerzeichen am Namensende verwendet werden. In der Regel sollten Großbuchstaben verwendet werden, es wird aber Groß-/Kleinschreibung unterschieden. Ein nur numerischer Anteil ist nicht erlaubt.

Im Standardfall ist im Transportsystem BCAM die Funktionalität HOST-ALIASING aktiv. Dies kann bei der Nutzung der Funktionalität zur Unterstützung von virtuellen Hosts zu ungewünschten Effekten führen.

HOST-ALIASING bedeutet, dass ein Verbindungsaufbauwunsch zu einem virtuellen Host an den realen Host weitergeleitet wird, wenn die entsprechende Portnummer nur im realen Host eröffnet ist.
Mit setsockopt(fd, SOL_SOCKET, SO_DISHALIAS, 1, 4) ist es möglich, das HOST-ALIASING am Listen-Socket des realen Hosts zu unterbinden. Wird dieses Flag vor dem bind() im Socket gesetzt, dann schaltet der nachfolgende bind() im Transportsystem BCAM für diese Portnummer das HOST-ALIASING aus. Das hat zur Folge, dass ein Verbindungsaufbauwunsch zu dieser Portnummer auf einem virtuellen Host nur erfolgreich sein kann, wenn der Port mit der entsprechenden Adresse auf dem virtuellen Host auch eröffnet ist. Eine Weiterleitung an den realen Host findet für diese Anwendung dann nicht mehr statt.