LINUX.ORG.RU
ФорумAdmin

OpenWRT и IPv6

 ,


0

1

В IPv6 ничего не понимаю и понимать не хочу, по этому буду использовать свою выдуманную терминологию всей этой непонятной ерунды. Хочу чтобы мне просто помогли все настроить, пошагово рассказав куда ткнуть и что написать.

Есть Dir-300 с OpenWRT 15.05.1. У провайдера статический IPv4 и IPv6. Хочу сделать чтобы обе эти сущности работали одновременно на одном WAN и перенаправляли интернеты на LAN, к которому по DHCP подвешены все мои комплюхтеры.

По IPv4 дали настройки:

ip: 192.168.xx.xx
маска: 255.255.255.0
шлюз: 192.168.xx.1
По IPv6 дали такое:
ip: xxxx:xxxx:10::2/128
подсеть: xxxx:xxxx:10:2::/64
В роутере создал WAN подключение «Статический адрес», вбил туда настройки IPv4 - интернет заработал. А вот что вбивать в IPv6 - непонятно: там есть поля «IPv6-адрес», «IPv6-адрес шлюза» и «IPv6 routed prefix». Адрес положим я вбил, а как из адреса родить эти «IPv6-адрес шлюза» и «IPv6 routed prefix»?


Ответ на: комментарий от posix

Ну и пинай своего провайдера. Как оно по-твоему должно работать на одном адресе и link prefix, на neighbour discovery в пределах подъезда?

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

Само собой пну, но пну - завтра, когда они начнут работать, а интернет мне надо прямо сайчас. Отсюда вопрос - как посчитать этот шлюз. В IPv4 все просто, нужно четвертый октет заменить на единицу и будет шлюз. Тут как?

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

В IPv4 все просто, нужно четвертый октет заменить на единицу и будет шлюз.

Ничего подобного.

Тут как?

Как и там - никак.

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

Ничего подобного.

Ок, хотите позанудствовать - давайте позанудствуем. Общепринятой практикой считается делать шлюзом первый адрес в сети, в IPv4 так делают все.

Перефразирую: как принято это делать в IPv6? Если так же, то какой первый адрес сети в моем случае?

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

Для того, чтобы проверить смелое предположение о том, что адресом шлюза является «первый» адрес подсети, одной решимости мало. Нужно бы узнать размер этой подсети, т.е. routed prefix. Есть гипотезы?

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

Это, если твой провайдер не долбанутый, как некоторые, link prefix. Все адреса из этого /64 - твои и шлюза провайдера среди них не затесалось. Для того, чтобы узнать размер подсети, куда ты можешь ходить без шлюза (routed prefix), тебе надо выяснить его у провайдера.

В терминах IPv4 ты мне тычешь /32, маски подсети не знаешь вообще и пытаешься вывести ее и адрес шлюза из одного лишь адреса.

t184256 ★★★★★
()

В IPv6 ничего не понимаю и понимать не хочу

«Ну и дура» (с)

ip: xxxx:xxxx:10::2/128
/128

Должно все с ra (автоматом) сработать. Шлюзом будет link-local fe80: прова. Не надо ручками прописывать. А подсеть «xxxx:xxxx:10:2::/64» скорее всего зароучена на адрес «xxxx:xxxx:10::2/128» что с ней делать решайте сами.

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

Ок, хотите позанудствовать - давайте позанудствуем. Общепринятой практикой считается делать шлюзом первый адрес в сети, в IPv4 так делают все.

«Да что вы говорите?» Ранее считалось последний, но вы видимо в то время еще даже не родились. Нет никаких правил, о чем вам уже написали.

anc ★★★★★
()

«IPv6 routed prefix»?

подсеть: xxxx:xxxx:10:2::/64

«IPv6-адрес шлюза»

возможно xxxx:xxxx:10::1/128

или вообще оставь пустым, вдруг само заработает

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

Ок, хотите позанудствовать - давайте позанудствуем. Общепринятой практикой считается делать шлюзом первый адрес в сети, в IPv4 так делают все.

Только вот подсети не всегда бывают /24. Я сетями не занимаюсь, но тем не менее, видел и /16, и /27.

i-rinat ★★★★★
()
Ответ на: комментарий от posix

Это правило c /24 только для локалок (и то можно пренебречь). В больших интернетах работает CIDR + VLSM.

digitaldark
()
Ответ на: комментарий от t184256

Я полагаю, что провайдер выдал /64 link prefix, и все, без routed-префикса. На это намекает то, что «клиенту» предполагается назначить xxxx:xxxx:10::2/128, и, вероятно, xxxx:xxxx:10::1/128 — маршрутизатор провайдера.

Стандартными средствами раздать такую подсеть не получится, придется применять NDP Proxy.

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

Это, если твой провайдер не долбанутый, как некоторые, link prefix. Все адреса из этого /64 - твои и шлюза провайдера среди них не затесалось. Для того, чтобы узнать размер подсети, куда ты можешь ходить без шлюза (routed prefix), тебе надо выяснить его у провайдера.

Нет, это не так.

On-link prefix — это та подсеть, куда ты можешь ходить без шлюза, по определению. Шлюз должен быть внутри одного из on-link префиксов (или же на линк-локальном адресе). И не факт, что все адреса из неё твои. Например, у vultr.com так (все адреса из on-link prefix твои, при условии, что ты отвечаешь на Neighbour Solicitation — можешь забриджить контейнер или поднять NDP-прокси), а у Linode, или, скажем, у Онлайма не так — твой там только тот адрес, который ты получаешь через SLAAC или DHCPv6, а остальные не твои. Поскольку у ТС-а адрес xxxx:xxxx:10::2/128, этот on-link prefix у него состоит из одного адреса, а шлюз где-то среди линк-локальных адресов.

