VPS в России с ipv6/56/48 в routed

Забыл прикрепить саму рекомендацию:

  • Рекомендуется выдавать /48 пользователю
  • Настоятельно не рекомендуется выдавать префиксы длиннее /56
  • Настоятельно не рекомендуется провайдерам использовать ULA для клиентов для избежания потерь пакетов PMTUD
  • Непостоянные префиксы (которые выдаются ростелекомом, например) считаются вредными в IPv6
  • При необходимости провайдерам рекомендуется поддерживать как постоянные по умолчанию, так и непостоянные опциональные префиксы для клиентов

Смешно это всё, конечно. В России нет ни одного хостера и провайдера, кто выполнил бы эти требования.

1 Like

окей можно я бампну тут один раз? также тэгну вот этот 6in4 сервер - #3 by Mr.Alex

в связи с тем что форум доступен теперь тока по ipeev6 думую вопрос ахтунгальный, сначала отвечу про хостера - таки есть хостер который выдаёт ipeev6 глобальный(маршрутизиреумый?) адрес хостер называется фирстбайт если я ничё не путую то если получается достучаться (через курл) до ipeev6 only сайтов то это значит оно таки работает я праильно понемаю?

и собственно перехожу к вопросу а как сделать тунель или реверспрокси или прост форвардинг какой нето или что по такой схеме ipv4(домашний коп)=>ipv4(хостер)=>(хостер)=>ipv6=>(наружа)

Summary


то есть мне получается не нужон никакой брохер и прочие тока осталось какимт образом соединится из ipv4 в ipv6 мир, пробывал виригуард делать (амнезияВГ) чёт не завелось толком ничё

Форвардинг IPv6 можно настроить так:

  1. Раздаёте клиентам тунеля сеть адреса ULA, например, из fd00:dead:beef::/64
  2. В firewalld создаёте зону для внешнего интерфейса
    firewall-cmd --permanent --new-zone="my_external"
    
  3. Отбрасываете входящие пакеты по умолчанию
    firewall-cmd --permanent --zone="my_external" --set-target=DROP
    
  4. Добавляете внешний сетевой интерфейс для этой зоны
    firewall-cmd --permanent --zone="my_external" --add-interface=eth0
    
  5. Создаёте службу для вашего тунеля
    firewall-cmd --permanent --new-service="my_tunnel"
    
  6. Добавляете используемый порт тунеля
    firewall-cmd --permanent --service="my_tunnel" --add-port=12345/udp
    
  7. Разрешаете службу тунеля для внешней зоны
    firewall-cmd --permanent --zone="my_external" --add-service="my_tunnel"
    
  8. Разрешаете SNAT для IPv4
    firewall-cmd --permanent --zone="my_external" --add-masquerade
    
  9. Разрешаете SNAT для адресов из подсети клиентов тунеля IPv6
    firewall-cmd --permanent --zone="my_external" --add-rich-rule='rule family="ipv6" source address="fd00:dead:beef::/64" masquerade'
    
  10. Создаёте зону для интерфейса тунеля
    firewall-cmd --permanent --new-zone="my_tun"
    
  11. Добавляете виртуальный сетевой интерфейс тунеля для этой зоны
    firewall-cmd --permanent --zone="my_tun" --add-interface=tun0
    
  12. Разрешаете службу DNS для этой зоны (служба уже должна быть настроена на прослушивание 53 портов TCP и UDP на интерфейсе тунеля)
    firewall-cmd --permanent --zone="my_tun" --add-service="dns"
    
  13. Создаёте политику транзитного трафика из зоны тунеля во внешнюю зону
    firewall-cmd --permanent --new-policy="tun_to_exernal"
    
  14. Разрешаете транзит по умолчанию
    firewall-cmd --permanent --policy="tun_to_exernal" --set-target=ACCEPT
    
  15. Добавляете входящую зону
    firewall-cmd --permanent --policy="tun_to_exernal" --add-ingress-zone="my_tun"
    
  16. Добавляете исходящую зону
    firewall-cmd --permanent --policy="tun_to_exernal" --add-egress-zone="my_external"
    
  17. Применяете настройки
    firewall-cmd --reload
    
  18. Форвардинг вроде бы должен быть разрешён (для IPv4 firewalld включает его автоматически, IPv6 — не помню)
    sysctl -w net.ipv6.conf.all.forwarding=1
    
  19. ???
  20. PROFIT

