Страница 1 из 1

Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 0:28:40
maradona
Такой вопрос: насколько мне известно на канальном уровне (тоесть в одном сегменте сети Ethernet) обмен кадрами происходит по mac адресам, тоесть насколько я представляю всю кухню - при любом трафике (не важно какой протокол) в одном сегменте сети по любому идет обмен кадрами по мак адресам, поэтому такой вопрос: имеем pipe в IPFW на if_bridge

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

00300        0           0 pipe 7 ip from any to any MAC 00:0c:42:1c:09:bd 00:17:31:a9:e9:9b
00400        0           0 pipe 7 ip from any to any MAC 00:17:31:a9:e9:9b 00:0c:42:1c:09:bd
сеть такая: 00:0c:42:1c:09:bd ------------if_bridge---------------00:17:31:a9:e9:9b
пингуем с одного мака второй через мост:

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

(23:18:47 </>) 0 # ipfw show
00100       18        1530 allow ip from any to any via lo0
00200       10         600 pipe 7 ip from any to any MAC 00:0c:42:1c:09:bd 00:17:31:a9:e9:9b
00300       10         600 pipe 7 ip from any to any MAC 00:17:31:a9:e9:9b 00:0c:42:1c:09:bd
видим кадры идут через pipe, теперь добавляем правило сверху pipe

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

$cmd add allow icmp from 192.168.1.2 to 192.168.1.1 keep-state
и смотрим:

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

(23:22:57 </>) 0 # ipfw show
00100       16        1474 allow ip from any to any via lo0
00200       16         960 allow icmp from 192.168.1.2 to 192.168.1.1 keep-state
00300        0           0 pipe 7 ip from any to any MAC 00:0c:42:1c:09:bd 00:17:31:a9:e9:9b
00400        0           0 pipe 7 ip from any to any MAC 00:17:31:a9:e9:9b 00:0c:42:1c:09:bd
видим что все попало в наше правило и ушло из фаера, обясните этот момент - почему в даном случае нет никаких кадров между мак адресами - они же должны быть, что я понимаю не правильно??

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 0:57:04
hizel
медитируем над картинкой из man ipfw

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

                  ^    to upper layers    V
                  |                       |
                  +----------->-----------+
                  ^                       V
            [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       |
правило

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

allow icmp from 192.168.1.2 to 192.168.1.1 keep-state
также соответствует

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

allow icmp from 192.168.1.2 to 192.168.1.1 mac any any keep-state

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 9:24:31
maradona
Не совсем понятно, я имел виду что правило

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

allow icmp from 192.168.1.2 to 192.168.1.1 keep-state
это 3 уровень
а pipe для второго уровня

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

00200       10         600 pipe 7 ip from any to any MAC 00:0c:42:1c:09:bd 00:17:31:a9:e9:9b
0300       10         600 pipe 7 ip from any to any MAC 00:17:31:a9:e9:9b 00:0c:42:1c:09:bd
не понятно где кадры layer2? или в Ethernet это одно и тоже?

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 9:33:27
zingel
Ethernet - технология передачи
L2 - уровень, на котором эта технология работает

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 12:23:20
maradona
zingel писал(а):Ethernet - технология передачи
L2 - уровень, на котором эта технология работает
тоесть прочитав тут: http://ru.wikipedia.org/wiki/Ethernet#. ... 0.B8.D1.8F
ключевую фразу:" Часто используется непосредственно протоколом интернет."
делаем вывод что пакеты icmp не попали в pipe, потому-что в пределах этой сети 192.168.1.0/24 обмен между двумя компами происходит не кадрами: "Ethernet Version 2 или Ethernet-кадр II, ещё называемый DIX" а пакетами протокола IP, я правильно понял?

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 12:40:02
hizel
нет просто у вас эти пакеты акцептяца и вылетают из фаервола до пайпов :)
а layer2 внутри одной подсети никто не отменял ;)

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 12:45:32
maradona
hizel писал(а):нет просто у вас эти пакеты акцептяца и вылетают из фаервола до пайпов :)
а layer2 внутри одной подсети никто не отменял ;)
ну так это и хочу понять, я вижу что уходит из фаера, вопрос где-же кадры канального уровня? они же должны быть..

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 12:54:18
hizel

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

ipfw disable one_pass
ipfw add allow ip from any to any via lo0
ipfw add pipe 7 ip from any to any MAC 00:0c:42:1c:09:bd 00:17:31:a9:e9:9b
ipfw add pipe 7 ip from any to any MAC 00:17:31:a9:e9:9b 00:0c:42:1c:09:bd
ipfw add allow icmp from 192.168.1.2 to 192.168.1.1 keep-state

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 15:14:51
maradona

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

а layer2 внутри одной подсети никто не отменял
да действительно так и есть, только keep-state нада убрать а то всеравно з фаера бежит:

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

(14:09:07 </>) 0 # ipfw show
00100       20        1586 allow ip from any to any via lo0
00300       29        1740 pipe 7 ip from any to any MAC 00:0c:42:1c:09:bd 00:17:31:a9:e9:9b
00400       29        1740 pipe 7 ip from any to any MAC 00:17:31:a9:e9:9b 00:0c:42:1c:09:bd
00500       29        1740 allow icmp from 192.168.1.2 to 192.168.1.1
00600       29        1740 allow icmp from 192.168.1.1 to 192.168.1.2
теперь видно трафик 3 и 2 уровня, чуть разобрался спс, просто trafshow меня в заблуждение ввел, именно этот трафик что в правилах 2 уровень trafshow не показывает.

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 16:20:54
hizel
trafshow тупо не показывает, да и зачем
пользуйтесь

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

tcpdump -e 
да и вобще по поводу layer2 в man-е внятный пример есть

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

           # 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
по нему в частности видно, что в самом печальном случае пакет проходит по правилам фаервола 4(четыре) раза в одну сторону

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 17:56:05
maradona

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

tcpdump -e
спс, млин както раньше этот ключик не видел..., хотя trafshow layer2 тоже показывает, по крайней мере на мосту пакеты PPPoE

Re: Ethernet, какие пакеты бегают

Добавлено: 2008-11-18 17:57:25
hizel
мыслицо когда trafshow не видит пипишнегов, он показывает маки, в общем то логично