Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » FreeBSD: bridge, pppoe

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

L_S_V



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как заставить работать PPPoE через мост?
топология такая...

Код:
 
ppoe-server<-switch-> bridge <-> client2
..........................|
..........................V
..........................client1
 

client1 без проблем работает с pppoe, сервис видится, у клиента2 сервис pppoe не видится
В правилах фаервола есть

Код:
 
00003    0       0 allow gre from any to any
00004  131   11004 allow icmp from any to any
00005   58    3216 allow ip from any to any via lo0
....бла бла бла...
65533  452   78174 deny log logamount 1000 ip from any to any
 

В секюрити логе нет криминала относящегося к GRE и PPPoE PADI.
Мост работает, клиент2 получает адрес по dhcp от сервера стоящего по другую сторону моста.
вот такой дамп с интерфейса моста смотрящего в сторону клиента2, попытке подключиться клиентом2, на интерфейсе того же моста смотрящего в сторону pppoe сервера нет ничего относящегося к PPPOE

Код:
 
00:08:51.159285 IP 192.168.1.254.1032 > 192.168.1.4.22: . ack 1404 win 65535
00:08:51.963581 IP 192.168.1.4.22 > 192.168.1.254.1032: P 1404:1616(212) ack 1 win 65535
00:08:52.144125 IP 192.168.1.254.1032 > 192.168.1.4.22: . ack 1616 win 65323
00:08:52.492069 PPPoE PADI [Service-Name "*"] [Host-Uniq 0x525350450000000060CD13CE80E8C601]
00:08:52.966499 IP 192.168.1.4.22 > 192.168.1.254.1032: P 1616:1828(212) ack 1 win 65535
00:08:53.077709 IP 192.168.1.4.22 > 192.168.1.254.1032: P 1828:1960(132) ack 1 win 65535
00:08:53.078014 IP 192.168.1.254.1032 > 192.168.1.4.22: . ack 1960 win 64979
00:08:53.487204 PPPoE PADI [Service-Name "*"] [Host-Uniq 0x525350450000000060CD13CE80E8C601]
00:08:54.080531 IP 192.168.1.4.22 > 192.168.1.254.1032: P 1960:2092(132) ack 1 win 65535
00:08:54.082402 IP 192.168.1.4.22 > 192.168.1.254.1032: P 2092:2304(212) ack 1 win 65535
00:08:54.082873 IP 192.168.1.254.1032 > 192.168.1.4.22: . ack 2304 win 64635
 

Всего записей: 627 | Зарегистр. 31-03-2005 | Отправлено: 18:42 05-10-2006 | Исправлено: L_S_V, 18:56 05-10-2006
Felix



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
L_S_V
PADI - пакет который клиент отсылает чтобы найти сервер PPPoE, который будет его обслуживать. Т.к. Ethernet далее одного конца моста не ходит, то ответа клиент не получает.  
Для этого случая нужен прозрачное для Ethernet фреймов устройство - свитч...
 
Хотя может и ещё чего-нибудь можно придумать, но это врядли будет из разряда бюджетных решений.

----------
In My Opinion!

Всего записей: 965 | Зарегистр. 20-01-2002 | Отправлено: 14:51 18-10-2006
L_S_V



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Felix

Цитата:
PADI - пакет который клиент отсылает чтобы найти сервер PPPoE, который будет его обслуживать. Т.к. Ethernet далее одного конца моста не ходит, то ответа клиент не получает.  
Для этого случая нужен прозрачное для Ethernet фреймов устройство - свитч...  
 
Хотя может и ещё чего-нибудь можно придумать, но это врядли будет из разряда бюджетных решений.

Идём учить мат. часть по протокоу PPPoverEthernet...
 
А вообще у меня не один мост на компе был, поэтому была задача открыть PPPoE только на одном, а на другом не пропускать никаких протоколов канального уровня кроме ARP, открываетяс это так:

Код:
 
sysctl net.link.bridge.pfil_onlyip=0
 

