поиск, соответствующий ipv6, обращается для MAC-адреса в соседях

Пакеты OpenBSD не 'подписываются' вообще по умолчанию.

При использовании OpenBSD в коммерческой среде позвольте работодателю для покупки, выпускают CD. Затем Вы получите выпуск OpenBSD с пакетами на CD, которому можно доверять :-)

Лучший путь, и если Вы используете OpenBSD серьезно, у Вас должен быть он, состоит в том, чтобы иметь сервер сборки. Синхронизирующие порты OpenBSD от anoncvs - здесь Вы доверяете ssh fingeprint, о котором публично объявляют - затем создают Ваши собственные порты и подписывают их с сертификатом. С инструментом 'dpb' это должно быть еще намного легче.

Пакеты OpenBSD являются вторичным интересом для проекта как целым.

0
14.06.2013, 16:24
2 ответа

С Вашими подсказками я мог закончить сценарий:

#!/bin/bash

mac_to_ipv6 () {
  IFS=':'; set $1; unset IFS
  ipv6_address="fe80::$(printf %02x $((0x$1 ^ 2)))$2:${3}ff:fe$4:$5$6"
  echo $ipv6_address
}
echo "Next MAC with ^C"
for i do
  echo
  echo checking for  $i = $(mac_to_ipv6 $i)
  echo 
  ping6 ff02::1%wlan0 | head -n 1000 | grep $(mac_to_ipv6 $i)
done

см.: http://freifunk.in-kiel.de/wiki/Firmware#IPv6_Adresse_des_Routers

0
28.01.2020, 02:28

Во-первых, не только необходимо разделить MAC и вставить ff:fe, также необходимо зеркально отразить 7-й бит для корректного представления универсального/локального адреса.

Этот сценарий правильно отформатирует локальный для ссылки адрес IPv6 на основе адреса эфира, включая сокращение начальных нулей.

#!/bin/bash

IFS=':'; set $1; unset IFS
printf "fe80::%x:%x:%x:%x\n" $(( 0x${1}${2} ^ 0x200 )) 0x${3}ff 0xfe${4} 0x${5}${6}

Пример поразрядных операций и нулевого сокращения:

$ ether_to_ipv6 00:00:00:00:00:00
fe80::200:ff:fe00:0
$ ether_to_ipv6 11:11:11:11:11:11
fe80::1311:11ff:fe11:1111

Также имейте в виду, что технически не гарантируется, что ссылка будет иметь адрес, соответствующий этому алгоритму. Если существует коллизия (злонамеренный или иначе), новый адрес должен быть выбран одним или обоими. Реализации могут вести себя по-другому относительно того, как это на самом деле обрабатывается, таким образом, YMMV.

Однако, если все, что Вы действительно только пытаетесь сделать, получают список Ваших фактических соседей (подобный arp в IPv4) затем существует более легкий путь. Используйте Протокол Обнаружения соседних устройств (арифметический процессор).

Linux:

ip -6 neigh show

Солярис:

netstat -pf inet6

Mac OS X, AIX, *BSD:

ndp -a

JUNOS, IOS, Vyatta:

show ipv6 neighbors

Каждая из этих команд покажет список всех живых соседей IPv6, использующих собственный арифметический процессор.

3
28.01.2020, 02:28
  • 1
    Быть немного более явным: те команды не отправляют новые пакеты АРИФМЕТИЧЕСКОГО ПРОЦЕССОРА. Они показывают таблицу соседей, с которыми недавно связались (который ядро, разрешенное с АРИФМЕТИЧЕСКИМ ПРОЦЕССОРОМ ранее). Таким образом, все еще необходимо связаться с ними сначала... Я не уверен, работает ли широковещательная команда ping, показанная в вопросе, на это, потому что Вы будете только получать пакеты IP от соседей, не отправляя им? Если АРИФМЕТИЧЕСКИЙ ПРОЦЕССОР соседа затем не инициировал взаимный процесс исследования? (Это также предполагает, что Ваши соседи отвечают на ping на широковещательном адресе). –  sourcejedi 14.06.2013, 10:17
  • 2
    Да, они на самом деле запрашивают ядро в кэше памяти. Однако обнаружение соседних устройств является автоматическим, таким образом, все хосты знают обо всех других хостах на той же ссылке автоматически через арифметический процессор. Нет никакой потребности "широковещательно передать", проверяют с помощью ping-запросов их (и нет никакой широковещательной передачи в IPv6 так или иначе). –  bahamat 15.06.2013, 04:05
  • 3
    я попробовал его и я не знаю то, о чем Вы говорите. "IP ржет шоу"-> адреса № ipv6. "ping6 ff02:: 1%wlan0" сопровождаемый "IP шоу ржания"-> ipv6 моего соседа обнаруживается. Возможно, Вы могли связать раздел RFC, который объясняет, как Вы думаете, что хосты broadcast^Wmulticast к локальному ipv6 размещают свое существование с помощью АРИФМЕТИЧЕСКОГО ПРОЦЕССОРА. Моим пониманием АРИФМЕТИЧЕСКОГО ПРОЦЕССОРА является в основном ARP, портированный от Ethernet до IPv6 локальная ссылка, это не добавляет удивительной опции от целой ткани... –  sourcejedi 15.06.2013, 10:04
  • 4
    Необходимо использовать ip -6 neigh show. -6 довольно важно. АРИФМЕТИЧЕСКИЙ ПРОЦЕССОР намного больше, чем ARP. RFC, который Вы просите, 4862. циклы –  bahamat 15.06.2013, 22:37
  • 5
    Значение по умолчанию показывает и IP6 и IP4, таким образом с помощью -6 не влияет на мой тест (помогает читать хотя :-). Нет ничего в разделе RFC, который добавляет, требование для отправки ко все-узлам (думайте, как "болтливый", который добрался бы!). Если Вы хотите узнать своих соседей, необходимо отправить больше пакетов, как этот ping6 команда делает. Легко быть введенным в заблуждение грандиозной Соседней Рекламой имени, но это только действительно используется в качестве одноадресной передачи, отвечают на Запрос. (За пределами сценариев как бесплатный ARPs IP4). –  sourcejedi 16.06.2013, 12:34

Теги

Похожие вопросы