настроить pppoe-server (нужна помощь)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
DimkaS
Сообщения: 146
ОС: Debian Testing

настроить pppoe-server

Сообщение DimkaS »

Есть GPRS-роутер на Linux. В штатном режиме он сам выходит в интернет и раздаёт его в локалку. Соответственно, все компы оказываются за натом.
Нужно сделать так, чтоб одна из внутренних машин имела внешний адрес у себя на интерфейсе. Как я понимаю, единственный вариант - pppoe.

Запускаю pppoe-server на роутере:

Код: Выделить всё

pppoe-server -I eth0


Содержимое файла /etc/ppp/pppoe-server-options взял из инета.
Вроде, на данном этапе не сильно важно.

Код: Выделить всё

name pppoe
logfile /var/log/log.pppoe
require-pap
require-chap
require-mschap
require-mschap-v2
lcp-echo-interval 20
lcp-echo-failure 3
ms-dns 212.188.4.10
ms-dns 195.34.32.116
netmask 255.255.255.0
nobsdcomp
lock


На компе установил и настроил pppoeconf
Файл /etc/ppp/peers/dsl-provider

Код: Выделить всё

# Configuration file for PPP, using PPP over Ethernet
# to connect to a DSL provider.
#
# See the manual page pppd(8) for information on all the options.

##
# Section 1
#
# Stuff to configure...

# MUST CHANGE: Uncomment the following line, replacing the user@provider.net
# by the DSL user name given to your by your DSL provider.
# (There should be a matching entry in /etc/ppp/pap-secrets with the password.)
#user myusername@myprovider.net

# Use the pppoe program to send the ppp packets over the Ethernet link
# This line should work fine if this computer is the only one accessing
# the Internet through this DSL connection. This is the right line to use
# for most people.
#pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1452"

# An even more conservative version of the previous line, if things
# don't work using -m 1452...
#pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1412"

# If the computer connected to the Internet using pppoe is not being used
# by other computers as a gateway to the Internet, you can try the following
# line instead, for a small gain in speed:
#pty "/usr/sbin/pppoe -I eth0 -T 80"


# The following two options should work fine for most DSL users.

# Assumes that your IP address is allocated dynamically
# by your DSL provider...
noipdefault
# Try to get the name server addresses from the ISP.
usepeerdns
# Use this connection as the default route.
# Comment out if you already have the correct default route installed.
defaultroute

##
# Section 2
#
# Uncomment if your DSL provider charges by minute connected
# and you want to use demand-dialing.
#
# Disconnect after 300 seconds (5 minutes) of idle time.

#demand
#idle 300

##
# Section 3
#
# You shouldn't need to change these options...
debug
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
# Override any connect script that may have been set in /etc/ppp/options.
connect /bin/true
noauth
persist
mtu 1492

# RFC 2516, paragraph 7 mandates that the following options MUST NOT be
# requested and MUST be rejected if requested by the peer:
# Address-and-Control-Field-Compression (ACFC)
noaccomp
# Asynchronous-Control-Character-Map (ACCM)
default-asyncmap

plugin rp-pppoe.so eth1
user "test"

Запускаю pon dsl-provider

Логи на компе:

Код: Выделить всё

pppd[15657]: PADS: Service-Name: ''
pppd[15657]: PPP session is 2
pppd[15657]: using channel 2
pppd[15657]: Using interface ppp0
pppd[15657]: Connect: ppp0 <--> eth1
pppd[15657]: sent [LCP ConfReq id=0x2 <mru 1492> <magic 0xae01dfc6>]
last message repeated 9 times
pppd[15657]: LCP: timeout sending Config-Requests
pppd[15657]: Connection terminated.
pppd[15657]: Modem hangup


Логи на роутере:

Код: Выделить всё

pppoe-server[1821]: Session 2 created for client 00:50:ba:5d:86:df (10.67.15.2) on eth0 using Service-Name ''
pppoe-server[1549]: Session 2 closed for client 00:50:ba:5d:86:df (10.67.15.2) on eth0
pppoe-server[1549]: Sent PADT


Как я понимаю, сервер не отвечает на запросы клиента.
Нужна помощь в настройке и понимании принципа работы.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: настроить pppoe-server

Сообщение pelmen »

