Технологии

IPv6 для сайта, и не только

А вот кстати еще один способ подключить IPv6, без регистрации у туннельных брокеров: Для обычных IPv4-адресов выделена специальная сеть в формате IPv6, адреса в ней имеют вид 2002:XXXX:XXXX::/48. То есть, если у вас есть выделенный 1 IP-адрес - считайте, что вам выделена и вот такая сеть IPv6, или 65536 подсетей /64 - просто вам об этом забыли рассказать. Технология называется 6to4, сейчас считается depricated, но по факту еще работает, и скорее всего будет работать до полной победы IPv6 над IPv4 (т.е. очень долго). Смысл в том, что IPv6-трафик заворачивается на адрес публичного шлюза 192.88.99.1, который и занимается трансляцией протоколов туда-обратно. Чтобы этим воспользоваться - нужно создать туннельный интерфейс определенного типа, присвоить ему свой IPv6-адрес, который рассчитывается по обычному IP, и настроить маршрутизацию. Адрес рассчитывается по простой схеме: 2002:(1 октет)(2 октет):(3 октет)(4 октет)::/48 То есть, 12.34.56.78 превращается в 2002:0c22:384e::1/48 Маска - 48 бит, 6 байт, следовательно, вот эта часть фиксирована, остальное - на ваше усмотрение: (2002:0c22:384e):XXXX:XXXX:XXXX:XXXX:XXXX Правда, один номер 2002:0c22:384e:0000:0000:0000:0000:0001, он же 2002:0c22:384e::1, занят, но это не страшно. Все равно еще куча сетей 2002:0c22:384e:ХХХХ::/64 Ну а теперь - реализация всего этого. Чтобы не особо заморачиваться - вот такой скриптик: #!/bin/sh read -p "Enter IP: " ipv4 ipv6=$( printf "2002:%02x%02x:%02x%02x::1" $(echo $ipv4 | tr "." " ")) echo "#!/bin/sh" echo "# $ipv4 -> $ipv6/48" echo "sysctl net.ipv6.conf.all.forwarding=1" echo "ip tunnel add tun6to4 mode sit remote any local $ipv4 ttl 255" echo "ip link set dev tun6to4 up" echo "ip addr add $ipv6/16 dev tun6to4" echo "ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 100" Он создает shell-скрипт, который можно просто запустить и получить свою подсеть. Ну или прописать нужные команды в нужные конфиги, чтобы все срабатывало после перезагрузки. Дальше - по отработанной схеме: Если этот внешний IP на интерфейсе машины, уже включеной в LAN, и надо раздать внутрь - то выделяем подсеть, добавляем адрес из раздаваемой подсети на локальный интерфейс и запускаем raddvd: ip -6 addr add 2002:0c22:384e:1::1/64 dev eth0 vim /etc/radvd.conf interface eth0 { AdvSendAdvert on; prefix 2002:0c22:384e:1::/64 { AdvOnLink on; AdvAutonomous on; }; }; /etc/init.d/raddvd restart Если передаем куда-то по каналу, допустим, tun0, тогда так: Выделяем подсеть для туннеля - можно не жадничать, хотя и нужно всего два адреса, ТУТ и ТАМ. Выделяем подсеть для LAN - она будет назначаться на интерфейсах LAN Настраиваем маршруты: на сервере - в эту подсеть, на другой стороне - по умолчанию наружу. Шлюз в обоих случаях - адрес другой стороны туннеля. ip -6 addr add 2002:0c22:384e:1::1/64 dev tun0 ip -6 route add 2002:0c22:384e:2::/64 via 2002:0c22:384e:1::2/64 на другой стороне канала: ip -6 addr add 2002:0c22:384e:1::2/64 dev tun0 ip -6 route add default via 2002:0c22:384e:1::1/64 metric 100 ip -6 addr add 2002:0c22:384e:2::1/64 dev eth0 vim /etc/radvd.conf interface eth0 { AdvSendAdvert on; prefix 2002:0c22:384e:2::/64 { AdvOnLink on; AdvAutonomous on; }; }; И вот у нас везде IPv6 адреса... Вроде ничего сложного. В очередной раз - не очень понятно зачем это мне надо, но раз можно, то почему бы и нет? Если бы это сделали примерно все - давно бы перешли на IPv6...

Фильтры и сортировка