LINUX.ORG.RU
ФорумAdmin

Правила хорошего тона при настройке ipv6

 ,


0

2

Есть где-то сабжевая подборка?

Применительно к SOHO, скажем так, т.е. мелкий офис или домашняя сеть, то есть до 10-15 машин в доверенной сети.

В v4-сетях всё было как-то проще - брали серый диапазон /24, раздавали с помощью dhcp и горя не знали. Все хосты знали свой шлюз по-умолчанию, могли достучаться друг до друга напрямую, просто и понятно.

В v6-же всё как-то странно, скажем так.

Пример конфига dnsmasq:

port=53
domain-needed
interface=br0 (eth0 + wlan0)
dhcp-range=192.168.2.13, 192.168.2.200, 10h
dhcp-range=2001:xxxx:xxxx:xxxx::dead:10, 2001:xxxx:xxxx:xxxx::dead:fff0, 64
enable-ra
dhcp-host=id:00:01:00:01:xx:xx:xx:xx:xx:6c:8f:37:d6:1e, laptop, [2001:xxxx:xxxx:xxxx::dead:beef]
dhcp-authoritative

В итоге с v4 всё как ожидалось, а вот v6 приходит таким (на laptop):

# ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:xxxx:xxxx:xxxx::dead:beef/128 scope global dynamic 
       valid_lft 2663sec preferred_lft 2663sec
    inet6 fe80::xxxx:xxxx:xxxx:d61e/64 scope link 
       valid_lft forever preferred_lft forever
# ip -6 r
2001:xxxx:xxxx:xxxx::dead:beef dev eth0  proto kernel  metric 256  expires 2622sec
fe80::/64 dev eth0  proto kernel  metric 256 
ff00::/8 dev eth0  metric 256 

На роутере:

# ip -6 addr show dev br0
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
    inet6 2001:xxxx:xxxx:xxxx::2/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::xxxx:xxxx:xxxx:35bc/64 scope link 
       valid_lft forever preferred_lft forever

Почему выдаёт /128 при наличии /64? Почему не роутить через 2001:xxxx:xxxx:xxxx::2? Почему, в конце концов, дефолтный роут отваливается раз в N часов (пока пытаюсь отловить ситуацию, но, с виду, RA не отправляется почему-то постоянно, а только по запросу с клиента (dhcpcd -n eth0)?

Вроде никаких суровых политик ipv6 не включал (на роутере - дефолтный распбиан), а оно так злобно со мной.

★★★★★

Почему не роутить через 2001:xxxx:xxxx:xxxx::2?

потому что маршрут приезжает еще до выдачи адреса, через link-local и router advertisement(который у тебя хоть и обслуживается тем же dnsmasq-ом, но именно таково его поведение в RFC)

Почему выдаёт /128 при наличии /64?

http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2014q3/008679.html

http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html

For IPv6, the mode may be some combination of ra-only, slaac, ra-names, ra-stateless, ra-advrouter, off-link.

Эти опции курил?

Update: как утверждают по первой ссылке - даже с префиксом /128 всё должно работать. Более того - широковещалка пойдет по link-local адресу, так что проблем быть вообще не должно.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 3)

dhcpv6 и не должен отдавать маршрут по умолчанию. RA не является частью dhcpv6. dnsmasq хочет в себя запихать все, логично читать его документацию для решения озвученных проблем.

hizel ★★★★★
()

Почему, в конце концов, дефолтный роут отваливается раз в N часов

судя по всему - баг в dnsmasq, я для раздачи router advertisement его никогда не использовал, у меня этим занимается либо radvd либо демон zebra из состава quagga

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

Почему выдаёт /128 при наличии /64?
http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2014q3/008679.html

Ага. Становится понятнее, что проще выкинуть dnsmasq и юзать что-то v6-специфичное.

For IPv6, the mode may be some combination of ra-only, slaac, ra-names, ra-stateless, ra-advrouter, off-link.

Эти опции курил?