DimkaS писал(а):
16.11.2009 17:24
все компы оказываются за натом.
Нужно сделать так, чтоб одна из внутренних машин имела внешний адрес у себя на интерфейсе. Как я понимаю, единственный вариант - pppoe.
Это какой-то плохой "единственный вариант". Разве нельзя просто не натить его, и назначить ему внешник алиасом, если локалка нужна? Или повесить второй внешник алиасом на шлюз и пробросить все на локальный. У вас вообще два внешника или мы друг друга не поняли?
Спасибо сказали:
Аватара пользователя
DimkaS
Сообщения: 146
ОС: Debian Testing

Re: настроить pppoe-server

Сообщение DimkaS »

Внешний IP один и он должен оказаться на интерфейсе внутренней машины.

Суть проблемы - есть железка (не компьютер), которая должна делать всю маршрутизацию, шифрование и т.п. Все остальные компьютеры локалки будут подключены на внутренний интерфейс этой железки. Внешний интерфейс - только ethernet. Она должна получить внешний IP на этот eth, но единственный способ связи - GPRS. Есть роутер (опять же, не компьютер), который оборудован GSM-модемом и может установить соединение. Но при этом внешний IP получит он, а не железка за ним.

Если можно каким-то образом "пробросить" IP дальше, с интересом выслушаю предложение. Но мне кажется, что в данном случае pppoe - решение классическое и популярное.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: настроить pppoe-server

Сообщение pelmen »

DimkaS писал(а):
16.11.2009 18:12
Но мне кажется, что в данном случае pppoe - решение классическое и популярное.
Я не силен в pppoe, но мне кажется, что раз 1 внешник, то ЖСМ-модем врядли им поделится с твоим внутренним pppoe-клиентом, разве что проброс портов, нет?
Спасибо сказали:
Аватара пользователя
mandreika
Сообщения: 217
ОС: Debian 3,4,5,6

Re: настроить pppoe-server

Сообщение mandreika »

Если нужен доступ к локальным серверам из интернет - можно пробросить порт внутрь, только с GPRS этот фокус не пройдет так как выдается тебе серый Ip.
Спасибо сказали:
Аватара пользователя
DimkaS
Сообщения: 146
ОС: Debian Testing

Re: настроить pppoe-server

Сообщение DimkaS »

Я не силен в pppoe, но мне кажется, что раз 1 внешник, то ЖСМ-модем врядли им поделится с твоим внутренним pppoe-клиентом, разве что проброс портов, нет?

DSL-модемы успешно работают через pppoe. Не вижу причин, по которым GSM-модем не может делать то же самое.

Если нужен доступ к локальным серверам из интернет - можно пробросить порт внутрь, только с GPRS этот фокус не пройдет так как выдается тебе серый Ip.

Глупость. IP бывают и серые, и белые и даже белые статические.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: настроить pppoe-server

Сообщение pelmen »

Человек, послушай. У тебя есть 1 внешник, например 12.34.56.78, который выдался твоим оператором твоему жсм-модему при коннекте. Ты настраиваешь pppoe-server, при коннекте к которому твой локальный (внутренний) клиент должен получить 12.34.56.79 ??? Ты ЭТОГО хочешь добиться? А ты попросил у оператора второй ip-адрес (12.34.56.79) ? НЕТ? А о чем мы тогда с тобой говорим?
Спасибо сказали:
Аватара пользователя
DimkaS
Сообщения: 146
ОС: Debian Testing

Re: настроить pppoe-server

Сообщение DimkaS »

Нет. Проблема в том, что я чётко не понимаю принцип работы pppoe. Как мне казалось, клиент через pppoe получит доступ к модему роутера, дозвонится через него и получит IP адрес на свой интерфейс. Видимо, я не прав?
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: настроить pppoe-server

Сообщение pelmen »

нет. адрес выдается модему, а не демону, который попросил модем позвонить.
это при том, что я вообще не знаю, как работает pppoe
Спасибо сказали:
Аватара пользователя
DimkaS
Сообщения: 146
ОС: Debian Testing

Re: настроить pppoe-server

Сообщение DimkaS »

Что-то мне кажется, что дела обстоят несколько иначе. Хотя бы потому, что IP получает не железка, а сетевой интерфейс. Пойду дальше перекапывать интернет...
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: настроить pppoe-server

Сообщение pelmen »

DimkaS писал(а):
17.11.2009 13:17
IP получает не железка, а сетевой интерфейс
Все верно, интерфейс модема. На котором вы можете настроить переброс портов на внутренний адрес локального компьютера. Для этого pppoe-сервер не нужен.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: настроить pppoe-server

Сообщение Alex2ndr »