2 моста на одной машине
man if_bridge:

Цитата:
 
net.link.bridge.ipfw
Set to 1 to enable layer2 filtering with  
ipfirewall(4), set to 0 to disable it. This  
needs to be enabled for dummynet(4) support.  
When ipfw is enabled, pfil_bridge and  
pfil_member will be disabled so that IPFW is  
not run twice; these can be re-enabled if  
desired.

Как фильтровать протоколы L2, кроме MAC?
А вот так:

Цитата:
 
PACKET FLOW
     A packet is checked against the active ruleset in multiple places in the
     protocol stack, under control of several sysctl variables.  These places
     and variables are shown below, and it is important to have this picture
     in mind in order to design a correct ruleset.
 
                  ^    to upper layers    V
                  ^    to upper layers    V
                  |                       |
                  +----------->-----------+
                  ^                       V
            [ip(6)_input]           [ip(6)_output]     net.inet.ip.fw.enable=1
            [ip(6)_input]           [ip(6)_output]     net.inet.ip.fw.enable=1
                  |                       |
                  ^                       V
            [ether_demux]        [ether_output_frame]  net.link.ether.ipfw=1
                  |                       |
                  +-->--[bdg_forward]-->--+            net.link.ether.bridge_ipfw=1
                  ^                       V
                  |      to devices       |
..............................................................................................
           # packets from ether_demux or bdg_forward
           ipfw add 10 skipto 1000 all from any to any layer2 in
           # packets from ip_input
           ipfw add 10 skipto 2000 all from any to any not layer2 in
           # packets from ip_output
           ipfw add 10 skipto 3000 all from any to any not layer2 out
           # packets from ether_output_frame
           ipfw add 10 skipto 4000 all from any to any layer2 out
 

Всего записей: 627 | Зарегистр. 31-03-2005 | Отправлено: 16:58 18-10-2006
tankistua

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
/etc/rc.d/ipfw stop - и потом уже изходя из этого и думаем.
 
З.Ы. какое отношение имеет pptp к ppoe ?

Всего записей: 9572 | Зарегистр. 15-01-2002 | Отправлено: 17:17 18-10-2006
L_S_V



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
/etc/rc.d/ipfw stop - и потом уже изходя из этого и думаем.

значение sysctl при этом не поменятеся, это не поможет.

Цитата:
З.Ы. какое отношение имеет pptp к ppoe ?

никакого, просто сам в начале сбился и решил добавить gre, но pptp L3, а pppoe L2...
 
p.s. задача решена, решение опубликовано выше;)

Всего записей: 627 | Зарегистр. 31-03-2005 | Отправлено: 05:32 19-10-2006
Felix



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
L_S_V

Цитата:
Идём учить мат. часть по протокоу PPPoverEthernet...

может что и запамятовал?! но специально залез сейчас глянул http://www.ietf.org/rfc/rfc2516.txt
PADI  уходит на бродкаст.  
 
 
 
Добавлено:
Вобщем не столь важно, самое главное решил...

----------
In My Opinion!

Всего записей: 965 | Зарегистр. 20-01-2002 | Отправлено: 08:53 19-10-2006 | Исправлено: Felix, 08:57 19-10-2006
allein



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я уже два дня бьюсь ipfw не видит трафик внутри PPPOE, т.е. не разворачивает его до третьего уровня пишет в логах пишет только "ipfw: 6500 Accept MAC"
Если остались хоть какие-то настройки у решивших проблему, то желательно увидеть бы правила фаирволла и вывод sysctl -a. Заранее спасибо.

Всего записей: 835 | Зарегистр. 09-02-2006 | Отправлено: 17:23 20-01-2009
L_S_V



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
послушай на всех интерфейсах есть ли там PADI вообще...
tcpdump –n –e -i fxp0 ether proto 0x8864
 
ну и напиши как вообще делал мост, какая версия фряхи, помница там пожно было сделать 2мя способами это.
а по правилам L2 в ipfw я выше запостил цитату из man ipfw про это...
вообще данные могут не доходить т.к.  большой размер окна задал

