Сеть недоступна - MSSQL

346
Gabriel Ilharco

Я пытаюсь подключиться удаленно к серверу sql 2008.

Я могу установить соединение с локальным IP-адресом (я делаю это с терминала в операционной системе Linux, подключенной к локальной сети, используя freetds), и все работает.

Я пытаюсь получить доступ к базе данных из совершенно отдельной системы, не подключенной к локальной сети. Я пытаюсь (и не могу) подключиться к серверу, когда пытаюсь получить к нему доступ по общедоступному ip, который я получаю отсюда (Диспетчер конфигурации SQL Server-> Конфигурация сети SQL Server -> Протоколы для SQLEXPRESS -> TCP / IP) - фото иллюстративное, в моей системе включен ip:

Сеть недоступна - MSSQL

Когда я пытаюсь пропинговать его, используя ping6 <my_ip> 1433, я получаю следующую ошибку:

connect: Network is unreachable 

Вот некоторая полезная информация:

  • Удаленные подключения разрешены на сервере.
  • TCP / IP включен
  • Определенный IP-адрес включен и активен в SQL ServerConfiguration Manager, а для TCP-порта установлено значение 1433.
  • Я добавил исключение в брандмауэр для TCP с портом 1433 и всеми сетями.
  • Я также добавил исключение брандмауэра для sqlservr.exe

Есть идеи?


Изменить: Хорошо, поскольку используемый мной IPv6 не является правильным IP-адресом (как указано, он локальный, а не общедоступный), как я могу получить правильный IP-адрес для подключения? Я искал об этом, но все, что я получил, это как найти несколько локальных IP-адресов.

0
Похоже, проблема маршрутизации с сетевыми маршрутизаторами или брандмауэрами и т. Д. Трафик должен быть маршрутизируемым через вашу сеть между подсетями (или из вашего общедоступного интерфейса, например, переадресация портов или NAT), иначе он не будет работать, так что я получу с вашим сетевым администраторам, чтобы подтвердить или посмотреть, могут ли они помочь, поскольку это не похоже на проблему брандмауэра ОС на уровне сервера. Pimp Juice IT 8 лет назад 0
Это IP, я использую правильный? Я волнуюсь, что это не может быть, но я понятия не имею, если это так. Gabriel Ilharco 8 лет назад 0
Являетесь ли вы сетевым администратором в вашей сети с этими разными сетями, о которых вы говорите как о совершенно разных системах? Сначала я хотел бы поговорить с сетевыми администраторами, поскольку они лучше всего понимают топологию вашей сети. Если вам нужно войти на этот сервер из внешнего мира, то я не уверен, что вы захотите включить в него порт 1433 и контролировать его, возможно, через какую-то конфигурацию приложения. Трудно сказать, что вам нужно без подробностей. Я думаю, что было бы лучше сначала поговорить с сотрудниками вашей сети передачи данных, если вы не понимаете эти аспекты на всякий случай. Pimp Juice IT 8 лет назад 1

2 ответа на вопрос

1
remote mind

fe80:: is a IPv6 link-local address, so that's not a public IP. Those can be used within a network, but not across routers.

So if the fe80::... IP is the one you are using i'm positive it's not the right one to use.

Ah, also this makes little sense:

ping6 < my_ip> 1433

because ping does not know about ports. Try using

$ telnet -6 <my_ip> 1433

instead, if you want to check the tcp connection.

As far as the error message is concerned

connect: Network is unreachable

you will also get this message if your client host doesn't have IPv6 connectivity.

Try this on your client

$ telnet -6 google.com 80

and see if you get a connection or if you get Network unreachable.

Я попытался `telnet -6 google.com 80` и получил сеть недоступна. Что это значит? Gabriel Ilharco 8 лет назад 0
Либо Роберто Алькантара верен, и у вас нет маршрута по умолчанию ipv6, либо у вашего клиента вообще нет подключения к IPv6. remote mind 8 лет назад 0
Попробуйте посмотреть на вывод маршрута ip -6, он должен выглядеть следующим образом: 2xxx: xxx: xxx: xxxx :: / 64 dev eth0 Протоядерная метрика 256 (с шестнадцатеричными строчными буквами вместо х) remote mind 8 лет назад 0
`ip -6 route` дал такой вывод:` fe80 :: / 64 dev eth0 прото ядро ​​метрика 256` Gabriel Ilharco 8 лет назад 0
fe80 :: / 64 это еще один локальный адрес связи, поэтому он не маршрутизируется через Интернет, поэтому он работает локально, а не из отдельной системы в другой сети. remote mind 8 лет назад 0
По сути, у вас нет общедоступных IPv6-адресов, поэтому вам нужно получить их или получить IPv4-адреса и использовать их. remote mind 8 лет назад 0
Я не уверен, что мне вообще нужно использовать IPv6s, поскольку тот, который я использовал, по-видимому, неправильный. Проблема в том, как я могу получить IP, который мне нужен здесь для подключения к серверу sql? Gabriel Ilharco 8 лет назад 0
Давайте [продолжим это обсуждение в чате] (http://chat.stackexchange.com/rooms/34607/discussion-between-gabriel-ilharco-and-remote-mind). Gabriel Ilharco 8 лет назад 0
0
Roberto Alcantara

Seems you are without default route.

Check it with

# ip -6 route 

You should see something like this:

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

Now you can ping6 this IP address (default gateway) and check your ipv6 local connectivity. If your default route is a link-local address (fe80::) you need to put -I on ping6 to specify the ethernet device used.

It this is ok try to

tracepath6 www.google.com 

to check where you are stopping.

`tracepath6 www.google.com` дал следующий вывод:` 1: отправка не удалась` `Резюме: pmtu 128000` Gabriel Ilharco 8 лет назад 0
Кажется, у вас проблема с подключением IPv6. Как насчет маршрута по умолчанию? Roberto Alcantara 8 лет назад 0