Я "привязал" весь IPv6/64 -теперь, как мне заставить мое ядро ​​отвечать на ARP для приема пакетов?

BEGIN {
        OFS = FS = ","

        # Parse given column headers and remeber their order.

        # nf will be the number of fields we'd want in the output.
        nf = split(pick, header)
        for (i = 1; i <= nf; ++i)
                order[header[i]] = i

        # Output headers.
        print pick
}

FNR == 1 {
        # Parse column headers from input file.

        delete reorder

        for (i = 1; i <= NF; ++i)
                # If the current header is one that we'd like to pick...
                if ($i in order)
                        #... record what column it is located in.
                        reorder[order[$i]] = i

        next
}

{
        # Process data fields from input file.

        # We build a new output record, so explicitly split the current record
        # and save it in the field array, then empty the record and rebuild.
        split($0, field)
        $0 = ""

        for (i = 1; i <= nf; ++i)
                # If reorder[i] is zero, it's a column that is not available in the
                # current file.
                $i = (reorder[i] == 0 ? "" : field[reorder[i]])

        print
}

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

Примеры с данными, которые вы показываете в вопросе:

$ awk -v pick='A,B,C,D,E,F' -f script.awk file*.csv
A,B,C,D,E,F
10,20,10,20,,5
,20,10,20,5,10
,,,10,30,20
$ awk -v pick='F,B,A' -f script.awk file*.csv
F,B,A
5,20,10
10,20,
20,,
1
05.09.2021, 00:19
1 ответ

Метод OP возможен, начиная с Linux 2.6.37 , но требует дополнительных настроек.

Эквивалентом IPv6 для ARP является NDP (, который использует многоадресную/одноадресную передачу ICMPv6 вместо выделенного протокола ARP L2 с широковещательной/одноадресной передачей ).

proxy_ndpне ведет себя точно так же, как Proxy ARP здесь (он по-прежнему требует -настроек IP, которые нам не нужны здесь )и не помогут. Вместо этого выделенный демон с именем ndppd, который слушает запросы NDP к (, обычно )отвечает от имени других систем, может управлять этим случаем. Он должен быть настроен так, чтобы не пытаться запрашивать внутреннюю систему перед ответом, поскольку другой такой системы не существует.

Предположим здесь, что:

  • основной интерфейс называетсяeth0
  • система находится одна в этом /64 (за исключением возможно необязательный глобальный адрес для своего маршрутизатора ).
  • Система не должна быть настроена как маршрутизатор. См. небольшое предостережение.

Включите пакет EPEL (epel-release), установите ndppdи используйте конфигурацию, аналогичную этой в/etc/ndppd.conf:

proxy eth0 {
    router no
    rule 2001:570:1:b86::/64 {
        static
    }
}

staticзаставляет демона отвечать немедленно, не запрашивая какую-либо внутреннюю систему, что необходимо сделать в этом случае, поскольку все адреса принадлежат (или, точнее, здесь все запросы должны достигать )хоста.

Предостережения:

  • ndppdвыдаст предупреждение при запуске из-за большой сетевой маски.

    Это имеет значение, если системный маршрутизатор не был явно настроен для маршрутизации этого блока /64 через 2001 :570 :1 :b86 ::12 или (намного лучше )через связать локальный адрес на системном интерфейсе eth0.

    Если сканирование сети с удаленного устройства выполняется в блоке без надлежащей настройки маршрутизатора, этот маршрутизатор будет выделять запись NDP для каждого нового адреса, обнаруженного в этом сканировании /64. Небольшие (домашние )маршрутизаторы, не рассчитанные на то, чтобы быть надежными и достаточно быстро удалять старые записи, могут не справиться с этим и перейти в условия нехватки памяти/высокой загрузки ЦП (, то есть:DoS).

  • поскольку фактический адрес IPv6 хоста находится среди /64, запрос этого адреса вызовет два ответа NDP :один от ядра и один от ndppd. Если система на самом деле является маршрутизатором, это может вызвать периодические проблемы с маршрутизацией. В таком случае router yesможно было бы подумать. Конфигурация ndppd, похоже, не имеет подсети, переопределяющей более крупную сеть, включая эту подсеть, как это произошло бы в таблице маршрутизации.

3
05.09.2021, 11:22

Теги

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