Как вы отображаете кэш IPv6 NDISC в Linux?

14

Предположим, вы настроили NDP прокси IPv6 в одной из ваших систем Linux следующим образом:

ip -6 neighbor add proxy 2001:db8:1234::5 dev eth1

Как вы проверяете, что конфигурация прошла? ip -6 neighbor showне отображает записи прокси и ip -6 neighbor show proxyне поддерживается командой.

Джеральд Комбс
источник
Может быть ip -6 neighbor show nud all?
Зоредаче
Это показывает больше адресов (например :: dev lo), но не прокси.
Джеральд Комбс

Ответы:

1

Я думаю, что инструмент ip просто не печатает флаг NTF_PROXY. В ip / ipneigh.c после блока NTF_ROUTER попробуйте добавить

   if (r->ndm_flags & NTF_PROXY) {
            fprintf(fp, " proxy");
    }

У меня нет установки прокси NDP, поэтому я не могу проверить это. Однако при чтении исходных кодов ядра выясняется, что все записи будут возвращены, и для записей прокси должен быть установлен флаг.

Мартин против Лёвиса
источник
К сожалению, это не сработало. Я также попытался добавить "fprintf (fp," flags:% 02x \ n ", r-> ndm_flags);" в начало print_neigh, и ни в одной из записей не был установлен флаг NTF_PROXY.
Джеральд Комбс
0

ты пробовал ip ntable?


источник
Он дает мне много полезной информации о кеше NDISC, но не о самих записях. Я начинаю думать, что это значения только для записи, по крайней мере для моей версии ядра.
Джеральд Комбс
0

Для полноты картины:

 shell> ip -6 neigh del proxy 2001:db8:1234::1234:5678 dev eth1
 shell> ip -6 maddr show dev eth1                      
 3:      eth1
         inet6 ff02::1:ff34:5678
 ...

Это всего лишь последние 6 кусков, но это часто все, что вам нужно.

hroptatyr
источник