LINUX.ORG.RU
решено ФорумAdmin

ipv6 роутинг /126 на виртуалку

 ,


0

1

Получаю от хостера /64, хочу привязать v6-адрес к виртуалке на этом же хосте.

Конфиг выглядит так:

server eth0 - XXX::2/64

server tap1 - XXX::101/126

server routes:

XXX::100/126 dev tap1  proto kernel  metric 256  pref medium
XXX::/64 dev eth0  proto kernel  metric 256  pref medium
fe80::/64 dev eth0  proto kernel  metric 256  pref medium
fe80::/64 dev tap1  proto kernel  metric 256  pref medium
ff00::/8 dev eth0  metric 256  pref medium
ff00::/8 dev tap1  metric 256  pref medium
default via XXX::1 dev eth0  metric 1024  pref medium

qemu eth0 - XXX::102/126

qemu routes:

XXX::100/126 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
default via XXX::101 dev eth0  metric 1024  mtu 1500 advmss 1440 hoplimit 4294967295

с сервера доступен адрес как на tap1, так и внутри qemu с qemu доступны адреса сервера (XXX::2, XXX::101), но не доступно ничего дальше.

С внешнего мира доступен только адрес сервера на eth0 (XXX::2), но не доступны на tap1 (XXX::101) и внутри qemu.

Выглядит, как будто отключен форвардинг, но он включен:

net.ipv6.conf.all.forwarding = 1

При попытке пинга хоста внутри qemu или адреса на tap1, в tcpdump вижу:

12:46:53.281508 IP6 fe80::fa:55ff:fe00:2123 > ff02::1:ff00:102: ICMP6, neighbor solicitation, who has XXX::102, length 32

При этом, адрес fe80::fa:55ff:fe00 - вообще не мой, а роутера провайдера, что ли...

iptables/ip6tables пустой, всё ACCEPT.

Куда копать?

★★★★★

адрес fe80::fa:55ff:fe00 - вообще не мой, а роутера провайдера

fe80:: это local link, так что вероятно вполне твой

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

не ту строчку скопировал. v6 форвардинг тоже включен:

# sysctl net.ipv6.conf.all.forwarding
net.ipv6.conf.all.forwarding = 1
AngryElf ★★★★★ ()

Откуда вообще взялся /126? В случае, если машина ловит из сети RA-анонсы с нужным префиксом - адреса на ней можно автоматически настроить через SLAAC. В IPv6 делить префикс /64 на более мелкие — плохая идея, так делать не рекомендуется, и далеко не весь софт это поддерживает. Если вам нужно несколько IPv6 сетей, запрашивайте у провайдера блок /48, а его уже делите на блоки по /64.

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

Я подобные советы много раз видел, но никогда не понимал.

Вот дали мне 2^64 адресов, а порубать на под-сети - плохо. Что б юзать подсети - возьми еще 2^96 адресов и их рубай... Где логика-то? Мне правда для моих проектов хватит 2^64 адресов.

Что б софт не понимал такое - тоже не понимаю. Софт у меня простой (sshd), слушает на всех интерфейсах разом, что он может не понимать-то?

Всё что мне надо - зароутить кусок сети, выданный мне провайдером, внутрь, на виртуалку. С v4 всё вышеописанное работало по вышеописанной схеме. На другом сервере в другом ДЦ точно так же всё пашет без проблем. Тут почему-то не хочет. Видимо, какая-то v6-магия где-то глючит.

если машина ловит из сети RA-анонсы с нужным префиксом

Нет, я настраивал статический роутинг этого /64, полученного от провайдера, точно так же, как делал с v4.

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

P.S. Я не наезжаю, я правда хочу разобраться. Причем разобраться не принципу «так надо», а «почему так надо».

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

Сходи и почитай рекомендации за ipv6. Довольно прозрачно разъясняется почему /64 не надо делить если это не туннели.

hizel ★★★★★ ()

Балуюсь тем что Вы хотите сделать - пробрасываю от хостера ipv6 домашним тачкам через ipsec туннели. Если я правильно понимаю что у Вас дано: трафик между tap интерфейсом и eth0 не бриджуется а маршрутизируется.

Если так то надо чтобы ваш хост сервер отвечал на icmp6(аналогичные ipv4 arp) запросы для тех адресов которые идут со стороны маршрутизатора хостера на адреса отданные виртуалкам. Для этого курить ndppd - позволит отвечает сразу за целые сети. Штучно можно и без него. Но отвечать на icmp6 надо. У меня всё работает :).

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

