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)
Ответ на: комментарий от 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

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

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

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

pavel_l
()
Ответ на: комментарий от 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
() автор топика
Ответ на: комментарий от 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
() автор топика
Ответ на: комментарий от Khnazile

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

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

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

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

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