Новичок здесь, и я работаю над проектом хобби и пытаюсь изменить формат пакета рекламного пакета маршрутизатора IPv6, используя RADVD. Но я не знаю, как над этим работать.

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

Мой Ubuntu PC действует как маршрутизатор и подключен к беспроводному модему. Хост-ноутбук также подключен к той же сети через Wi-Fi. Я установил radvd на компьютере с маршрутизатором и отредактировал файл radvd.conf для объявления определенного идентификатора сети.

sysctl.conf:

net.ipv6.conf.all.forwarding = 1

radvd.conf:

interface eth1
{
  prefix 2001:db1:0:1::/64
  {
    AdvOnLink on;
    AdvAutonomous on;
  };
};

rc.local:

ip a a 2001:db1:0:1::1 dev eth1
ip r a 2001:db1:0:1::/64 dev eth1

Когда я запускаю radvd, я могу получить маршрутизатор и хост в общей сети, и хост автоматически настраивается с объявленным идентификатором сети.

Теперь я хочу изменить формат пакета RA и ввести еще несколько полей, которые могут изменить способ автоматической настройки адреса. Я думаю, что мне придется ввести еще несколько полей в файле radvd.conf со всеми необходимыми мне параметрами. Но я не уверен.

PS: мой роутер не подключен к интернету. Поэтому мне не нужен туннель IPv64. Также моя текущая система - это один маршрутизатор и один хост

Дополнительная информация: Я хотел бы включить набор из пяти новых однобитовых флагов, которых нет в настоящем RA. Настоящие RA поддерживают только следующую информацию: http://manpages.ubuntu.com/manpages/utopic/man5/radvd.conf.5.html
Я пытаюсь создать лучший и более эффективный протокол для существующего ICMPv6. У меня есть протокол на бумаге, но я хочу реализовать его и проверить работоспособность своего дизайна. Мне также нужно будет изменить запросы соседей и рекламу соседей существующего ICMPv6. Может кто-то помочь мне с этим?

1 ответ1

0

Из того, что я думаю, вы имеете в виду, вы просто не можете использовать radvd для того, что вы хотите сделать. То есть вы не можете создавать новые параметры или поля и "подключать их" через синтаксис конфигурации radvd. Скажем, если вы изобрели новый вариант, то

interface yada
{
    prefix yada:yada:yada::/64
    {
        myNewFancyOption on;
        ...
    }
}

не сработает Radvd следует соответствующим RFC (т.е. RFC 4861 и его обновлениям) и, следовательно, не "знает" о ваших модификациях.

Если вы хотите отправить произвольные пакеты, вам нужно изменить источники radvd или использовать генератор пакетов, например scapy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .