|
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
|