А routed prefix — это та подсеть, которую провайдер тебе явным образом выдаёт и будет роутить на твоё устройство. Он не обязан совпадать или пересекаться с on-link prefix. Оттуда уже все адреса твои, и что ты с ними будешь делать — решать тебе. Провайдер гарантирует, что все обращения по этим адресам он будет роутить на твоё устройство. Надо понимать, routed prefix ТС-а — это xxxx:xxxx:10:2::/64.

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

Я полагаю, что провайдер выдал /64 link prefix, и все, без routed-префикса. На это намекает то, что «клиенту» предполагается назначить xxxx:xxxx:10::2/128, и, вероятно, xxxx:xxxx:10::1/128 — маршрутизатор провайдера.

Стандартными средствами раздать такую подсеть не получится, придется применять NDP Proxy.

Почему?

IPv6-адрес ТСа — xxxx:xxxx:10::2/128. On-link prefix у него /128, из одного адреса. Какой там шлюз — вопрос отдельный, наверное, где-то в fe80::/64. А подсеть xxxx:xxxx:10:2::/64 вообще не пересекается с его link prefix! Это, скорее всего, routed prefix.

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

А, я как-то не так прочитал подсеть. Почему-то показалось, что в обоих случаях xxxx:xxxx:10::.

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

Блин, все перепутал. Спасибо за вправку, я какого-то черта называл их наоборот.

t184256 ★★★★★
()

Шлюз оказался xxxx:xxxx:10::1, но приключения на этом не закончились: настроил подключение напрямую к компьютеру и все заработало. Сделал ровно те же самые настройки на роутере, пытаюсь пинговать шлюз и получаю:

# ping xxxx:xxxx:10::1
PING xxxx:xxxx:10::1 (xxxx:xxxx:10::1): 56 data bytes
ping: sendto: Permission denied
Пробовал разрешить все в файрволе, выключить все правила - ничего не помогло.

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

И с ping6 то же самое. IPv4 все пингуется, IPv6 пингуется только внутрянняя сеть, все что дальше шлюза и сам шлюз - не пингуется с сообщением sendto: Permission denied.

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

Вроде нет:

/etc/config/network

config globals 'globals'
	option ula_prefix 'xxxx:xxxx:10:2::/64'

config interface 'lan'
	option ifname 'eth0.1'
	option force_link '1'
	option macaddr 'xx:xx:xx:xx:xx:xx'
	option type 'bridge'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '64'

config interface 'wan'
	option ifname 'eth0.2'
	option _orig_ifname 'eth0.2'
	option _orig_bridge 'false'
	option proto 'static'
	option ip6gw 'xxxx:xxxx:10::1'
	option ip6addr 'xxxx:xxxx:10::2'
	option ip6prefix 'xxxx:xxxx:10:2::/64'
	option ipaddr '192.168.xx.xx'
	option netmask '255.255.255.0'
	option gateway '192.168.xx.1'

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

Это было первое, что я проверил, на всякий случай сделал на роутере:

/etc/init.d/firewall stop
ip6tables -F
iptables -F

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

Сдается мне, что проблема в опции «IPv6 routed prefix», если ее значение поменять например на «xxxx:xxxx:10:2::/32», то ответ на пинг шлюза будет уже «ping6: sendto: Network is unreachable».

К слову сказать в настройках сети убунты вообще небыло никакого «routed prefix», там был просто «префикс», которому я задал значение 128 и все работало. В OpenWRT же этот «routed prefix» не может иметь числовое значение.

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

Нашел весьма странное решение, не уверен, что это правильно, но это работает:

IPv6 address сделал xxxx:xxxx:10::2/64 (а не /128 как говорил провайдер)

IPv6 gateway - xxxx:xxxx:10::1

IPv6 routed prefix - xxxx:xxxx:10:2::/48 (тут вообще пришел к /48 перебором)

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

IPv6 routed prefix - xxxx:xxxx:10:2::/48 (тут вообще пришел к /48 перебором)

Это не может быть правдой. У тебя двойка в хостовой части, а она обязана быть нулевой. Верни /64.

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

Все логично.

IPv6 address сделал xxxx:xxxx:10::2/64 (а не /128 как говорил провайдер)
IPv6 gateway - xxxx:xxxx:10::1

/128 читай как /32 в v4, естественно с таким префиксом и указанным gw работать не будет.
Заработало потому что вы указали префикс в который попадают адреса как gw так и ваш. Можно было и /126 указать имхо этого достаточно.
Минусом вашего /64 является то что «соседей» с /128 вы не увидите

IPv6 routed prefix - xxxx:xxxx:10:2::/48 (тут вообще пришел к /48 перебором)

Это перебор, ваша сеть это /64

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

Это не может быть правдой. У тебя двойка в хостовой части, а она обязана быть нулевой. Верни /64.

Вы полностью правы. Прописать-то можно, но вот последствия....
2ТС На примере того же v4, у вас подсеть 1.2.3.0/24 из которой раздаете адреса, все работает. Но вот решили вы поменять префикс на /8, думаю результат такого изменения сами додумаете.

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

Это вам просто «повезло» что они «рядом», но в целом это не совсем правильно. Представьте что gw был бы xxxx:xxxx:10::1 а ваш адрес xxxx:xxxx:10:100::200.
Да и на xxxx:xxxx:10::3 Может оказаться, «что-то нужное вам»

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