Всего записей: 627 | Зарегистр. 31-03-2005 | Отправлено: 00:48 21-01-2009 | Исправлено: L_S_V, 00:52 21-01-2009
allein



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот что выдает tcpdump –n –e -i em1 ether proto 0x8864  

Код:
 
...........................
248.180.167: ESP(spi=0x4d6c058c,seq=0x38d), length 108
08:18:10.681996 00:18:b9:53:50:dc > 00:30:48:8b:51:33, ethertype PPPoE S (0x8864), length 150: PPPoE  [ses 0xc67] IP (0x0021), length 130: 195.xxx.xxx.xxx > 212.xxx.xxx.xxx: ESP(spi=0xc09fa389,seq=0x1262), length 108
08:18:10.682845 00:30:48:8b:51:33 > 00:18:b9:53:50:dc, ethertype PPPoE S (0x8864), length 102: PPPoE  [ses 0xc67] IP (0x0021), length 82: 81.xxx.xxx.xxx > 195.xxx.xxx.xxx: ESP(spi=0x07ae65ad,seq=0x1409), length 60
...........................
 

Версия фряхи - FreeBSD 7.0-RELEASE
Состояние важных переменных

Код:
 
net.inet.ip.fw.enable: 1
net.link.ether.ipfw: 1
net.link.bridge.ipfw: 1
net.link.bridge.log_stp: 0
net.link.bridge.pfil_local_phys: 0
net.link.bridge.pfil_member: 0
net.link.bridge.pfil_bridge: 1
net.link.bridge.ipfw_arp: 0
net.link.bridge.pfil_onlyip: 0
 

Данные проходят через мост нормально. У меня есть еще второй мост, там трафик просто ходит, без PPPOE и ipfw нормально видит третий и четвертый уровень (логирует и айпишники, порты).
А на этом все что удается добиться, это

Код:
 
Jan 20 16:55:39 bridge2 kernel: ipfw: 1000 Accept MAC out via em2
Jan 20 16:55:39 bridge2 kernel: ipfw: 1000 Accept MAC out via em1
Jan 20 16:55:39 bridge2 kernel: ipfw: 1000 Accept MAC out via em2
Jan 20 16:55:39 bridge2 kernel: ipfw: 1000 Accept MAC out via em1
Jan 20 16:55:39 bridge2 kernel: ipfw: 1000 Accept MAC out via em2
Jan 20 16:55:39 bridge2 kernel: ipfw: 1000 Accept MAC out via em1
Jan 20 16:55:39 bridge2 kernel: ipfw: 1000 Accept MAC out via em1
 

Всего записей: 835 | Зарегистр. 09-02-2006 | Отправлено: 10:19 21-01-2009
L_S_V



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tcpdump-ом смотри с обоих концов моста. К стати мост в переменных делал или через ifconfig bridge?

Всего записей: 627 | Зарегистр. 31-03-2005 | Отправлено: 12:46 21-01-2009
allein



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мост работает как модуль ядра. Поднимается вот этим в rc.conf

Код:
 
cloned_interfaces="bridge0"
ifconfig_bridge0="addm em1 addm em2 stp em1 stp em2 up"
ifconfig_em1="up"
ifconfig_em2="up"
 

Сам прикол в том,что tcpdump видит трафик нормально, он видит соурс и дестинейшн айпишники, порты, все по красоте. А ipfw ничего не видит кроме МАКа на мостовых интерфейсах и нормально трафик на управляющем интерфейсе (на третей сетевухе).
Мне кажется tcpdump просто умный и разбирает заголовок PPPOE, а ipfw надо как-то заставить это делать.
L_S_V
Спасибо, что пытаешься помочь.

Всего записей: 835 | Зарегистр. 09-02-2006 | Отправлено: 16:36 21-01-2009
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » FreeBSD: bridge, pppoe


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru