eurekafagmva 18.05.2012 14:58 Home

I need help вдругорядь. Ситуация такая, у нашего ТТК нет никакого dhcp6, они выдают префикс и роут через ICMPv6, т.е. router advertisement. Я написал по такому случаю костыль, который после подключения ожидает появления глобального v6 адреса на ppp0, после чего вырезает из него (он, кстати, хоть и не привязан к IPv4, но всё-таки динамический, и если некоторое время не получать IPv6, то префикс меняется, не после каждого переподключения, но, условно говоря, раз в неделю, так что статика отпадает) префиксную часть, формирует путём добавления к ней ::1/64 адрес для br0, на ppp0 вешается тот же адрес, что и сейчас там (полный, выданный от ТТК), но с префиксом /128 (дабы роутить /64 через br0 в локалочку), после чего удаляется роут $PREFIX/64 dev ppp0. В итоге, /64 роутится в локалку, на роутере висит /128, radvd выдаёт /64 же в ту же локалку, всё замечательно.

Но! Через несколько минут роутер получает от ТТК RA и выставляет /64 на ppp0, в результате, получается, что /64 роутится одновременно и через br0, и через ppp0, нихуя не работает, пока не удалишь с ppp0 эту заразу. Как мне запретить роутеру выставлять этот роут? Айпишник v6 он не заменяет после моего костыля, но роут лепит с завидным постоянством, как ты его ни удаляй. Я вижу лишь решения в виде постоянного удаления в цикле со sleep 5, либо же, может быть, поможет удаление самого v6-адреса с ppp0, но не хотелось бы.

Recommended by:

@mgfk: Бамп страданиям ipv6-блядка

1. eurekafag 18.05.2012 15:02 Home

А, вэйт, добавил metric 1 к роуту на br0, и вроде как помогло. Теперь он приоритетнее аналогичного роута на ppp0. Осталось придумать зачистку всяких накопившихся говен от переподключений.

2. mvaeurekafag /1 18.05.2012 16:00 N900

я, вообще, хотел посоветовать делать accept_ra=0 сразу после того, как начинает работать дефолтный роут. Но, как погляжу ты уже сообразил другой костыль.
Алсо, не понял проблемы из /1 ;)

3. rm 18.05.2012 16:04

По поводу очистки:
ip -6 addr flush to 2001:db8::/32 dev br0
грохнуть все адреса входящие в этот префикс с br0

4. eurekafagmva /2 18.05.2012 16:08 Home

Если я его отключу, то после разрыва коннекта, думаю, надо будет как-то включать. В принципе, там запускается скрипт post-firewall, но костыль вида «включить ra» — «дождаться выдачи адреса» — «выключить ra» будет сложнее нынешнего решения. А вместо флаша я просто распарсил вывод ip -6 r и удалил все, которые не default и не fe80. Напоминаю, префикс не статический, поэтому если он сменится между реконнектами, я просто не удалю все нужные роуты, так что лучше наверняка прибить всё.

5. rmeurekafag /4 18.05.2012 16:11 Desktop0

> А вместо флаша я просто распарсил вывод ip -6 r и удалил все, которые не default и не fe80.
"не зная про флаш я собрал аналог флаша на коленке из г-на и палок" ок

6. kurkuma 18.05.2012 16:15

заложи роутер в ломбард и заторчи

7. eurekafagmva /2 18.05.2012 16:15 Home

Проблема в /1 отсутствует, просто сделал перед установкой адреса на br0 ещё и добавление роута /64 на br0 с метрикой 1. Дефолтная же — 256, так что при наличии двух одинаковых /64 роутов (на br0 мой костыльный, чтобы в/из локалки пакеты гуляли, на ppp0 — ТТКшный, не нужный мне, т.к. за ppp0 ничего с моим префиксом нет и быть не может) тот, что на br0 будет иметь приоритет. Роутинг-то происходит по адресу назначения, так что по уму роут должен вешаться на бридж, а не на внешний интерфейс.

8. eurekafagrm /5 18.05.2012 16:16 Home

Ну окей, можно попробовать флашнуть br0 и ppp0, просто не слетят ли при этом link-local роуты?

9. eurekafageurekafag /8 18.05.2012 16:19 Home

Таки удаляются и локальные. Это мне точно не нужно.

10. rmeurekafag /8 18.05.2012 16:19 Desktop0

слетят. ключевой момент в слове "to" и том что после него. тогда не слетят. Это удобный способ чистить все старые адреса и маршруты из такого-то /32, которые у вас могли успеть надобавляться.

11. eurekafagrm /10 18.05.2012 16:20 Home

Ну что ж, тогда попробую рубануть по префиксу /32, который, вроде как, статичный.

12. eurekafageurekafag /11 18.05.2012 16:23 Home

# ip -6 r f to 2a02:530::/32 dev br0
Nothing to flush.
Ржака ппц. И не удаляет ничего, хотя роуты подходящие есть.

13. rmeurekafag /12 18.05.2012 16:24 Desktop0

фз, я с адресами пробовал — работало
удобно удалять старые 6to4-адреса с локалочного фейса по "to 2002::/16"

14. eurekafagrm /13 18.05.2012 16:24 Home

С адресами работает. Впрочем, при этом и роуты автоматически грохаются, так что не проблема, в принципе.

15. eurekafag 18.05.2012 16:37 Home

Вот так сейчас выглядит мой монстр: http://pastebin.com/2CvTagxr

Do you really want to delete ?