Closed GoogleCodeExporter closed 8 years ago
Еще меня беспокоят постоянные реконнекты
на 3G. Выяснилась причина...
Описание проблемы разрывов на роутерах
Модуль pppoe в linux определяет пакеты своей
сессии на основе идентификатора сесиии и
мак адреса концентратора PPPoE (строго по
RFC2516). На данный момент идентификатор во
всех pppoe сессиях равнен 1 (очень надеемся
что скоро он станет уникальным!). Даже на
хороших управляемых коммутаторах в
некоторых случаях чужие пакеты попадают на
все порты коммутатора. Драйвер свитча
роутера создает виртуальные устройства
ethX.x и пропускает на них в модуль ядра,
реализующего pppoe, пакеты с любыми мак
адресами. При получении "чужих" пакетов PADT
или LCP Term-Request/Term-Ack происходит разрыв
сессии. Для устранения проблемы в pppoe.c была
внесена модификация игнорирования всех pppoe
пакетов с "не нашим" мак адресом назначения:
Вот кусок кода из ядра и жирным моя
модификация (изначальная идея юзера good):
pppoe_recv:
//if (!po)
if ( !po || (memcmp(skb->mac.ethernet->h_dest, dev->dev_addr, ETH_ALEN) != 0) )
pppoe_disc_rcv:
po = get_item((unsigned long) ph->sid, skb->mac.ethernet->h_source);
//изначально проверяется как и положено по
RFC только идентификатор сессии и мак
pppoe-концетратора
// if ( po ) {
if ( po && (memcmp(skb->mac.ethernet->h_dest, dev->dev_addr, ETH_ALEN) == 0) ) {
делаем разрыв...
Eсть готовое решение для роутеров Dir-320 Это
собранная "антиразрывная" прошивка на базе
OpenWRT, так же есть исходник для модификации
обычной openwrt. она в аттаче. посмотрите
пожалуйста и скажите нужно ли этот
исходник переделывать под NRU Rev.B1, и ткните
носом куда эту модификацию добавлять.
Original comment by schok...@gmail.com
on 25 Jun 2013 at 8:30
Attachments:
[deleted comment]
[deleted comment]
Патч этот для вас смысла не имеет, т.к. он
придназначен для pppoe (проводное
соединение). Конфиг постараюсь выложить в
ближайшее время (сейчас делаю прошивку под
hyperboria)
Original comment by xakep6...@gmail.com
on 2 Jul 2013 at 9:11
[deleted comment]
[deleted comment]
[deleted comment]
Итак, конфиг и скрипт быстрой сборки есть в
транке, модификация не нужна (для 2/3g точно).
Original comment by xakep6...@gmail.com
on 29 Jul 2013 at 8:24
Original issue reported on code.google.com by
schok...@gmail.com
on 25 Jun 2013 at 8:13