DimkaS писал(а):
16.11.2009 17:24
Есть GPRS-роутер на Linux. В штатном режиме он сам выходит в интернет и раздаёт его в локалку. Соответственно, все компы оказываются за натом.
Нужно сделать так, чтоб одна из внутренних машин имела внешний адрес у себя на интерфейсе. Как я понимаю, единственный вариант - pppoe.

Если я правильно понимаю себе задачу то нужно сделать так, чтобы весь трафик пришедший на внешний интерфейс попал на определенный комп внутри сети. Фразу насчет внешнего адреса на интерфейсе внутренней машины я не понял. Внятных пояснений ЧЕГО конкретно нужно сделать (т е саму задачу а не ваше представление о том как ее решать) тоже не услышал. Поэтому предложу свое видение.

Обычно такая задача имеет смысл, если нужно чтобы внутренняя машина была доступна извне(из Интернета). Значит на этой машине есть какая-то служба(т е какой-то порт или несколько портов) к которой будут обращаться снаружи. Такой доступ обычно делаю через DNAT - http://gazette.linux.ru.net/rus/articles/i...html#DNATTARGET . Это и называется "проброс портов".
Спасибо сказали:
Аватара пользователя
DimkaS
Сообщения: 146
ОС: Debian Testing

Re: настроить pppoe-server

Сообщение DimkaS »

Про проброс портов знаю. Задача другая. Первый пост несколько некорректен, суть проблемы отражена в посте №3. Повторю:

Есть железка, которая должна делать роутинг, нат и шифрование. У неё два интерфейса - wan и lan. Оба - ethernet. Вся остальная локалка находится за этой железкой и подключена к lan. Выход в интернет возможен только через GPRS. Поэтому к wan-интерфейсу железки нужно подключить GSM-роутер и сделать так, чтоб внешний IP, который выдаст оператор, оказался на wan-интерфейсе железки, а не роутера. Нужно это для корректной работы туннелей и маршрутизации. Железка может быть pppoe-клиентом. Как я понимаю, если поднять на роутере pppoe-сервер, то они смогут состыковаться.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: настроить pppoe-server

Сообщение pelmen »

DimkaS писал(а):
17.11.2009 19:16
Про проброс портов знаю. Задача другая. Первый пост несколько некорректен, суть проблемы отражена в посте №3. Повторю:

Есть железка, которая должна делать роутинг, нат и шифрование. У неё два интерфейса - wan и lan. Оба - ethernet. Вся остальная локалка находится за этой железкой и подключена к lan. Выход в интернет возможен только через GPRS. Поэтому к wan-интерфейсу железки нужно подключить GSM-роутер и сделать так, чтоб внешний IP, который выдаст оператор, оказался на wan-интерфейсе железки, а не роутера. Нужно это для корректной работы туннелей и маршрутизации. Железка может быть pppoe-клиентом. Как я понимаю, если поднять на роутере pppoe-сервер, то они смогут состыковаться.
:ohmy: нет слов. Тут обычно про матчасть что-то пишут.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: настроить pppoe-server

Сообщение Alex2ndr »

DimkaS писал(а):
17.11.2009 19:16
Про проброс портов знаю. Задача другая. Первый пост несколько некорректен, суть проблемы отражена в посте №3. Повторю:

Есть железка, которая должна делать роутинг, нат и шифрование. У неё два интерфейса - wan и lan. Оба - ethernet. Вся остальная локалка находится за этой железкой и подключена к lan. Выход в интернет возможен только через GPRS. Поэтому к wan-интерфейсу железки нужно подключить GSM-роутер и сделать так, чтоб внешний IP, который выдаст оператор, оказался на wan-интерфейсе железки, а не роутера. Нужно это для корректной работы туннелей и маршрутизации. Железка может быть pppoe-клиентом. Как я понимаю, если поднять на роутере pppoe-сервер, то они смогут состыковаться.

GSM-роутер надо просто переключить в режим моста (bridge) - тогда для уровня IP (3-го (сетевого) уровня модели OSI) он будет прозрачен. И внешний ip адрес окажется на вашей железке. Не знаю как для вашего экзотического роутера но для ADSL модемов/роутеров эта фича есть и отлично работает (и я не вижу причин почему бы не работало у вас).

Имхо матчасть вам действительно нужно учить.
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: настроить pppoe-server

Сообщение Frank »

DimkaS писал(а):
17.11.2009 13:04
Нет. Проблема в том, что я чётко не понимаю принцип работы pppoe. Как мне казалось, клиент через pppoe получит доступ к модему роутера, дозвонится через него и получит IP адрес на свой интерфейс. Видимо, я не прав?

