Странно не удается подключиться к домену изнутри сервера

Я не могу подключиться к github.com Если и только если я попытаюсь сделать это из моего сервера локальной сети (давайте назовем его FQDN server.com). Если я ssh server.com а затем попытаться, скажем, curl github.com, возникает ошибка типа "нет маршрута к хосту":

curl: (7) Failed to connect to github.com port 80: No route to host

Рассматриваемый сервер имеет активные службы DNS (bind9), DHCP, HTTP/s и SSH и, в частности, является преобразователем DNS для всех компьютеров в локальной сети. Пожалуйста, смотрите в нижней части поста некоторую, надеюсь, полезную информацию.

Однако я могу нормально подключаться к GitHub на любой другой моей локальной машине.

Как мне диагностировать и исправить это?


$ systemd-resolve github.com
github.com: 192.30.253.113
            192.30.253.112

-- Information acquired via protocol DNS in 48.2ms.
-- Data is authenticated: no

$ host -v github.com
Trying "github.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47061
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 13, ADDITIONAL: 2

;; QUESTION SECTION:
;github.com.            IN  A

;; ANSWER SECTION:
github.com.     8   IN  A   192.30.253.113
github.com.     8   IN  A   192.30.253.112

;; AUTHORITY SECTION:
.           513652  IN  NS  a.root-servers.net.
.           513652  IN  NS  d.root-servers.net.
.           513652  IN  NS  k.root-servers.net.
.           513652  IN  NS  j.root-servers.net.
.           513652  IN  NS  c.root-servers.net.
.           513652  IN  NS  f.root-servers.net.
.           513652  IN  NS  h.root-servers.net.
.           513652  IN  NS  g.root-servers.net.
.           513652  IN  NS  b.root-servers.net.
.           513652  IN  NS  i.root-servers.net.
.           513652  IN  NS  e.root-servers.net.
.           513652  IN  NS  l.root-servers.net.
.           513652  IN  NS  m.root-servers.net.

;; ADDITIONAL SECTION:
E.ROOT-SERVERS.NET. 133062  IN  AAAA    2001:500:a8::e
G.ROOT-SERVERS.NET. 483477  IN  AAAA    2001:500:12::d0d

Received 347 bytes from 127.0.0.1#53 in 0 ms
Trying "github.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37084
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;github.com.            IN  AAAA

;; AUTHORITY SECTION:
github.com.     660 IN  SOA ns-1707.awsdns-21.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

Received 112 bytes from 127.0.0.1#53 in 0 ms
Trying "github.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39053
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 13, ADDITIONAL: 2

;; QUESTION SECTION:
;github.com.            IN  MX

;; ANSWER SECTION:
github.com.     844 IN  MX  1 aspmx.l.google.com.
github.com.     844 IN  MX  10 alt3.aspmx.l.google.com.
github.com.     844 IN  MX  5 alt2.aspmx.l.google.com.
github.com.     844 IN  MX  5 alt1.aspmx.l.google.com.
github.com.     844 IN  MX  10 alt4.aspmx.l.google.com.

;; AUTHORITY SECTION:
.           513652  IN  NS  b.root-servers.net.
.           513652  IN  NS  j.root-servers.net.
.           513652  IN  NS  l.root-servers.net.
.           513652  IN  NS  e.root-servers.net.
.           513652  IN  NS  i.root-servers.net.
.           513652  IN  NS  m.root-servers.net.
.           513652  IN  NS  g.root-servers.net.
.           513652  IN  NS  k.root-servers.net.
.           513652  IN  NS  a.root-servers.net.
.           513652  IN  NS  f.root-servers.net.
.           513652  IN  NS  d.root-servers.net.
.           513652  IN  NS  c.root-servers.net.
.           513652  IN  NS  h.root-servers.net.

;; ADDITIONAL SECTION:
E.ROOT-SERVERS.NET. 133062  IN  AAAA    2001:500:a8::e
G.ROOT-SERVERS.NET. 483477  IN  AAAA    2001:500:12::d0d

Received 430 bytes from 127.0.0.1#53 in 0 ms

$ sudo traceroute -ITU github.com
traceroute to github.com (192.30.253.112), 30 hops max, 60 byte packets
 1  server.com (192.168.0.2)  2998.275 ms !H  2998.252 ms !H  2998.238 ms !H

1 ответ

Решение

Я подозревал, что это как-то связано с тем, что я использовал 192.168.0.0/16 подсеть в моей локальной сети и в самом деле так оно и было. Чтобы понять, в чем заключалась проблема, и в конечном итоге решить ее, я начал с запроса маршрутизации сервера, которая выявила странную маску сети:

# ip route show
default via 192.168.0.1 dev enp5s0 onlink                                                                                                                  
192.0.0.0/8 dev enp5s0  proto kernel  scope link  src 192.168.0.2

Ищу в /etc/network/interfaces раскрыл виновника:

iface enp5s0 inet static
address 192.168.0.2
netmask 255.0.0.0
gateway 192.168.0.1

Я больше не могу вспомнить, вернулось ли когда-нибудь при настройке сервера, установка Ubuntu Server запросила у меня информацию о сети или о том, делала ли она молчаливые предположения. Я на самом деле считаю, что он настроен из коробки, чтобы ожидать 10.0.0.0/8 подсеть, и я, должно быть, по ошибке изменил его на 192.168.*.* но забыл про маску сети.

В любом случае я затем исправил приведенную выше маску сети, чтобы 255.255.0.0 и выполнен systemctl restart networking, Бег ip route show показал новую маску в действии, а также, как ни странно, старую. Я должен был явно удалить старый маршрут с ip route delete 192.0.0.0/8 dev enp5s0 и тогда все заработало.


РЕДАКТИРОВАТЬ: ответ на первую часть моего вопроса (как диагностировать) было посмотреть на маршрутизацию машины, которая, если у вас есть проблемы с сетевым подключением, аналогичным моему, может быть хорошим местом для начала.

Другие вопросы по тегам