Symptome
Aus der Perspektive eines verwalteten Geräts mit einer IP-Adresse im selben Subnetz wie der virtuelle Netzwerkadapter docker0 oder die Docker-Bridge zwischen den Containern:
- Versuche, ein Gerät zu einem Gateway hinzuzufügen, schlagen fehl
- Gateway reagiert nicht auf Ping-Anfragen
- Gateway reagiert nicht auf Telnet-Anfragen
- In den Gateway-Protokollen werden keine Hinweise auf Kommunikationsversuche angezeigt.
Entsprechend gilt aus der Perspektive eines Secure Connect Gateways mit einer IP-Adresse im selben Subnetz wie der virtuelle Netzwerkadapter docker0 auf dem Policy Manager für Secure Connect Gateway:
- Versuche, ein Gateway mit einem Policy Manager zu verbinden, schlagen fehl.
- Policy Manager reagiert nicht auf Ping-Anfragen vom Gateway.
- Vom Gateway antwortet Policy Manager nicht auf Telnet-Anfragen über Port 8443.
- In den Gateway- oder Policy Manager-Protokollen werden keine Hinweise auf Kommunikationsversuche angezeigt.
Ursache
Die Docker-Instanz, die auf dem Secure Connect Gateway ausgeführt wird, und der Policy Manager verwenden die IP-Adresse 172.17.0.1 für die interne Netzwerkschnittstelle docker0. Geräte im selben Subnetz verursachen im Kontext der Docker-Container, die auf dem Secure Connect Gateway und dem Policy Manager für Secure Connect Gateway ausgeführt werden, Konflikte mit der Netzwerkschnittstelle docker0. Es gibt keine weiteren Anzeichen für diesen Netzwerkkonflikt, da er sich nicht auf die Kommunikation zwischen anderen Geräten im selben Subnetz außerhalb des Gateways oder des Policy Managers auswirkt.
Wenn ein vom Gateway zu verwaltendes Gerät zufällig eine IP-Adresse im selben Subnetz wie die Docker-Instanz auf dem Gateway haben sollte, kommt es zu einem Netzwerkkonflikt, der verhindert, dass das Gerät mit dem Gateway kommuniziert.
Wenn im Kontext von Policy Manager ein Secure Connect Gateway, das von einem Policy Manager-Server verwaltet werden soll, dieselbe IP-Adresse wie die Schnittstelle docker0 haben sollte, besteht ein Netzwerkkonflikt und das Gateway kann nicht mit dem Policy Manager kommunizieren.
Lösung
Die Lösung besteht darin, die IP-Adresse der Schnittstelle docker0 so zu ändern, dass sie sich nicht im selben Netzwerk befindet wie die Geräte, die von Secure Connect Gateway verwaltet werden, und den Policy Manager so zu ändern, dass die Schnittstelle docker0 keine IP-Adresse im selben Subnetz wie das Secure Connect Gateway hat. Das folgende Verfahren gilt für die Netzwerkschnittstelle docker0 sowohl auf dem Secure Connect Gateway als auch auf dem Policy Manager für das Secure Connect Gateway (SCG 5.x und Policy Manager für SCG 5.x).
Melden Sie sich über SSH oder die Konsole einer virtuellen Maschine als „root“ bei Secure Connect Gateway oder Policy Manager für Secure Connect Gateway an.
Bestätigen Sie die IP-Adresse des virtuellen Netzwerkadapters docker0:
# ifconfig
Die Ausgabe sieht im Wesentlichen ähnlich wie unten gezeigt aus (Hardwareadresse ausgelassen):
docker0 Link encap:Ethernet HWaddr <removed> inet addr:172.17.0.1 Bcast:172.17.255.255 Mask:255.255.0.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Wenn ein Gerät dasselbe Subnetz in der IP-Adresse verwendet, kann dieses Gerät nicht mit dem Gateway kommunizieren.
Jetzt können Sie Änderungen vornehmen.
# cd /etc/docker
Lesen Sie die Datei, um den Originalinhalt vor der Bearbeitung anzuzeigen. Es sieht im Wesentlichen ähnlich wie folgt aus:
# cat /etc/docker/dockerdCfg.json{ "hosts" : ["unix:///var/run/docker.sock","tcp://0.0.0.0:2375"],"insecure-registries" : ["127.0.0.1:9443","localhost:9443"]}
Sichern Sie die Datei, die Sie bearbeiten möchten:
cpdockerdCfg.jsondockerdCfg.json.<year.month.date>
Bearbeiten Sie die Datei mit vi:
# vi /etc/docker/dockerdCfg.json{ "hosts" : ["unix:///var/run/docker.sock","tcp://0.0.0.0:2375"],"insecure-registries" : ["127.0.0.1:9443","localhost:9443"], "bip": "10.10.10.1/24"}Note the following:1. A comma must be inserted at the end of the 2nd line, after 9443"]2. The bip line should be typed exactly as you see it, with an IP address and subnet mask of your choosing, with a subnet that does not conflict with any devices on your network that will be managed by the gateway.3. The bip line sets the IP address of the internal docker network interface identified as "docker0".3. For readability, the first quote mark on the bip line should line up with the previous line and quote mark.After edits are complete, run:# systemctl restart dockerRun ifconfig again to verify the IP address of the docker0 network adapter.----The remaining steps below should not be necessary in most cases. If after completing the above steps, you still do not have connectivity, continue with the steps below.The SAE to SRS Network BridgeIn this section, we will modify the Docker bridge between the sae and srs containers.Change BridgeSubnet value in esrshost.conf, modify this file below command:vi /etc/esrshost.confNow we will change BridgeSubnet value with the desired IP address.See the example below:IpAddress=xx.xx.xx.xxxMacAddress=xx:xx:xx:xxTimeZone=US/CentralHypervisorType="VMware Virtual Platform"OperatingSystem="SUSE Linux Enterprise Server xx SPx"Environment=INTPRODHostName=linuxVersion=x.xx.xx.xxBridgeSubnet=172.28.0.1/29OSPatchVersion=xEnsure to Save the above file, you can use.List the bridges:docker network ls# docker network lsNETWORK ID NAME DRIVER SCOPEaa670bac1703 bridge bridge local1521cf7b980b host host localb246dde1c191 none null locald0dc3ac05fc4 sae-srs-bridge bridge localNow we will modify the sae-srs-bridge by disconnecting it, removing it, and replacing it.Disconnect thesae-srs-bridge in both directions:docker network disconnect sae-srs-bridge esrsde-appdocker network disconnect sae-srs-bridge saede-appdocker network disconnect sae-srs-bridge esrsalert-appRemove the bridge:docker network rm sae-srs-bridgeRecreate the bridge with the desired IP address:docker network create --driver bridge --subnet <new IP address>/<subnet mask> --opt com.docker.network.bridge.name=sae-srs-bridge sae-srs-bridgeSee the example below:docker network create --driver bridge --subnet 172.28.0.1/29 --opt com.docker.network.bridge.name=sae-srs-bridge sae-srs-bridgeOr,to use default IP, define by name only, example:docker network create --driver=bridge sae-srs-bridgeOnce the network bridge has been created, connect each container to the sae-srs-bridge:docker network connect sae-srs-bridge esrsde-appdocker network connect sae-srs-bridge saede-appdocker network connect sae-srs-bridge esrsalert-appVerify your work with the following command:docker network inspect sae-srs-bridgeReview the output by checking on the following fields:"Config": [ { "Subnet": "172.18.0.1/29" } ] },"IPv4Address": "172.18.0.2/29",run ifconfigagain to verify the IP address assigned to docker0.When the edits are complete, restart the Docker containers:# systemctl restart dockerTest the new configuration by adding a device to the gateway that previously could not communicate with the gateway. Then open a browser to connect to the gateway. Navigate to Device Management > View to confirm that the new device has been registered.
Weitere Informationen
Beachten Sie, dass der Policy Manager für Secure Connect Gateway nur über einen Container verfügt, den Policy Manager.
Wenn z.B. folgender Fehler auftritt:
unable to configure the Docker daemon with file /etc/docker/dockerdCfg.json: the following directives are specified both as a flag and in the configuration file: bip: (from flag: 172.17.0.1/24, from file: 192.168.48.1/24)
Dies ist ein Konfigurationskonflikt, die Bridge-IP ist bereits in /etc/sysconfig/docker definiert.
Entfernen Sie das Flag in der Datei /etc/sysconfig/docker:
--bip=172.17.0.1/24
Aus Datei
/etc/sysconfig/docker## Path : System/Management## Description : Extra cli switches for docker daemon## Type : string## Default : ""## ServiceRestart : docker#DOCKER_OPTS="--config-file /etc/docker/dockerdCfg.json --bip=172.17.0.1/24"
Betroffene Produkte
Secure Connect Gateway, Secure Connect Gateway, Secure Connect Gateway - Virtual Edition