Потому что IPv6 это не копия IPv4 с бОльшим количеством адресов.

2^64 адресов хватило бы на весь сегодняшний Интернет, но тем не менее так не сделали. И причин почему /64 выдается на VLAN три:

1. Раз и навсегда исключить проблему исчерпания адресов внутри VLAN (в v4 с его дефицитом это сплошь и рядом, когда думали что, условно /24 хватит, а оказалось что нужно /23, и не факт что в /23 можно съагрегировать два соседних /24, т.к. соседние могут быть уже заняты).

2. Исключить большое количество мелких префиксов, которые анонируются глобально. В v6 минимальный префикс, который можно анонсировать - /48. Нужно это для сокращения размеров GRT (еще один привет v4).

3. Упростить агрегирование маршртутов благодаря отсутсвию мелких префиксов распиханых разным владельцам. В v6 все очень красиво агрегируется по схеме /64 -> /48 -> /32.

По поводу софта. Да sshd все равно какой у вас размер префикса, т.к. он работает через интерфейс сокетов и ему это до лампочки. А скажем для ISC dhcpd6 уже не все равно, и с префиксами мельче чем /64 он работать не будет.

Хотите чтобы был нормальный роутинг — заказывайте /48. Либо сразу вешайте адреса из вашего /64 без дальшейшего деления.

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

Сходи и почитай рекомендации за ipv6.

Отсылка к мануалу без названия или ссылки на мануал - не считается :)

Я перелопатил кучу документов и статей про v6 и нигде нет ответа толком.

То что нашел - «роутеры жалко, мало памяти, давайте мельче /64 не рубить». Но это не отвечает на вопрос - почему роутер провайдера не шлёт мне пакеты, таргет-адреса которых лежат в пределах той /64, которую _он_ мне выдал. Нахрена он перед этим делает disovery?

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

В v6 минимальный префикс, который можно анонсировать - /48.

Если б это так было, в full-view не было б /52, /56 и даже /64 :)

Потому что IPv6 это не копия IPv4 с бОльшим количеством адресов.

Из вашего объяснения не понятно, почему не «копия с большим количеством адресов».

Хотите чтобы был нормальный роутинг — заказывайте /48

Так ответ на исходный вопрос - провайдер виноват? ndpproxy там не настроил, например, или еще один блок мне не выдал, да?

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

Для этого курить ndppd - позволит отвечает сразу за целые сети. Штучно можно и без него.

А могу я как-то прописать у себя, что какие-то из адресов этой /64 тоже мои, что б работали без discovery? Ну типа как в arp-таблицу записей добавить руками, что б роутер провайдера был спокоен?

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

Для этого курить ndppd - позволит отвечает сразу за целые сети.

Выкурил, вроде заработало, спасибо.

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

Если б это так было, в full-view не было б /52, /56 и даже /64 :)

Это только настоятельная рекомендация, как и все соглашения в Интернете.

Из вашего объяснения не понятно, почему не «копия с большим количеством адресов».

http://www.internetsociety.org/deploy360/blog/2013/12/free-ebook-ipv6-for-ipv4-experts-in-english-and-russian/

Так ответ на исходный вопрос - провайдер виноват?

Обычно виноват тот, кто не следует гайдлайнам.

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

Если б это так было, в full-view не было б /52, /56 и даже /64 :)

В ipv4 full-view от некоторых провайдеров есть и /28. Факт нарушения соглашения в одном конкретном случае не является поводом забить на соглашение всем остальным.

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

http://www.internetsociety.org/deploy360/blog/2013/12/free-ebook-ipv6-for-ipv...

Спасибо, почитаю.

Обычно виноват тот, кто не следует гайдлайнам.

Когда гайды слабо соприкасаются с реальной жизнью, их приходится нарушать.

Например, я успел разобраться в NDPPD быстрее, чем провайдер отреагировал (мутно) на запрос о дополнительном диапазоне для моего сервера.

В другой ситуации, когда надо было в Израиле найти ipv6-диапазон, оказалось, что проще купить portable-адреса в Чехии, чем пытаться убедить местного LIR, что он обязан выдавать v6-адреса по договору с RIPE, гайдам и просто здравому смыслу.

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