В общем случае, при коннекте на сервер клиенту выдаётся внешний адрес из динамического пула адресов, при этом этот айпишник помечается как занятый и не выдаётся более никому. Сам сервер, разумеется, сидит на своём собственном айпишнике. Соединения на айпи клиента оборачиваются сервером в эзернет фреймы и доставляются клиенту, где разворачиваются обратно в tcp
Изображение
Спасибо сказали:
Аватара пользователя
DimkaS
Сообщения: 146
ОС: Debian Testing

Re: настроить pppoe-server

Сообщение DimkaS »

GSM-роутер надо просто переключить в режим моста (bridge) - тогда для уровня IP (3-го (сетевого) уровня модели OSI) он будет прозрачен. И внешний ip адрес окажется на вашей железке.

Какими средствами это реализуется в linux? Как, получив внешний динамический IP, передать его на интерфейс железки? ПО для роутера разрабатываю я.

В общем случае, при коннекте на сервер клиенту выдаётся внешний адрес из динамического пула адресов, при этом этот айпишник помечается как занятый и не выдаётся более никому. Сам сервер, разумеется, сидит на своём собственном айпишнике. Соединения на айпи клиента оборачиваются сервером в эзернет фреймы и доставляются клиенту, где разворачиваются обратно в tcp


Таким образом, нужен один IP для сервера и по одному для каждого клиента? Тогда это вариант не подходит...
Спасибо сказали:
skor
Сообщения: 419
ОС: RTFM-OS v127.0.0.1

Re: настроить pppoe-server

Сообщение skor »

1) Для начала что за GPRS-роутер? Модель? Что умеет?
2) В вашей железке (с линуксом?) USB-порты есть?

Почитайте про PPPoE. Про то как там инициируется PPP-сессия, про PADI/PADO-пакеты. PPPoE используется в среде с разделяемым доступом (Ethernet - тоесть бродкастами и доступом каждый-с-каждым). GPRS это точка-точка. И PPP в нем работает аналогично как и в обычном ("проводном") модемном соединении. PPPoE-клиент/сервер на вашей железке совершенно ничем не поможет.
Вариантов решения проблемы несколько.
а) "Допинать" GPRS-роутер чтоб он "прозрачно" отдал адрес вашей железке (соответсвенно надо ответить на вопрос "что умеет" данный роутер).
б) "Дотянуть" GPRS до вашей железки (мобилка воткнутая в USB-порт на вашей железке, а дальше гуглим по словам "ppp gprs linux").
После чего ваша железка маршрутизирует, шифрует, NAT-ит как ей угодно и кого угодно.
Спасибо сказали:
StanislavL
Сообщения: 80

Re: настроить pppoe-server

Сообщение StanislavL »

Alex2ndr писал(а):
18.11.2009 10:52
GSM-роутер надо просто переключить в режим моста (bridge) - тогда для уровня IP (3-го (сетевого) уровня модели OSI) он будет прозрачен.

... и запустить ppp на той машине, которой нужен внешний IP.
Именно так у меня работало на ADSL.
Вопрос только в одном - умеет ли данный конкретный роутер быть в режиме бриджа (т.е. НЕ ЗАПУСКАТЬ ppp у себя) ?
Если судить по тому единственному GSM-роутеру, который был в моих руках - запросто может и не уметь.
Что тогда ?
USB-модемы у GSM-операторов в Питере сейчс стОят ~1200ры. А старую трубку, умеющую GPRSить, можно взять рублей за 800.
Я под линухом включал и то и другое. (Единственное - что на GPRSных скоростях, на скоростях повыше могут быть какие-нибудь тонкости)
pppшный конфиг рисуется с нуля (с чтением мануала) за 30 минут
Спасибо сказали:
skor
Сообщения: 419
ОС: RTFM-OS v127.0.0.1

Re: настроить pppoe-server

Сообщение skor »