Если хостинг предоставляет несколько IPv6 без поддержки анонса соседа по NDP, то можно настроить NAT отдельно для одного клиента:
Например, предоставлены два адреса 2001:db8:dead:beef::1:1/118 и 2001:db8:dead:beef::2:1/118
Первый будет использоватся для адресации хоста, второй для адресации клиента:

  1. В конфигурацию сетевого интерфейса /etc/network/interfaces вписываете оба адреса, например
    iface eth0 inet6 static
            address 2001:db8:dead:beef::2:1
            netmask 118
            gateway 2001:db8:dead:beef::1
            autoconf 0
    
    iface eth0 inet6 static
            address 2001:db8:dead:beef::1:1
            netmask 118
            gateway 2001:db8:dead:beef::1
            autoconf 0
    
  2. Перезапускаете сервер и проверяете, что команда
    curl --insecure https://6.ident.me
    
    Показывает 2001:db8:dead:beef::1:1, а команда
    curl --insecure --interface 2001:db8:dead:beef::2:1 https://6.ident.me
    
    Показывает 2001:db8:dead:beef::2:1
  3. Повторяете предыдущую инструкцию кроме п. 9.
  4. Для NAT добавьте конфигурацию правил nftables в файле /etc/nftables.conf по примеру:
    table ip6 my_nat6 {
            chain postrouting {
                    type nat hook postrouting priority srcnat; policy accept;
    
                    ip6 saddr fd00:dead:beef::/64 snat to 2001:db8:dead:beef::2:1
            }
    
            chain prerouting {
                    type nat hook prerouting priority dstnat; policy accept;
    
                    icmpv6 type echo-request ip6 daddr 2001:db8:dead:beef::2:1 dnat to fd00:dead:beef::1000
    
                    tcp dport 12345 ip6 daddr 2001:db8:dead:beef::2:1 dnat to fd00:dead:beef::1000
                    udp dport 12345 ip6 daddr 2001:db8:dead:beef::2:1 dnat to fd00:dead:beef::1000
    
                    ip6 daddr 2001:db8:dead:beef::2:1 limit rate 1/second reject with icmpv6 admin-prohibited
            }
    }
    
    В примере помимо SNAT для клиентов тунеля перенаправляются входящие ICMP Echo с адреса 2001:db8:dead:beef::2:1 на клиент тунеля fd00:dead:beef::1000, порты 12345 TCP/UDP и отвергаются все остальные входящие пакеты.
  5. Форвардинг тоже должен быть включён
    sysctl -w net.ipv6.conf.all.forwarding=1
    

Спасибо за информацию, ничерта не понел :sweat_smile: значит будем через тор дальше заходить

Самый простой вариант - сделать NAT6 с адресов вида fc00::/7, как это делается в ipv4 с 192.168.x.x
Входящих не будет, но исходящие - да. Уж с этим любой должен справиться, кто посягнул на VPS

оказывается всё гараааздо проще - если у вас уже есть впска на которой работает ипв6 делается вот так вот на лохкальной машине запускаеште:

ssh -D 1080 -C -N user@your-vps-ipv4-address

потом в браузере задаёте сокс проксе and we done here

спасибо нееросетям за то что они есть :sweat_smile:

upd: если впска в россии то нужно ещё запрет прикрутить :smiling_face_with_tear:
пс
да я понимаю что ссш тунель это last resort но чтобы капчевать тут вполне себе хватает