LINUX.ORG.RU
Форум — Admin  

Как назначить IPv6 адрес на интерфейс бессрочно?

 


0

1

Такая странная ситуация. Назначаю статически адрес на интерфейс командой

ip -6 addr add 2a00:***/64 scope global dev br0

а так же пробовал

ip -6 addr add 2a00:***/64 scope global valid_lft forever preferred_lft forever dev br0

и

ip -6 addr add 2a00:***/64 scope global valid_lft 86400 preferred_lft 86400 dev br0

но результат всегда один, время жизни адреса всегда не более 7200 сек.

ip -6 a show dev br0                                                                                                                                                                                                                        9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1426 qdisc htb state UP group default qlen 10000                                                                                                                                                                                                inet6 2a00:***/64 scope global dynamic                                                                                                                                                                                                                        valid_lft 6824sec preferred_lft 3224sec                                                                                                                                                                                                                                                inet6 fd60::1:ac7f:23ff:fee8:b0df/64 scope global dynamic mngtmpaddr                                                                                                                                                                                                                         valid_lft 2806sec preferred_lft 2806sec                                                                                                                                                                                                                                                inet6 fe80::ac7f:23ff:fee8:b0df/64 scope link                                                                                                                                                                                                                                                valid_lft forever preferred_lft forever

естественно по истечению адрес удаляется с интерфейса…

Как так то? А Как назначить адрес раз и до «посинения»?

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

ip addr add 2a01:****/64 dev eth0

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

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

Устройство bridge из 2х сетевых карт и wifi точек.

Что ещё заметил. Если сделать ip del а потом снова добавить адрес, то lft «не сбрасывается» а как бы «восстанавливается» с того момента какой был на момент del

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

Я имею ввиду, это обычный линукс, или какая-то специализированная прошивка? Возможно, vSphere, или что-то вроде того?

Khnazile ★★★★★
()

Еще такой вопрос: ты пытаешься назначить адрес, который ранее был назначен SLAAC/DHCP6, или любой другой?

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

Debian 12.
dhclient -6 получает сеть PD от ISP и вызывает bash скрипт в котором я пытаюсь назначить адрес на локальный интерфейс (не на тот с которого получили, тот ppp1)

И вроде все работает, но вот lft косевряжится

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

Так ядро(или какая-нибудь другая прослойка) видимо смотрит что это полученный с другого интерфейса префикс и синхронизирует таймауты, не?

У тебя там кроме dhclient случайно нет какого-нибудь systemd-networkd или NetworkManager?

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

Не нету. Спецом отключено. Все что есть это if-up-down скрипты. Которые в запускают dhclient на интерфейсе если прописать
`iface ppp0 inet6 dhcp`

в свою очередь на br0 прописано

`iface br0 inet6 manual`

Ну и никто по идее не должен ничего более знать.

Если ядро умничает - то где? В sysctl грипал что на ум пришло, но ничего путного не нашёл....

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

Не очень понимаю, что происходит. Ты выбираешь адрес из полученного префикса, или делаешь что-то еще?

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

Все что есть это if-up-down скрипты.

Забавно, давеча в опросе какими инструментами настраиваете сеть один %username% упорно доказывал, что скриптами все легко и просто ))

Это так скорее заметки на полях

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

С ipv6 везде сложно, т.к. как с ним правильно работать знают не только лишь все.

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

Именно.
dhclient получает от ISP тот самый PD с сетю /52 и на этом его полномочия практически всё. Он в последствии дёргает скрипт - мол разбирайтесь сами с этой хренью...
Теперь скрипт.
Он получает через set переменную окружения в виде той самой подсети PD и ещё кучу всего...
Считает допустимый eui64 из ближайшей /64 сетки в этом PD и выполняет выше предложенную команду ip -6 a set ....

Собственно на этом все.
И это работает пока я не заметил что работает не долго, а ровно 2 часа.
Через 2 часа ядро снимет с интерфейса адрес, потому что его lft кончился.
В свою очередь dhclient получает вместе с PD ещё и lft этого PD, который равен 24часам и вот 22часа интерфейс у меня будет без адреса, потому что вот это все...

Сейчас я сделал костыль. Я в кроне каждые 2 часа обновляю ipv6 адрсс на моем интерфейсе, но это костыль.

Не понятно почему неполучается установить lft какой мне надо... ведь для local адреса он установился...

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

Никогда вживую не видел DEI hires. А тут вон оно чё, они systemd пилят.

anonymous
()
Ответ на: комментарий от Khnazile

Проверил ещё раз - systemd-networkd.service он есть но он отключен.

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

методом проб и ошибок было выяснено, что флаг nodad позволяет назначить любой lft.

# ip addr change 2a00:***/64 nodad 
# ip -6 addr show dev br0                                                                                                                                                                                                                                         9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1426 qdisc htb state UP group default qlen 10000                                                                                                                                                                                                inet6 fd60::1:ac7f:23ff:fee8:b0df/64 scope global dynamic mngtmpaddr                                                                                                                                                                                                                         valid_lft 2740sec preferred_lft 2740sec                                                                                                                                                                                                                                                inet6 2a00:***/64 scope global nodad                                                                                                                                                                                                                          valid_lft forever preferred_lft forever                                                                                                                                                                                                                                                inet6 fe80::ac7f:23ff:fee8:b0df/64 scope link                                                                                                                                                                                                                                                valid_lft forever preferred_lft forever                                                                                                                                                                                                                                            # ip addr change 2a00:***/64 nodad dev br0 valid_lft 86400 preferred_lft 86400                                                                                                                                                     # ip -6 addr show dev br0                                                                                                                                                                                                                                         9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1426 qdisc htb state UP group default qlen 10000                                                                                                                                                                                                inet6 fd60::1:ac7f:23ff:fee8:b0df/64 scope global dynamic mngtmpaddr                                                                                                                                                                                                                         valid_lft 2639sec preferred_lft 2639sec                                                                                                                                                                                                                                                inet6 2a00:***/64 scope global nodad dynamic                                                                                                                                                                                                                  valid_lft 86399sec preferred_lft 86399sec                                                                                                                                                                                                                                              inet6 fe80::ac7f:23ff:fee8:b0df/64 scope link                                                                                                                                                                                                                                                valid_lft forever preferred_lft forever

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

Я почитал немного RFC на DAD, три четверти не понял, но: разрешен ли у тебя ND для моста? Весь процесс проверки доступности адреса завязан на ICMPv6 трафик.

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

Да это первое что я проверил. ip6tables пока везде accept

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

в продолжение проб и ошибок выяснил, что nodad создаёт как бы «второй» набор адреса никак не связанный с тем, что без nodad и у него свой набор lft и прочего. но если попробовать снова назначить адрес без nodad, то он «назначится» с теми самыми lft что были на исходной. Это мои личные изыскания так сказать.

А теперь немного по теме. Прошло почти 4 дня и помимо всего прочего я пару раз перезагрузил машинку. и о чудо! lft стал назначаться как ожидалось без nodad.

Что это было? А кто его теперь знает... могу предположить, что мои изыскания с dhclient и ip как-то где-то что-то «подпортили», но что я не смог найти...

В любом случае - огромное спасибо всем кто не остался равнодушен...

Spider55 ★
() автор топика
Последнее исправление: Spider55 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.