На сервере Ubuntu 18.04 не виден сайт по ipv6 адресу
На сервере Ubuntu 18.04 не виден сайт по ipv6 адресу.
https://ipv4.sklad.rus/index.php - работает
https://ipv6.sklad.rus/index.php - нет
Долго искал причину, не нашёл. Работает только в виртуальной винде. Причина может быть где угодно, спрашивайте дополнительную информацию.
Opera
This site can’t be reached
The webpage at https://ipv6.sklad.rus/index.php might be temporarily down or it may have moved permanently to a new web address.
ERR_INVALID_ARGUMENT
FireFox
пустой экран
$ nslookup ipv6.sklad.rus
Server: 192.168.0.72
Address: 192.168.0.72#53
Name: ipv6.sklad.rus
Address: fe80::5 (сетевая сервера II)
Name: ipv6.sklad.rus
Address: fe80::9 (сетевая сервера I)
Виртуальная винда FireFox :
работает нормально
> nslookup ipv6.sklad.rus
?? : unknown
address : 192.168.0.72 (сервер)
?? : ipv6.sklad.rus
addresses : fe80::9 (сетевая сервера I)
fe80::5 (сетевая сервера II)
/etc/apache2/sites-available/sklad.rus.conf
<IfModule mod_ssl.c>
NameVirtualHost *:443
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName sklad.rus
ServerAlias ipv4.sklad.rus ipv6.sklad.rus
DocumentRoot /var/www/sklad.rus/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/sklad.rus/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from xxxx:xxxx:xxxx:xxxx::/64
allow from 192.168.0
allow from 192.168.1
allow from xxx.xxx
allow from xxx.xxx.xxx.xxx
allow from 127.0.0.1
allow from xxxx:xxxx:xxxx:xxxx::5
allow from fe80::/16
Require local
Require ip xxxx:xxxx:xxxx:xxxx::/64
Require ip 192.168.0
Require ip 192.168.1
Require ip xxx.xxx
Require ip xxx.xxx.xxx.xxx
Require ip 127.0.0.1
Require ip xxxx:xxxx:xxxx:xxxx::5
Require ip fe80::/16
</Directory>
...
пингую
$ ping -I eth0 ipv6.sklad.rus
PING ipv6.sklad.rus(fe80::9 (fe80::9)) from fe80::948b:8c30:898f:e014%eth0 eth0: 56 data bytes
64 bytes from fe80::9%eth0 (fe80::9%eth0): icmp_seq=1 ttl=64 time=0.439 ms
64 bytes from fe80::9%eth0 (fe80::9%eth0): icmp_seq=2 ttl=64 time=0.211 ms
...
трассирую
$ sudo traceroute -i eth0 ipv6.sklad.rus
traceroute to ipv6.sklad.rus (fe80::9), 30 hops max, 80 byte packets
1 fe80::9%eth0 (fe80::9%eth0) 0.233 ms 0.141 ms 0.097 ms
на сервере route говорит :
$ route -6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
localhost6.localdomain6/128 [::] U 256 1 0 lo
xxxx:xxxx:xxxx:xxxx::/64 [::] U 256 1 0 enp3s0
xxxx:xxxx:xxxx:xxxx::/64 [::] U 1024 1 0 enp2s0
xxxx:xxxx:xxxx:xxxx::/64 [::] U 1024 1 0 enp3s0
fe80::/64 [::] U 256 2 1 enp3s0
fe80::/64 [::] U 256 4 219 enp2s0
[::]/0 fe80::6e3b:6bff:fedb:5ada UG 1024 4 2434 enp2s0
[::]/0 fe80::6e3b:6bff:fedb:5adc UG 1024 4 2661 enp3s0
localhost6.localdomain6/128 [::] Un 0 5 21635 lo
xxxx:xxxx:xxxx:xxxx::/128 [::] Un 0 2 0 enp2s0
xxxx:xxxx:xxxx:xxxx::/128 [::] Un 0 2 0 enp3s0
xxxx:xxxx:xxxx:xxxx::5/128 [::] Un 0 2 0 enp3s0
xxxx:xxxx:xxxx:xxxx:523e:aaff:fe16:8646/128 [::] Un 0 2 0 enp3s0
xxxx:xxxx:xxxx:xxxx:ca60:ff:fe61:62c3/128 [::] Un 0 3 1176 enp2s0
fe80::/128 [::] Un 0 2 0 enp3s0
fe80::/128 [::] Un 0 2 0 enp2s0
sklad.rus/128 [::] Un 0 3 1 enp3s0
sklad.rus/128 [::] Un 0 5 268 enp2s0
fe80::523e:aaff:fe16:8646/128 [::] Un 0 4 7098 enp3s0
fe80::ca60:ff:fe61:62c3/128 [::] Un 0 3 4981 enp2s0
ff00::/8 [::] U 256 4 6317 enp3s0
ff00::/8 [::] U 256 4 54257 enp2s0
[::]/0 [::] !n -1 1 5 lo
Ответы (2 шт):
На сервере Ubuntu 18.04 не виден сайт по ipv6 адресу.
основные моменты для проверки
1 на сервере должен быть айпи 6 адрес видимый из внешней сети
2 у регистратора ДИ должен быть прописан тот же ай пи 6 адрес что и на сервере ipv6.sklad.rus === 2001:0db8:85a3:0000:0000:8a2e:0370:7334 ( ето как пример
3 апач или нгинкс должен быть настроен на прием и разруливание ай пи 6 адресов 80 или 443 порт приводящий к ipv6.sklad.rus ==> /home/sklad/web/public_html
иногда идут проглючки и надо указать что то вида 2001:0db8:85a3:0000:0000:8a2e:0370:7334:443 вместо *:443
ето основные рекомендации ..... в любом месте может быть затык условно если идет запрос из АФРИКИ ( и там толко ай пи 4 сетки .... то ресолв по ай пи 6 ты не получиш.
Насколько я могу судить, проблема в том, что вы используете link-local адрес. Для таких адресов не определена маршрутизация, ибо эти адреса есть в каждой локальной сети. Поэтому для взаимодействия с узлами по таким адресам необходимо явным образом указывать интерфейс, через который должны отправляться пакеты. В примере с ping вы задаёте интерфейс -I eth0. Что будет, если вы не укажете интерфейс? Скорее всего, пинг не пройдёт.
Попробуйте на клиенте прописать явную маршрутизацию для адресов сервера. Например, если клиент подключен к сети, в которой у сервера адрес fe80::9, сделать так: sudo route -6 add fe80::9 dev eth0. После этого клиент должен начать маршрутизировать адрес fe80::9
Но в общем и целом использовать link local адреса - плохая практика.
Я бы рекомендовал вам привязать доменное имя к адресу с глобальным префиксом. Насколько понимаю, такой префикс вы скрыли за иксами xxxx:xxxx:xxxx:xxxx::/64
Или же настройте себе внутренние адреса (ULA):
- придумайте себе для сервера два префикса из пространства ULA
fd00::, напримерfd00:a000::/48иfd00:b000::/48 - присвойте серверу на каждую из сетевых карт адреса из этих префиксов (на одну карту адрес
fd00:a000::1, на другую -fd00:b000::1), - пропишите на клиенте правило маршрутизации для того префикса, к сети которого он подключен (например,
fd00:a000:: -> eth0) - пропишите адреса сервера в DNS или
/etc/hosts
После этого адрес fd00:a000::1 должен нормально маршрутизироваться на клиенте и сервер должен стать доступным.