StanislavL писал(а):
19.11.2009 00:48
Вопрос только в одном - умеет ли данный конкретный роутер быть в режиме бриджа (т.е. НЕ ЗАПУСКАТЬ ppp у себя) ?
Если судить по тому единственному GSM-роутеру, который был в моих руках - запросто может и не уметь.
Что тогда ?
Очень сомневаюсь что такая фишка есть в роутере. Ибо тогда роутер должен быть с хорошими "мозгами" - увидеть PPPoE PADI пакет, ответить на него PADO пакетом, а после этого прозрачно пробрасывать PPP-пакеты в GSM-сеть. А как быть если 2 компьютера захотят PPPoE? Тоесть роутер должен быть с "нестандартным" PPPoE-сервером. А учитывая то что эта фича маловостребованна - шансы на ее реализацию очень малы.
C ADSL-ем в данном случае проще. ADSL это "труба" (виртуальная витая пара) и Ethernet пакеты просто инкапсулируются в ATM-пакеты. А у провайдера стоит PPPoE сервер, который по Ethernet подключен к DSLAM-у (ну или сам DSLAM может служить PPPoE сервером).
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: настроить pppoe-server

Сообщение Alex2ndr »

skor писал(а):
19.11.2009 01:34
Очень сомневаюсь что такая фишка есть в роутере. Ибо тогда роутер должен быть с хорошими "мозгами" - увидеть PPPoE PADI пакет, ответить на него PADO пакетом, а после этого прозрачно пробрасывать PPP-пакеты в GSM-сеть. А как быть если 2 компьютера захотят PPPoE? Тоесть роутер должен быть с "нестандартным" PPPoE-сервером. А учитывая то что эта фича маловостребованна - шансы на ее реализацию очень малы.
C ADSL-ем в данном случае проще. ADSL это "труба" (виртуальная витая пара) и Ethernet пакеты просто инкапсулируются в ATM-пакеты. А у провайдера стоит PPPoE сервер, который по Ethernet подключен к DSLAM-у (ну или сам DSLAM может служить PPPoE сервером).

К сожалению слабо разбираюсь в GSM роутерах. Могу только провести какую-то аналогию с обычным модемом. Очень жаль если нельзя связать мостом просто 2 среды (т е сотовую сеть и ethernet). Теоретически то наверно можно - но средств как такое сделать например с обычным модемом и ethernet я просто не знаю. Ведь это надо как-то передать по сети возможность работать с устройством /dev/modem ( или иное - у меня на CDMA например /dev/ttyACM0).

Может можно обойтись совсем малой кровью? например сделать DNAT и SNAT без разделения на порты. Вопрос топикстартеру - вы так пробовали?
Спасибо сказали:
Аватара пользователя
DimkaS
Сообщения: 146
ОС: Debian Testing

Re: настроить pppoe-server

Сообщение DimkaS »

C ADSL-ем в данном случае проще. ADSL это "труба" (виртуальная витая пара) и Ethernet пакеты просто инкапсулируются в ATM-пакеты. А у провайдера стоит PPPoE сервер, который по Ethernet подключен к DSLAM-у (ну или сам DSLAM может служить PPPoE сервером).

Спасибо, это многое объясняет. Значит, pppoe мне действительно не поможет.

Ещё раз кратко объясню задачу.
1. Железка, которая делает роутинг, шифрование и т.п, совершенно абстрактная. Важно только то, что у неё есть только ethernet и она может быть настроена статически, по dhcp, через pppoe. Т.е. втыкание модемов отпадает.
2. GPRS-роутер мой, ПО разрабатываю я на основе linux. Т.е. всё, что можно сделать на большом компе, можно сделать и там. Перенести утилиты для bridge или настроить iptables не проблема.
3. Цель - получить внешний IP на интерфейсе железки. Т.к. pppoe отпадает, остаются bridge и NAT. В обоих случаях меня смущает то, что при динамическом IP трудно будет заставить железку переконфигурить интерфейс. Но если ограничиться только статикой, то вариант кажется возможным. Кто может подсказать примерную последовательность действий для обоих случаев?
Спасибо сказали:
skor
Сообщения: 419
ОС: RTFM-OS v127.0.0.1

Re: настроить pppoe-server

Сообщение skor »