В документации dnsmasq и нескольких эссе по ней я провел уже несколько часов :)

На редкость отвратительная комбинация флагов, не маппящаяся на реалии. Вообще не понятно, что они курили, делая их.

Update: как утверждают по первой ссылке - даже с префиксом /128 всё должно работать

Я забыл сказать - всё работает (ну, отваливается иногда). Просто чудно очень.

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

судя по всему - баг в dnsmasq, я для раздачи router advertisement его никогда не использовал, у меня этим занимается либо radvd либо демон zebra из состава quagga

Вот хотелось обойтись без тяжёлой артиллерии :(

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

у меня этим занимается либо radvd либо демон zebra из состава quagga

Мне вообще кажется противоестественным для одной функции использовать несколько демонов. Один адрес выдаёт, другой роут, что за бред?.. Я понимаю, что хотелось изобрести замену одному демону dhcp, но зачем два демона изобретать?..

Интересно было б почитать на тему «почему так, а не так, когда вот так было б проще». Была ж какая-то мотивация у них в именно такой организации. Хотя вообще кажется, что изобретали походу, напарываясь на проблемы и нестыковки, отсюда и пяток необходимых демонов (вместо одного!) только для базовой работы стэка...

AngryElf ★★★★★
() автор топика

https://weirdfellow.wordpress.com/2014/09/05/dhcpv6-and-ra-with-dnsmasq/

Просто глядя на табличку флагов хочется руки кому-то поотрывать.

Вот если мне надо, что б совершенно разные девайсы в сети работали с ipv6 без настройки на стороне девайса, то какие флаги мне тыкать?

ios не поддерживает одно, но поддерживает другое. linux - смотря какой демон, windows - вообще чёрт ногу сломит. И вроде думаешь, всё настроил и можно даже по приколу отключить v4, но вдруг оказывается, что dns приходит по dhcpv4, а в v6 флаг забыт :(

Кромешный ад сотоны какой-то.

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

проще выкинуть dnsmasq и юзать что-то v6-специфичное

а ты уверен что это особенность реализации а не поведение, задекларированное в RFC? Вон говорят что при отключённом SLAAC при выдаче адреса длина префикса не передаётся. Отсюда и клиент не может знать какую длину префикса ставить. В SLAAC при rtadv длина префикса напротив передаётся, но там ты не определяешь IP клиенту.

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

Один адрес выдаёт, другой роут, что за бред?

Всё просто. SLAAC для неуправляемых сетей(zeroconf), DHCPv6 для управляемых. Но DHCPv6 реализован не вместо rtadv а ВМЕСТЕ с ним

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

Есть мнение что проблему с /128 ты не решишь и это by design. А вот отвалы сети из-за проблемы с router advertisements - надо чинить

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

Есть мнение что проблему с /128 ты не решишь и это by design.

Узнать бы, почему такой дизайн... Броадкаст защищали, что ли?..

А вот отвалы сети из-за проблемы с router advertisements - надо чинить

Ну тут понятно, буду копать.

а ты уверен что это особенность реализации а не поведение, задекларированное в RFC? Вон говорят что при отключённом SLAAC при выдаче адреса длина префикса не передаётся.

Впринципе, в этом есть какая-то логика. Но блин, мутно как-то.

Хотелось, конечно, выставлять себе кошерный dead:beef (без SLAAC, мне и двух v6-адресов на интерфейсе достаточно, зачем третий ещё...) и при этом нормально сосуществовать хостам в одном сегменте, а никак, видать, и by design, причём.

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

А вот отвалы сети из-за проблемы с router advertisements - надо чинить

Починилось апдейтом. Был баг в 2.61

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

Но DHCPv6 реализован не вместо rtadv а ВМЕСТЕ с ним

Т.е. без rtadv всё-таки нельзя? Я надеялся что можно раздавать дефолтный шлюз через DHCPv6 и обойтись одним протоколом для автоконфигурации сети.

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

Насколько я знаю - нельзя. RFC я читал давно, поэтому могу ошибаться.

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