nixp.ru v3.0

20 октября 2017,
пятница,
10:03:56 MSK

DevOps с компанией «Флант»
Аватар пользователя DimkaS
DimkaS написал 5 ноября 2009 года в 16:30 (1976 просмотров) Ведет себя как мужчина; открыл 84 темы в форуме, оставил 922 комментария на сайте.

Дано: linux box. С одной стороны gprs через последовательный порт, с другой — eth.

Надо: чтобы полученный через gprs IP-адрес был на eth интерфейсе внешнего устройства, подключённого к linux box eth.

Иными словами — мост. Как я понял, bridge-utils применим только к eth-интерфейсам. Внешнее устройство умеет pppoe, но я не нашёл pppoe сервера для linux. Какие могут быть варианты?

Steck

>> но я не нашёл pppoe сервера для linux. Какие могут >>быть варианты?

Первая ссылка в гугле по запросу

PPPoE+server+Linux

http://www.opennet.ru/base/net/pppoe_firewall.txt.html

=)

DimkaS

Да, в дебе нашёлся pppoe-server в пакете pppoe :)

Это один вариант. Но есть второй — попробовать всё же организовать бридж. Судя по описанию bridge-utils, ppp может быть интерфейсом моста.

http://www.linuxfoundation.org/en/Net:Bridge

What can be bridged?

Linux bridging is very flexible; the LAN’s can be either traditional Ethernet device’s, or pseudo-devices such as PPP, VPN’s or VLAN’s. The only restrictions are that the devices:

Можно создать виртуальный eth интерфейс и соединить его с ppp?

Можно ли игнорировать передаваемые по pppoe параметры соединения и устанавливать ppp-сессию самостоятельно, отдавая только полученный IP?

sendmoreinfo

каша какая-то. проще всего было бы получить для внешнего устройства отдельный IP.

DimkaS

Каша, т.к. я пока плохо себе это представляю. Но общая картина такая: один физический eth интерфейс с двумя виртуальными — для web-интерфейса и pppoe-сервера. Далее, внешнее устройство прикидывается pppoe-клиентом и устанавливает соединение, получив IP-адрес на свой eth-интерфейс.

+++

Интересно, что в мануале на pppoe сказано:

Note that pppoe-server is meant mainly for testing PPPoE clients. It is not a high-performance server meant for production use.

Кто-нить в курсе, что используется в ADSL-модемах с eth-интерфейсом?

+++

Есть ещё kernel-mode сервер.

Пока что имею следующее

daemon.info pppoe-server[15615]: Session 4 created for client 00:50:ba:5d:86:df (10.67.15.4) on eth0:1 using Service-Name ''
daemon.info pppoe-server[7015]: Session 4 closed for client 00:50:ba:5d:86:df (10.67.15.4) on eth0:1
daemon.info pppoe-server[7015]: Sent PADT
daemon.err pppoe-server[7015]: PADT: Generic-Error: Received PADT from peer
daemon.err pppoe-server[7015]: PADT: Generic-Error: *¼9Glœæ…Oš^ÃR71žg^
daemon.info pppoe-server[7015]: Sent PADT
DimkaS

Не могу понять… где же должен работать pppd — на сервере, или на клиенте? Или на обоих?

myst

На обоих.

DimkaS

Ага. Что-то начинаю понимать.. Два pppd связаны между собой клиентом и сервером pppoe.

Сейчас ситуация такая. На роутере запущен pppoe-server, на клиенте настроен pppoeconf. Сервер на запросы клиента о наличии концентратора отвечает. По команде pon dsl-provider начинается дозвон, но ответа от сервера нет:

pppd[31168]: sent [LCP ConfReq id=0x3  ]
last message repeated 9 times
pppd[31168]: LCP: timeout sending Config-Requests
pppd[31168]: Connection terminated.
pppd[31168]: Modem hangup

Сервер говорит следующее:

pppoe-server[22344]: Session 10 created for client 00:50:ba:5d:86:df (10.67.15.10) on eth0 using Service-Name ''
pppoe-server[21036]: Session 10 closed for client 00:50:ba:5d:86:df (10.67.15.10) on eth0
pppoe-server[21036]: Sent PADT

tcpdump показывает ответ от сервера с ошибкой:

16:16:46.313322 PPPoE PADT [ses 0x5] [Generic-Error "RP-PPPoE: Child pppd process terminated"]

Поведение идентично багу: https://bugzilla.redhat.com/show_bug.cgi?id=222295, но применение указанного патча не даёт никакого эффекта.

На данный момент идей больше нет…

sendmoreinfo

а можно еще раз — и более подробно — описать задачу?

DimkaS

Есть роутер на арме, который ходит в интернет через GPRS, используя GSM-модем. У роутера есть порт ethernet, через который он подключается в локалку и раздаёт интернет. При таком раскладе внешний IP получает роутер, а вся сеть за натом.

У заказчика есть железка с eth интерфейсом и нужно чтобы внешний IP был именно на этом интерфейсе. Как я понял, возможно это только через pppoe. Pppoe клиент в железке есть, нужен pppoe сервер в моём роутере.

Сейчас я пытаюсь понять, как это должно работать и реализовать, но успехов пока нет.

sendmoreinfo

так в локалке есть и другие хосты, кроме этой железки?

DimkaS

Не знаю. А это существенно?

Пакет pptp имеет какое-то отношение к моей задаче?

sky

Так, а чем DNAT не угодил заказчику? Или вы с ним на разных языках общаетесь?

DimkaS
sky
Так, а чем DNAT не угодил заказчику? Или вы с ним на разных языках общаетесь?

Нужен IP адрес на интерфейсе, чтобы всю маршрутизацию делала его железка.

DimkaS

Задал вопрос на linuxforum.ru

sky
DimkaS
Нужен IP адрес на интерфейсе, чтобы всю маршрутизацию делала его железка.

Таки не вижу проблемы, DNAT по диапазону 1:65536 в одну сторону и SNAT в другую, весь трафик благополучно роутится на шелесяке.

DimkaS

Да, такой вариант мне предлагали. Проблема в том, то IP на интерфейсе остаётся внутренним. По-идее, это обычный DMZ. Эта функция у меня уже есть, надо проверить будет ли она работать так, как надо.

Другой вариант — получать внешний IP, а потом отдавать его железке по DHCP. Тут трудностей больше, но результат близок к желаемому.

sky

В таком слуяае, ждём отчёта =)

DimkaS

Пока что новости такие: DMZ не катит. Заказчик обещал нарисовать свои идеи по этому поводу, но что-то до сих пор молчит.

Code Monkey

ИМХО заказчик хочет странного. Он хочет пробросить свою подсеть в подсеть провайдера? странное желание.

я понять не могу принципиальной необходимости наличия внешнего ip на внутреннем интерфейсе железяки. Все *DSL модемы которые я видел работают через NAT.

Если же клиенту выдается набор белых IP которые потом надо раздать устройствам за роутером, то тут по-идее dhcp + роутинг.

опиши задачу полнее, а то не понять, к чему тут вообще что пришивается.

З.Ы. Нарисуй картинку того, что надо заказчику. Возможно станет понятнее.

З.Ы.Ы. Почитал что написано на линуксфоруме. Я правильно понимаю, что задача — сделать GSM модем «прозрачным» для роутера, который стоит за ним??

DimkaS
З.Ы.Ы. Почитал что написано на линуксфоруме. Я правильно понимаю, что задача — сделать GSM модем «прозрачным» для роутера, который стоит за ним??

Да,именно так. Заказчик что-то не подаёт признаков интереса…