DimkaS писал(а):
19.11.2009 13:36
1. Железка, которая делает роутинг, шифрование и т.п, совершенно абстрактная. Важно только то, что у неё есть только ethernet и она может быть настроена статически, по dhcp, через pppoe. Т.е. втыкание модемов отпадает.
2. GPRS-роутер мой, ПО разрабатываю я на основе linux. Т.е. всё, что можно сделать на большом компе, можно сделать и там. Перенести утилиты для bridge или настроить iptables не проблема.
3. Цель - получить внешний IP на интерфейсе железки. Т.к. pppoe отпадает, остаются bridge и NAT. В обоих случаях меня смущает то, что при динамическом IP трудно будет заставить железку переконфигурить интерфейс. Но если ограничиться только статикой, то вариант кажется возможным. Кто может подсказать примерную последовательность действий для обоих случаев?
Переконфигурация при поднятии/опускании ppp интерфейса - не проблема. Смотрите в сторону ip-up скриптов. В списке параметров, передавемых скрипту есть локальный и удаленный адреса. Соответсвенно можно переписать iptables.
ЗЫ: Помнится один ADSL-модем мог делать хитрую штуку. Он подымал PPPoE с оператором. А после этого по DHCP отдавал полученный адрес компьютеру-клиенту а сам становился эдаким "бриджом" (естественно работать это могло только при непосредственном подключении модема к компьютеру, о чем и было написано в документации). Причем в начале (когда PPPoE еще не поднято) выдавался "серый адрес", а после того как PPPoE подымалось, модем ненадолго отключал Ethernet интерфейс, а потом включал (для того чтоб dhcp-клиент у компьютера заново запросил адресс) и отдавал клиенту уже "честный" адрес.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: настроить pppoe-server

Сообщение Alex2ndr »

DimkaS писал(а):
19.11.2009 13:36
Ещё раз кратко объясню задачу.
1. Железка, которая делает роутинг, шифрование и т.п, совершенно абстрактная. Важно только то, что у неё есть только ethernet и она может быть настроена статически, по dhcp, через pppoe. Т.е. втыкание модемов отпадает.

Хотя она и абстрактна, но список ее конкретных возможностей есть? Или она может обладать всем спектром сетевых сервисов? Нужно ли его абстрагировать до сервера с linux на борту? Это я к тому что для каких-то случаев можно обойтись NAT а для каких-то нужно будет что-то типа моста.

DimkaS писал(а):
19.11.2009 13:36
2. GPRS-роутер мой, ПО разрабатываю я на основе linux. Т.е. всё, что можно сделать на большом компе, можно сделать и там. Перенести утилиты для bridge или настроить iptables не проблема.

Т е можно рассматривать его как маршрутизатор с линуксом, в который воткнут GPRS модем(по usb, или com, или в pci)? Такая аналогия приемлема?

DimkaS писал(а):
19.11.2009 13:36
3. Цель - получить внешний IP на интерфейсе железки. Т.к. pppoe отпадает, остаются bridge и NAT. В обоих случаях меня смущает то, что при динамическом IP трудно будет заставить железку переконфигурить интерфейс. Но если ограничиться только статикой, то вариант кажется возможным. Кто может подсказать примерную последовательность действий для обоих случаев?

Как раз динамический адрес вас смущать не должен. В случае NAT его переконфигурит сам роутер, а в случае моста на железке просто оборвется соединение - надо будет его переконнектить. Вы забываете об одной вещи - на конкретную сессию адрес выдается и остается за владельцем до ее завершения. Правда завершаться оно может как с вашей стороны так и со стороны провайдера. Но это обычно небольшая трудность.

Насчет конкретной реализации пока не скажу - нужно больше инфы - думаю ответ на вопрос "можно рассматривать роутер как маршрутизатор с линуксом, в который воткнут GPRS модем(по usb, или com, или в pci)?" поможет.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: настроить pppoe-server

Сообщение Alex2ndr »

skor писал(а):
19.11.2009 14:00
ЗЫ: Помнится один ADSL-модем мог делать хитрую штуку. Он подымал PPPoE с оператором. А после этого по DHCP отдавал полученный адрес компьютеру-клиенту а сам становился эдаким "бриджом" (естественно работать это могло только при непосредственном подключении модема к компьютеру, о чем и было написано в документации). Причем в начале (когда PPPoE еще не поднято) выдавался "серый адрес", а после того как PPPoE подымалось, модем ненадолго отключал Ethernet интерфейс, а потом включал (для того чтоб dhcp-клиент у компьютера заново запросил адресс) и отдавал клиенту уже "честный" адрес.

Вот о чем-то таком я и говорил когда имел в виду мост между физическими средами. Другой вопрос что должно быть сконфигурировано в клиенте чтобы такой фокус работал - думаю что незаметно для клиента это сложно провернуть - ведь pppoe имеет трафик на уровне ip. Или тогда получается что этот умный модем принимал сам пакеты pppoe а остальное отдавал клиенту?
Спасибо сказали:
Аватара пользователя
DimkaS
Сообщения: 146
ОС: Debian Testing

Re: настроить pppoe-server

Сообщение DimkaS »

