Netzwerk nicht erreichbar - MSSQL

505
Gabriel Ilharco

Ich versuche, eine Remote-Verbindung zu einem SQL Server 2008 herzustellen.

Ich bin in der Lage, die Verbindung mit der lokalen IP-Adresse herzustellen (ich tue dies von einem Terminal aus, das mit einem lokalen Netzwerk verbunden ist und Freetds verwendet), und alles funktioniert.

Was ich versuche, ist, auf die Datenbank von einem völlig separaten System zuzugreifen, das nicht mit dem lokalen Netzwerk verbunden ist. Ich versuche (und versuche), eine Verbindung zum Server herzustellen, wenn ich versuche, über seine öffentliche IP-Adresse darauf zuzugreifen (SQL Server-Konfigurationsmanager -> SQL Server-Netzwerkkonfiguration -> Protokolle für SQLEXPRESS -> TCP / IP). - das Foto ist illustrativ, in meinem System ist die IP aktiviert:

Netzwerk nicht erreichbar - MSSQL

Wenn ich versuche, es per Ping zu senden ping6 <my_ip> 1433, bekomme ich die folgende Fehlermeldung:

connect: Network is unreachable 

Hier einige nützliche Informationen:

  • Remoteverbindungen sind auf dem Server zulässig.
  • TCP / IP ist aktiviert
  • Die spezifische IP-Adresse ist in SQL ServerConfiguration Manager aktiviert und aktiv, und der TCP-Port ist auf 1433 festgelegt.
  • Ich habe eine Firewall-Ausnahme für Port 1433 und alle Netzwerke hinzugefügt.
  • Ich habe auch eine Firewall-Ausnahme für sqlservr.exe hinzugefügt

Irgendwelche Ideen?


Edit: Ok, da das IPv6, das ich verwendete, nicht die richtige IP ist (wie gesagt, es ist lokal, nicht öffentlich), wie bekomme ich die richtige IP für die Verbindung? Ich habe danach gesucht, aber ich konnte nur einige lokale IPs finden.

0
Klingt nach einem Routing-Problem mit Netzwerkroutern oder Firewalls usw. Der Datenverkehr muss zwischen Subnetzen (oder über Ihre öffentliche Schnittstelle, z. B. Portweiterleitung oder NAT) routenfähig sein. Andernfalls funktioniert der Netzwerkverkehr nicht Netzwerkadministratoren prüfen oder prüfen, ob sie helfen können, da dies nicht wie ein Firewall-Problem auf Betriebssystemebene auf Betriebssystemebene klingt. Pimp Juice IT vor 8 Jahren 0
Verwendet diese IP die richtige? Ich mache mir Sorgen, dass es vielleicht nicht so ist, aber ich habe keine Ahnung, ob es so ist. Gabriel Ilharco vor 8 Jahren 0
Sind Sie der Netzwerkadministrator in Ihrem Netzwerk mit diesen verschiedenen Netzwerken, von denen Sie als vollständig getrennte Systeme sprechen? Ich würde zuerst mit den Netzwerkadministratoren darüber sprechen, da sie Ihre Netzwerktopologie am besten verstehen würden. Wenn Sie von außen in diesen Server einsteigen müssen, bin ich mir nicht sicher, ob Sie Port 1433 zulassen möchten und dies stattdessen über eine App-Konfiguration steuern möchten. Es ist schwer zu sagen, was Sie brauchen, ohne weitere Einzelheiten. Ich denke, es ist am besten, zuerst mit den Mitarbeitern Ihres Datennetzwerks zu sprechen, wenn Sie diese Aspekte nicht für alle Fälle verstehen. Pimp Juice IT vor 8 Jahren 1

2 Antworten auf die Frage

1
remote mind

fe80 :: ist eine IPv6-Link-Local-Adresse. Es handelt sich also nicht um eine öffentliche IP-Adresse. Diese können innerhalb eines Netzwerks verwendet werden, jedoch nicht über Router hinweg.

Wenn also die fe80 :: ... IP die ist, die Sie verwenden, bin ich sicher, dass sie nicht die richtige ist.

Ah, auch das macht wenig Sinn:

ping6 <mein_ip> 1433

weil Ping keine Ports kennt. Versuchen Sie es mit

$ telnet -6 <mein_ip> 1433

Stattdessen, wenn Sie die TCP-Verbindung überprüfen möchten.

Soweit die Fehlermeldung betroffen ist

connect: Netzwerk ist nicht erreichbar

Sie erhalten diese Meldung auch, wenn Ihr Client-Host keine IPv6-Verbindung hat.

Versuchen Sie dies auf Ihrem Kunden

$ telnet -6 google.com 80

und sehen, ob Sie eine Verbindung erhalten oder ob das Netzwerk nicht erreichbar ist.

Ich habe `telnet -6 google.com 80` ausprobiert und das Netzwerk ist nicht erreichbar. Was bedeutet das? Gabriel Ilharco vor 8 Jahren 0
Entweder ist Roberto Alcantara korrekt und Sie haben keine IPv6-Standardroute, oder Ihr Client hat überhaupt keine IPv6-Konnektivität. remote mind vor 8 Jahren 0
Schauen Sie sich die Ausgabe der IP -6-Route an. Sie sollte wie folgt aussehen: 2xxx: xxx: xxx: xxxx :: / 64 dev eth0 Proto-Kernel-Metrik 256 (mit Hexadezimalzahlen anstelle von x) remote mind vor 8 Jahren 0
"ip -6 route" ergab diese Ausgabe: "fe80 :: / 64 dev eth0 proto kernel metric 256" Gabriel Ilharco vor 8 Jahren 0
fe80 :: / 64 ist eine andere Link-Local-Adresse, daher nicht über das Internet routbar. Aus diesem Grund arbeitet sie lokal, jedoch nicht vom separaten System in einem anderen Netzwerk. remote mind vor 8 Jahren 0
Grundsätzlich haben Sie keine öffentlichen IPv6-Adressen, Sie müssen diese also abrufen oder IPv4-Adressen abrufen und verwenden. remote mind vor 8 Jahren 0
Ich bin mir nicht sicher, ob ich überhaupt IPv6s verwenden muss, da das, das ich verwendet habe, anscheinend falsch ist. Das Problem ist, wie bekomme ich die IP, die ich hier brauche, um mich mit dem SQL Server zu verbinden? Gabriel Ilharco vor 8 Jahren 0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/34607/discussion-between-gabriel-ilharco-and-remote-mind). Gabriel Ilharco vor 8 Jahren 0
0
Roberto Alcantara

Scheint, dass Sie keine Standardroute haben.

Überprüfen Sie es mit

# ip -6 route 

Sie sollten so etwas sehen:

default via 2801:95:1f0:::1 dev bond0 metric 1 mtu 1500 advmss 1440 hoplimit 4294967295 

Jetzt können Sie diese IP-Adresse (Standardgateway) ping6 und Ihre lokale IPv6-Konnektivität überprüfen. Wenn Ihre Standardroute eine Link-Local-Adresse (fe80: :) ist, müssen Sie -I auf ping6 setzen, um das verwendete Ethernet-Gerät anzugeben.

Es ist in Ordnung zu versuchen

tracepath6 www.google.com 

um zu überprüfen, wo Sie aufhören.

`tracepath6 www.google.com` ergab folgende Ausgabe:` 1: Senden fehlgeschlagen `` Resume: pmtu 128000` Gabriel Ilharco vor 8 Jahren 0
Sie haben anscheinend ein Problem mit der IPv6-Verbindung. Was ist mit der Standardroute? Roberto Alcantara vor 8 Jahren 0