|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Kirill Nuzhdin 2:5020/400 25 Apr 2006 13:02:13 To : All Subject : ng_eiface + ng_bridge дубли пакетов и вообще странное поведение --------------------------------------------------------------------------------
я недавно описывал проблему, которую пока прямо не решил (FreeBSD
6.1-PRERELEASE):
"есть одна сетевая карта, нужно было эмулировать наличие 4-х машин со своими
MAC-адресами, чтоб ближайший роутер видел четыре разные машины". Решение с
помощью нетграфа примерно следующее:
myk0 ngeth0 ngeth1
| | |
(lower) (link0) (link1)
| | |
+----------(link4)-bridge-(link2)-----ngeth2
|
(link3)-----ngeth3
ngethX - ng_eiface
bridge - ng_bridge
ifconfig-ом задаются свои Ethernet (далее мас) и IP адреса
для однообразия пусть будет так:
10.0.0.1/26 10.0.0.2/32 10.0.0.3/32 10.0.0.4/32
с мас1 мас2 мас3 мас4, соответственно.
ipfw разрешает все, что я делаю, фильтрация идет только на ngethX
пингуем со внешней машины: ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1): 56 data bytes
64 bytes from 10.0.0.1: icmp_seq=0 ttl=58 time=2.940 ms
^C
- --- 10.0.0.1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.940/2.940/2.940/0.000 ms
пингуем со внешней машины: ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=58 time=3.152 ms
64 bytes from 10.0.0.2: icmp_seq=0 ttl=58 time=3.185 ms (DUP!)
64 bytes from 10.0.0.2: icmp_seq=0 ttl=58 time=3.197 ms (DUP!)
64 bytes from 10.0.0.2: icmp_seq=0 ttl=58 time=3.209 ms (DUP!)
^C
- --- 10.0.0.2 ping statistics ---
1 packets transmitted, 1 packets received, +3 duplicates, 0% packet loss
round-trip min/avg/max/stddev = 3.152/3.186/3.209/0.021 ms
различные варианты tcpdump показывают, что "echo request" всегда приходит
с указанием правильного МАС-адреса получателя пакета, а ng_bridge отправляет
его только 10.0.0.1, если указан мас1, либо рассылает по всем линкам, если
указан любой другой получатель (мас{2,3,4}/10.0.0.{2,3,4}).
"echo reply" отправляется только с ngeth0 (мас1) в одинарном или четверном
варианте
с TCP ситуация аналогичная, только без дублей пакетов:
телнет на 10.0.0.1 - бридж работает как бридж, все ходит нормально
телнет на 10.0.0.{2,3,4} - бридж начинает работать как хаб и ответы идут от
мас1 через ngeth0 вместо мас{2,3,4} и ngeth{1,2,3} соответственно
Почему так происходит и как лечить?
--
Best regards,
Kirill Nuzhdin
--- ifmail v.2.15dev5.3
* Origin: MSU (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/6577ae5f5822.html, оценка из 5, голосов 12
|