Имею 2 4to6 туннеля, один в рф, другой не в рф. Хочу, чтобы сайты из рф ходили через туннель в рф, остальные через второй.
В случае IPv6, ваша проблема легко решается через nftables. Выдавать 2 IPv6 нет смысла, выдавайте один любой IPv6 (даже локальный) и просто меняйте у него префикс сети.
Оба ваших туннеля должны поддерживать маршутизацию всей /64 подсети.
Определите список подсетей из РФ (2001:640::/64, 2001:6d0::/64, ... ) и настройте маршрутизацию этих адресов через интерфейс туннеля при помощи команды: ip -6 route add 2001:640::/64 dev TUNNEL_RUS
В файле конфигурации nftables определите переменную, которая будет содержать набор подсетей из РФ: define rus6 = {2001:640::/64, 2001:6d0::/64, ...};
Создайте правило подмены префикса адреса отправителя: chain post_rus { type nat hook postrouting priority 0; ip6 daddr $rus6 snat ip6 prefix to <prefix-of-rus-tunnel>::/64; }
PROFIT!
Для реализации задумки, достаточно любого роутера под управлением OpenWRT
Мне кажется, основной недостаток IPv4 в том, что в своё время слишком много адресов было бездумно выделено абы кому. И вместо того, чтобы придумать механизм отжима IPv4 у всех, кто не может показать целесообразность владения огромными пулами IPv4, был придуман сверхизбыточный IPv6. Который тоже может резко закончиться, если выдавать его также бездумно, как и IPv4.
IPv6 фактически пригодится только тем пользователям, кому нужно больше 1 публичного IP.
Представьте, вы читаете текст в котором в каждом слове ошибка. Смысл написанного вам будет понятен, но вот мнение об авторе у вас вряд ли сложится положительное. Так и тут. Если верстальщик в 2021 году всё ещё использует XHTML 1.0, значит последние 10 лет прогресса прошли мимо него и, в результате, вам сделали сайт по технологиям ~2010 года.
Исключительно конфиге клиента, заметим, а не сервера. На сервере только префикс указывается.
Заголовок статьи неправильный.
В данном случае под SLAAC понимается, что клиент получает от сервера только префикс, а далее сам выбирает себе interface id и, таким образом, создаёт себе IPv6 адрес. Тут нет Router Advertisement, поскольку его заменяет сам WireGuard предоставляя префикс и его длину клиенту.
Попробуйте сделать, как я написал, подключить по VPN к серверу роутер и с него уже раздать IPv6 по Wi-Fi.
Под interface id я понимал правую часть IPv6 адреса. В случае, если одна /64 IPv6 подсеть будет роздана двум устройствам, которые (например) выберут себе IP ::2 и ::3, откуда VDS узнает кому какой трафик слать? Теоретически, в этом случае, пиры смогут общаться между собой, чего мне хотелось бы избежать.
Вполне можно и /64 выдаваемую серверу распределить.
Предлагаете нарезать её на более мелкие подсети?
можно вполне пробросить те же IPv6 туннельного брокера на свой VPS
Только если очень не хочется менять хостера. Ещё один туннель неминуемо увеличит пинг.
если у вас перенаправляющий роутер должен конфигурироваться тоже на основе SLAAC/DHCPv6 - то для интерфейса который так конфигурируется - его надо обязательно отключать
Не в моём случае. Отключать не обязательно, можно воспользоваться опциейaccept_ra=2.
Опишите, как придумаете. Тоже интересно.
В случае IPv6, ваша проблема легко решается через nftables. Выдавать 2 IPv6 нет смысла, выдавайте один любой IPv6 (даже локальный) и просто меняйте у него префикс сети.
Оба ваших туннеля должны поддерживать маршутизацию всей /64 подсети.
Определите список подсетей из РФ (2001:640::/64, 2001:6d0::/64, ... ) и настройте маршрутизацию этих адресов через интерфейс туннеля при помощи команды:
ip -6 route add 2001:640::/64 dev TUNNEL_RUS
В файле конфигурации nftables определите переменную, которая будет содержать набор подсетей из РФ:
define rus6 = {2001:640::/64, 2001:6d0::/64, ...};
Создайте правило подмены префикса адреса отправителя:
chain post_rus {
type nat hook postrouting priority 0;
ip6 daddr $rus6 snat ip6 prefix to <prefix-of-rus-tunnel>::/64;
}
PROFIT!
Для реализации задумки, достаточно любого роутера под управлением OpenWRT
Мне кажется, основной недостаток IPv4 в том, что в своё время слишком много адресов было бездумно выделено абы кому. И вместо того, чтобы придумать механизм отжима IPv4 у всех, кто не может показать целесообразность владения огромными пулами IPv4, был придуман сверхизбыточный IPv6. Который тоже может резко закончиться, если выдавать его также бездумно, как и IPv4.
IPv6 фактически пригодится только тем пользователям, кому нужно больше 1 публичного IP.
Поделитесь, пожалуйста, ссылкой на эти события.
Зачем так много? /32 блок содержит в 3 раза больше /64 подсетей, чем сейчас IPv4 у США. А для КНДР даже /56 с избытком...
Представьте, вы читаете текст в котором в каждом слове ошибка. Смысл написанного вам будет понятен, но вот мнение об авторе у вас вряд ли сложится положительное. Так и тут. Если верстальщик в 2021 году всё ещё использует XHTML 1.0, значит последние 10 лет прогресса прошли мимо него и, в результате, вам сделали сайт по технологиям ~2010 года.
https://validator.w3.org/check?uri=https%3A%2F%2Fua-hosting.company
89 ошибок, XHTML 1.0 Transitional... ? Вам сайт на FrontPage верстали?
Почему я должен этому верить?
Интересно, что послужило идентификатором запрещённого контента в телеграмме?
Так PPP это тоже канальный уровень.
К сожалению, пуши в wg пока не завезли.
Не сработает. NPD работает на более низком, канальном уровне. А WG - на сетевом.
Исключительно конфиге клиента, заметим, а не сервера. На сервере только префикс указывается.
В данном случае под SLAAC понимается, что клиент получает от сервера только префикс, а далее сам выбирает себе interface id и, таким образом, создаёт себе IPv6 адрес. Тут нет Router Advertisement, поскольку его заменяет сам WireGuard предоставляя префикс и его длину клиенту.
На OpenWRT это возможно и это работает.
Под
interface id
я понимал правую часть IPv6 адреса.В случае, если одна /64 IPv6 подсеть будет роздана двум устройствам, которые (например) выберут себе IP ::2 и ::3, откуда VDS узнает кому какой трафик слать? Теоретически, в этом случае, пиры смогут общаться между собой, чего мне хотелось бы избежать.
Задача стояла в том, чтобы через wireguard раздать целиком /64 подсеть, а не 1 статический адрес.
У меня только 1 wg0 интерфейс.
А кто будет заниматься маршрутизацией на уровне VDS? Если на случайный interface id придёт трафик, кому он достанется?
Уточните, о какой именно /64 подсети идёт речь?
Вы предлагаете одну подсеть давать разным устройствам?
Предлагаете нарезать её на более мелкие подсети?
Только если очень не хочется менять хостера. Ещё один туннель неминуемо увеличит пинг.
Не в моём случае. Отключать не обязательно, можно воспользоваться опцией
accept_ra=2
.