Пытается включить новые поля в объявлениях маршрутизатора IPv6
Здесь новичок, и я работаю над проектом хобби и пытаюсь изменить формат пакета рекламного пакета маршрутизатора 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 ответ
Из того, что я думаю, вы имеете в виду, вы просто не можете использовать radvd для того, что вы хотите сделать. То есть вы не можете создавать новые опции или поля и "подключать их" через синтаксис конфигурации radvd. Скажем, если вы изобрели новый вариант, то
interface yada
{
prefix yada:yada:yada::/64
{
myNewFancyOption on;
...
}
}
не сработает Radvd следует соответствующим RFC (т.е. RFC 4861 и его обновлениям) и, следовательно, не "знает" о ваших модификациях.
Если вы хотите отправлять произвольные пакеты, вам нужно изменить источники radvd или использовать генератор пакетов, например scapy.