LINUX.ORG.RU
ФорумAdmin

Помогите настроить v6 only точку доступа.

 


1

2

Добрый день всем.

Имеется гибридная сеть v4/v6 которую раздает ротуер. V6 настроена через тоннель. Все машины в сети работают и здесь претензий нет.

Сейчас нужно настроить отдельную wi-fi сеть в котрой будет только v6.

Подумал что сделаю точку доступа на gentoo машине. машина просто клиент, не роутер,

Взял hostapd - все настроил - точку все видят.

Теперь хотелось бы настроить там сеть, но я не совсем понимаю что мне нужно сделать.

Хочется раздавать на точке доступа v6 адреса из диапазона, который у меня уже есть после настройки v6 тоннеля и чтобы в качестве роутера для нее был железный роутер.

Если я сделаю мост на wlan0 - это интерфейс точки доступа, это будет работать? Если да, то что мне нужно для этого сделать?


Сделать только-v6 бриджем у тебя не получится, так как сеть у тебя v4+v6. Можешь отрезать кусок сетки не меньше /64 и анонсить с точки. или статикой как хочешь и отдавать через DHCPv6.

slapin ★★★★★
()
Ответ на: комментарий от slapin

Ок. А можно чуть подробнее?

На роутере у меня прописано так:

LAN IPv6 Address: 2001:xxx:xxxx:xxx::1 LAN Prefix Length: 64 LAN IPv6 Prefix: 2001:xxx:xxxx:xxx::

Интерфейс wlan0 настроен так:

modules_wlan0="!iwconfig !wpa_supplicant" depend_wlan0=«net.eth0» config_wlan0=«2001:xxx:xxxx:xxx::3/64»

radvd.conf:

interface wlan0 { AdvSendAdvert on; AdvLinkMTU 1280; MaxRtrAdvInterval 300; prefix 2001:xxx:xxxx:xxx::/64 { AdvOnLink on; AdvAutonomous on; }; };

Поднимаю hostapd, raddvd.

Телефон к сети подключается, но ему ничего не выдается и в логе:

radvd[27375]: wlan0 received RS or RA on wlan0 but wlan0 is not ready and setup_iface failed

psyton
() автор топика
Ответ на: комментарий от psyton

Самое простое это при наличии radvd поднять dnsmasq на втором роутере (через который wifi). Проболемы могут вылезти если нужно отдать < 64 - тогда только статические маршруты для них. И автоматом раздать их не получится, поэтому нужно на дефолтном роутере прописывать статику. dnsmasq будет рпботать в обоих случаях, просто конфиг будет чуть сложнее. Если раздавать 64 и больше (48, 56, ...) проблем не бдет.

slapin ★★★★★
()
Ответ на: комментарий от slapin

Просто без знания топологии (какие префиксы и как идут) сложно ответить точнее. Я раздаю префиксы так:

interface br0
{
   AdvSendAdvert on;
   MaxRtrAdvInterval 15;
   prefix 2001:XXXX:XXXX::/64
   {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
   };
   prefix 2001:XXXX:XXXX:1::/64
   {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
   };
   prefix 2001:XXXX:XXXX:2::/64
   {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
   };
...
   RDNSS 2001:XXXX:XXXX:1::1
   {
        AdvRDNSSLifetime 3600;
   };
};

У меня 3 wifi и ethernet завернуты в бридж и на нем запущен radvd. Есть еще один ethernet к провайдеру (там не ipv6 и анонсы не идут напрямую). И есть еще второй роутер, который создает VPN и анонсит местную сетку и получает потустороннюю, там тоже ethernet и wifi в бридже и принимает коннекты от андроидных телефонов. dnsmasq общий один на перврм роутере. IPv6 работает везде и адреса назначаются сразу правильно. Сетка у меня достаточно жирная, но я не делаю v6-онли сегментов.

slapin ★★★★★
()
Ответ на: комментарий от slapin

То есть в моей конфигурации никакого DHCP у меня на втором роутере нет и все в бридже, а тебе нужно будет второй роутер делать нормальным роутером, заставлять dnsmasq работать как DHCPv6 с работой вместе с radvd и без него в зависимости от топологии. По идее должно работать/можно заставить.

slapin ★★★★★
()
Ответ на: комментарий от slapin

Можешь отрезать кусок сетки не меньше /64 и анонсить с точки. или статикой как хочешь и отдавать через DHCPv6

тут есть ньюанс, android телефон не умеет в DHCPv6...

ukr_unix_user ★★★★
()
Ответ на: комментарий от ukr_unix_user

Использую такое https://github.com/Mygod/DHCPv6-Client-Android плюс свои костыли (собираю AOSP прямо с этим чудом). На самом деле там даже есть нормальный DHCP в дереве, но нет поддержки фреймворком. Можно гонять из init.rc и чуть подправленным скриптом из AOSP. Я не понимаю почему они этого не сделали. У меня телефон жрет DHCPv6 из коробки, но я хз кто это еще делает кроме китайцев.

Но именно по этой причине я гоняю radvd - оно проще и более совместимо с реализациями.

slapin ★★★★★
()
Ответ на: комментарий от slapin

Короче если у тебя сетка большая, анонсишь жирную с главного роутера, а со второго выделенный сегмент. Только они по адресам не должны пересекаться, как и в v4. И в общем пространстве у тебя ничего не должно быть чтобы не назначать левые адреса в не тех сетях. Почитай мануал на radvd, там просто всё (роутеры друг друга сами видят).

Можно еще воткнуть динамическую маршрутизацию (quagga/bird-v6, я испльзую bird) чтобы оно само отваливалось и появлялось в зависимости от живости роутера и так меньше настраивать.

slapin ★★★★★
()
Последнее исправление: slapin (всего исправлений: 1)
Ответ на: комментарий от slapin

Попробовал все настроить с dnsmasq

Вот мои параметры:

Статический настроеный wlan0 интерфейс с адресом из подсети выделенной HE.

# ifconfig wlan0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1480
        inet6 2001:abc:efgh:ijk:1000::1  prefixlen 64  scopeid 0x0<global>
        ether 50:3e:aa:54:c2:c5  txqueuelen 1000  (Ethernet)
        RX packets 931  bytes 12328866 (11.7 MiB)
        RX errors 0  dropped 112  overruns 0  frame 0
        TX packets 82  bytes 6389897 (6.0 MiB)
        TX errors 0  dropped 7 overruns 0  carrier 0  collisions 0

На сетевухе получаем все через dhcp

# ifconfig eth0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.2  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 2001:abc:efgh:ijk:fc06:7737:db31:3e75  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::fec5:2fd8:f9f:111  prefixlen 64  scopeid 0x20<link>
        ether 78:24:af:3e:75:49  txqueuelen 1000  (Ethernet)
        RX packets 41299675  bytes 3776891307 (3.5 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 69458899  bytes 88539531198 (82.4 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Настройки DHCPCD

# cat /etc/dhcpcd.conf

duid
persistent
option rapid_commit
option interface_mtu
require dhcp_server_identifier
slaac private

denyinterfaces wlan0
interface eth0
  ipv6rs                 # enable routing solicitation get the
                         # default IPv6 route
  ia_na                  # request an IPv6 address
  ia_pd 1 eth0

Настройки dnsmasq

# cat dnsmasq.conf

interface=wlan0
listen-address=2001:abc:efgh:ijk:1000::1
no-resolv
server=2001:abc:efgh:ijk::1

local=/subnet1/

domain=subnet1
dhcp-fqdn
enable-ra
dhcp-range=::100,::1ff,constructor:wlan0

log-queries
log-dhcp

В sysctl.conf прописано:

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.accept_ra=2

В логах dnsmasq пишет что что-то там раздает, но на деле, на той же винде получаю мусор, а не то что хочется.

Что-то я явно не докрутил

psyton
() автор топика
Ответ на: комментарий от psyton

Попробуй сначала на линуксе с включенной отладкой получи адрес, потом уже винду ковыряй. Винда тебе особо не расскажет ничего.

slapin ★★★★★
()
Ответ на: комментарий от slapin

Я поднял на машине dhcrelay который мне пробрасывает dhcp6 c eth0 на wlan0.

dnsmasq, вроде бы сейчас не нужен

Теперь, телефон получает v6 адреса. Но вот пакеты похоже не летают.

psyton
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.