skor писал(а):
19.11.2009 14:00
Переконфигурация при поднятии/опускании ppp интерфейса - не проблема. Смотрите в сторону ip-up скриптов. В списке параметров, передавемых скрипту есть локальный и удаленный адреса. Соответсвенно можно переписать iptables.

Свой - да. А вот чужой?

ЗЫ: Помнится один ADSL-модем мог делать хитрую штуку. Он подымал PPPoE с оператором. А после этого по DHCP отдавал полученный адрес компьютеру-клиенту а сам становился эдаким "бриджом" (естественно работать это могло только при непосредственном подключении модема к компьютеру, о чем и было написано в документации). Причем в начале (когда PPPoE еще не поднято) выдавался "серый адрес", а после того как PPPoE подымалось, модем ненадолго отключал Ethernet интерфейс, а потом включал (для того чтоб dhcp-клиент у компьютера заново запросил адресс) и отдавал клиенту уже "честный" адрес.

Вариант интересный, я об этом думал, но пока не уверен.
Спасибо сказали:
skor
Сообщения: 419
ОС: RTFM-OS v127.0.0.1

Re: настроить pppoe-server

Сообщение skor »

Alex2ndr писал(а):
19.11.2009 14:21
Вот о чем-то таком я и говорил когда имел в виду мост между физическими средами. Другой вопрос что должно быть сконфигурировано в клиенте чтобы такой фокус работал - думаю что незаметно для клиента это сложно провернуть - ведь pppoe имеет трафик на уровне ip. Или тогда получается что этот умный модем принимал сам пакеты pppoe а остальное отдавал клиенту?

Это можно попытаться реализовать.
Это получается не бридж а маршрутизатор, но с "левой резьбой".
1) есть запущенный dhcp-сервер.
2) клиент запросил у него адрес, мы выдали "серый" (пул ограничен одним адресом, шнурок тыкается напрямую в плату компьютера, без промежуточных свичей)
3) запускаем pppd через GPRS
4) устанавливается PPP-сессия, получили от провайдера адрес (к примеру 1.1.1.1), подняли маршурт по умолчанию в сторону GPRS.
5) пишем ip route add 1.1.1.1 dev eth0 .... table client (создали отдельную таблицу маршрутизации, где мы сказали что 1.1.1.1 доступен через интерфейс, на котором сидит клиентский компьютер)
6) ip rule add to 1.1.1.1 table client (написали правило, по которому пакеты с адресом назначения 1.1.1.1 используют таблицу маршрутизации "client")
7) ip route flush cache (очистили кеш, чтоб применились текущие правки)
8) выбираем соседний адрес с 1.1.1.1 (к примеру 1.1.1.2)
9) запускаем arpd -i eth0 1.1.1.2
9) меняем конфиг dhcp-сервер со следущими параметрам:
client addres - 1.1.1.1
gateway - 1.1.1.2
netmask - 255.255.255.252 (тут надо вычислять соответсвующую маску, чтоб и 1.1.1.1 и 1.1.1.2 оказались в одной сети)
DNS - тоже что получили от провайдера
10) перезапускаем dhcp-сервер
11) отключаем eth0 на несколько секунд (чтоб клиент это увидел)
12) включаем eth0
13) клиент запрашивает адрес, получает новые параметры.
14) Profit!

Пакеты из GPRS по ip rule/ip route будут уходить через eth0 и доходить до клиента
Пакеты от клиента будут приходить на MAC-адрес шлюза 1.1.1.2, тоесть MAC-адрес eth0 (о чем позаботится arpd)
Минус способа в том, что роутер "нечесно" присваивает себе адрес 1.1.1.2 и клиент не сможет связаться с этим адресом.
Возможно от этого можно отказаться, сделав хитрые настройки dhcp-сервера (выдавать дополнительные атрибуты, статические маршруты и тд, чтоб в качестве шлюза использовался "серый" адрес).
Спасибо сказали:
Аватара пользователя
DimkaS
Сообщения: 146
ОС: Debian Testing

Re: настроить pppoe-server

Сообщение DimkaS »

Alex2ndr писал(а):
19.11.2009 14:15
Хотя она и абстрактна, но список ее конкретных возможностей есть? Или она может обладать всем спектром сетевых сервисов? Нужно ли его абстрагировать до сервера с linux на борту? Это я к тому что для каких-то случаев можно обойтись NAT а для каких-то нужно будет что-то типа моста.

Остановимся на статике, dhcp и pppoe. Конкретных возможностей не знаю, да и железки в разных случаях могут быть разные.

