|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Eugene Grosbein 2:5006/1 22 Dec 2007 16:29:00 To : All Subject : if_bridge(4) и EtherIP -------------------------------------------------------------------------------- Привет! А у кого-нибудь получилось заставить работать EtherIP, поддержка которого заявлена в RELENG_6 в man if_bridge? Есть две FreeBSD 6.3-PRERELEASE, каждая с "внутренним" ethernet-интерфейсом if0 и "внешним" if1. Создаю между ними gif1, назначаю внешние и внутренние адреса, пинг внутри туннеля идёт. Внешние адреса gif1 это адреса if1 с обоих сторон. Удаляю gif1 (ifconfig gif1 destroy), создаю заново, внешние адреса те же самые, внутренних не ставлю, как указано в if_bridge(4). Делаю "ifconfig vlan1 create vlan 1 vlandev if0 up" - создаю "фиктивный" интерфейс типа ethernet и объединяю его в бридж с gif1: "ifconfig bridge1 create addm vlan1 addm gif1 up", на второй машине точно так же. Затем адрес: ifconfig bridge1 inet 192.168.0.1/30, на второй машине ifconfig bridge1 inet 192.168.0.2/30. После этого при попытках пинга между 192.168.0.1 и 192.168.0.2 наблюдаются следующие эффекты (tcpdump -n -p -i bridge1): 1. Самообращённый arp-reply, выдаваемый при назначении адреса 192.168.0.1 на bridge1, нормально доходит до удалённой машины 192.168.0.2 и создаёт запись в её ARP-таблице. А если посылается arp-request, он приходит, на него отсылается arp-reply, он приходит обратно, tcpdump его показывает на bridge1 и этим всё заканчивается - записи в ARP-таблице не создаётся. Соответственно, IP (ping) не ходит. 2. Если в ARP-таблицу добавить статические адреса, начинается посылка ICMP echo-request, которые приходят на другую сторону, tcpdump их там видит на bridge1, ответов не отсылается. 3. Если добавить правило: ipfw add 5 allow log all from any to any via bridge1 то счетчики на нём растут, в лог пишутся все отправленные по собственной инициативе пакеты (echo-request, и при включенном layer2 filtering видно arp-request и самообращённые arp-reply) в все принятые запросы, но ответных пакетов так же нет - полное соответствие с тем, что показывает tcpdump. Также все эти пакеты видны tcpdump-ом на vlan1. Получается, что бридж типа работает, ipfw ничего не режет, но верхние уровни стека пакеты совершенно игнорируют. Игрался с различными sysctl для if_bridge - лучше не стало. Пробовал играться с флагами edge, ptp, autoedge, autoptp на gif/vlan, состоящий в бридже - не помогло. Фиктивный vlan1 мне нужен для того, чтобы после того как заработает такой бридж, создать gif2 и vlan2 для второго физического канала, связывающего эти два хоста и в bridge2 их. и потом объединить vlan1 и vlan2 в lagg0, таким образом суммировав пропускную способность одинаковых по ширине узких каналов. Eugene -- What would you do with a brain if you had one? --- slrn/0.9.8.1 (FreeBSD) * Origin: Svyaz Service JSC (2:5006/1@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/2609304c844c6.html, оценка из 5, голосов 10
|