Т е можно рассматривать его как маршрутизатор с линуксом, в который воткнут GPRS модем(по usb, или com, или в pci)? Такая аналогия приемлема?

Да, так оно и есть. Модем через COM порт. Дозвон через pppd.

Как раз динамический адрес вас смущать не должен. В случае NAT его переконфигурит сам роутер, а в случае моста на железке просто оборвется соединение - надо будет его переконнектить. Вы забываете об одной вещи - на конкретную сессию адрес выдается и остается за владельцем до ее завершения. Правда завершаться оно может как с вашей стороны так и со стороны провайдера. Но это обычно небольшая трудность.

Да, наверно, проблем возникнуть не должно. Либо мы настраиваем на железке статику, либо каждый раз опускаем интерфейс и отдаём новый IP по DHCP.

Насчет конкретной реализации пока не скажу - нужно больше инфы - думаю ответ на вопрос "можно рассматривать роутер как маршрутизатор с линуксом, в который воткнут GPRS модем(по usb, или com, или в pci)?" поможет.

Ответил. В описании bridge читал, что его можно использовать с ppp-интерфейсом, но там же написано, что интерфейсы не должны быть подняты перед настройкой. Не понимаю, как это можно совместить.

skor писал(а):
19.11.2009 15:22
Это можно попытаться реализовать.
Это получается не бридж а маршрутизатор, но с "левой резьбой".

Да, выглядит не очень красиво, но должно быть работоспособно :)
Спасибо сказали:
skor
Сообщения: 419
ОС: RTFM-OS v127.0.0.1

Re: настроить pppoe-server

Сообщение skor »

DimkaS писал(а):
19.11.2009 15:29
skor писал(а):
19.11.2009 15:22
Это можно попытаться реализовать.
Это получается не бридж а маршрутизатор, но с "левой резьбой".

Да, выглядит не очень красиво, но должно быть работоспособно :)
Я вот еще подумал тут немного. Можно попытаться обойтись без ip rule/ip route. После того как поднялся ppp интерфейс, в таблице маршрутизации просто убрать текущую запись о 1.1.1.1 и заменить ее другой (с указанием назначения eth0) - но это надо пробовать (или попробовать на "живом" ppp интерфейсе убрать ip-адресс через ip link).

PS: и еще наверно надо будет поковырять /proc/sys/net/ipv4/conf/all/rp_filter (и подобные) чтоб линукс не сильно "следил" что куда и откуда ходит.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: настроить pppoe-server

Сообщение Alex2ndr »

skor писал(а):
19.11.2009 15:22
Пакеты из GPRS по ip rule/ip route будут уходить через eth0 и доходить до клиента
Пакеты от клиента будут приходить на MAC-адрес шлюза 1.1.1.2, тоесть MAC-адрес eth0 (о чем позаботится arpd)
Минус способа в том, что роутер "нечесно" присваивает себе адрес 1.1.1.2 и клиент не сможет связаться с этим адресом.
Возможно от этого можно отказаться, сделав хитрые настройки dhcp-сервера (выдавать дополнительные атрибуты, статические маршруты и тд, чтоб в качестве шлюза использовался "серый" адрес).

Мне также кажется что адрес 1.1.1.2 может кто-то иметь - и так просто его не отдаст ;) (вот не знаю точно как это в модемных сетях обстоит)
Честно говоря способ интересный - но в мэйнстриме такое наверно лучше не применять. Если этот GRPS роутер пойдет в массы то в сотовых сетях такое начнется :crazy: Нужно подумать о честном способе.

DimkaS писал(а):
19.11.2009 15:29
Ответил. В описании bridge читал, что его можно использовать с ppp-интерфейсом, но там же написано, что интерфейсы не должны быть подняты перед настройкой. Не понимаю, как это можно совместить.

Вот я тоже пока не понимаю - способ с ADSL здесь не подойдет - там фактически имеем 2 интерфейса (обычный и pppoe). От вашего роутера требуется странный функционал - вам надо как бы дать по сети доступ к com порту(чтобы ppp соединение сама железка устанавливала) - да еще не известно сможет ли железка на той стороне принять такой доступ к com по сети(сильно сомневаюсь). Мне кажется идеологически правильным решением было-бы перенести все функции этой железки в роутер и не париться по поводу разнесения одного функционала по 2-м устройствам. Ну или просто сделать NAT в обе стороны - и не парится по поводу того что что-то может не заработать с натом как следует(вот сейчас на ум примеров не приходит).
Спасибо сказали: