Пытаюсь прикрутить VB к GNS3, что бы виртуалка из VB могла взаимодействовать с хостом и реальной сеткой через кучку маршрутизаторов в GNS3. Для начала пробую реализовать простую схему, c хостовой машины попасть на виртуальный маршрутизатор в GNS3: Code: tunctl -t tap0 -u user ifconfig tap0 10.10.49.3 255.255.255.0 up Создаю в GNS3 облако, там прописываю tap0 и соединяю с fa0/0 на маршрутизаторе. На маршрутизаторе прописываю: Code: ena conf t interface fa0/0 ip address 10.10.49.1 255.255.255.0 no sh exit wr Пингую хость, с хоста пингую циску. Все пока ок. Далее добавляю виртуалку c "Виртуальным адаптером хоста", создается интерфейс vboxnet0. На хостовой тачке делаю: Code: tunctl -t tap1 -u user ifconfig tap1 0.0.0.0 ifconfig vboxnet0 0.0.0.0 brctl addbr br0 brctl addif br0 tap1 brctl addif br0 vboxnet0 ifconfig br0 192.168.1.3 netmask 255.255.255.0 up Вывод brctl: Code: # brctl show bridge name bridge id STP enabled interfaces br0 8000.0a0027000000 no tap1 vboxnet0 На виртуалке прописываю: Code: ifconfig eth0 192.168.1.2 netmask 255.255.255.0 ip route add default via 192.168.1.1 В GNS3 создаю второе облако, добавляю туда tap1 и соединяю с fa0/1 на циске. Далее на циске прописываю настройки fa0/1: Code: conf t interfaces fa0/1 ip address 192.168.1.1 255.255.255.0 no sh exit wr Проблема в том, что с виртуалки я не могу достучаться даже то маршрутизатора. Пингую tap1 и с виртуалки и с маршрутизатора. С хостовой машины достаю до интерфейса fa0/1. Затык где то в br0, если c виртуалки пинговать 192.168.1.3 то прицепившись ваершарком к tap1 или br0 видно как летят ICMP, а если поробовать пингануть, что то дальше, например порт маршрутизатора смотрящий на виртуалки и имеющий адрес 192.168.1.1, то пакеты неизвестно куда уходят. Для наглядности прилагаю картинку. Может кто имел опыт подскажите в чем может быть проблема. Спасибо!
Попробуй на хосте сделать sysctl -w net.ipv4.conf.br0.proxy_arp=1 sysctl -w net.ipv4.ip_forward=1 По идее должно сработать, если нет, попробуй прокси_арп для разных интерфейсов повключать, возможно даже для всех.
Форвардинг включен, прокси_arp пробовал для всех интерфейсов и по отдельности - эффект нулевой. Дамп при пинге с виртуалки (с 192.168.1.2) на 192.168.1.3, слушаем vboxnet0 : Code: # tcpdump -vv -i vboxnet0 tcpdump: WARNING: vboxnet0: no IPv4 address assigned tcpdump: listening on vboxnet0, link-type EN10MB (Ethernet), capture size 65535 bytes 09:19:45.627561 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.1.2 > 192.168.1.3: ICMP echo request, id 2369, seq 1, length 64 09:19:46.637101 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.1.2 > 192.168.1.3: ICMP echo request, id 2369, seq 2, length 64 09:19:46.679234 CDPv2, ttl: 180s, checksum: 692 (unverified), length 337 Device-ID (0x01), length: 2 bytes: 'R1' Version String (0x05), length: 248 bytes: Cisco IOS Software, 7200 Software (C7200-ADVENTERPRISEK9-M), Version 12.4(24)T2, RELEASE SOFTWARE (fc2) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2009 by Cisco Systems, Inc. Compiled Mon 19-Oct-09 22:53 by prod_rel_team Platform (0x06), length: 13 bytes: 'Cisco 7206VXR' Address (0x02), length: 13 bytes: IPv4 (1) 192.168.1.1 Port-ID (0x03), length: 15 bytes: 'FastEthernet0/1' Capability (0x04), length: 4 bytes: (0x00000001): Router Prefixes (0x07), length: 5 bytes: IPv4 Prefixes (1): 10.10.49.0/24 Duplex (0x0b), length: 1 byte: full 09:19:47.644415 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.1.2 > 192.168.1.3: ICMP echo request, id 2369, seq 3, length 64 09:19:48.652421 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.1.2 > 192.168.1.3: ICMP echo request, id 2369, seq 4, length 64 09:19:49.660824 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.1.2 > 192.168.1.3: ICMP echo request, id 2369, seq 5, length 64 09:19:50.638262 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.3 tell 192.168.1.2, length 28 09:19:50.638288 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.1.3 is-at 0a:00:27:00:00:00 (oui Unknown), length 28 09:19:50.668449 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.1.2 > 192.168.1.3: ICMP echo request, id 2369, seq 6, length 64 При пинге с виртуалки (с 192.168.1.2) на 192.168.1.3 слушая tap1 пакетов нет, дальше соответственно тоже.
Таблица маршрутизации на хосте: Code: # ip route default via 192.168.10.254 dev eth1 192.168.10.0/24 dev eth1 proto kernel scope link src 192.168.10.121 192.168.1.0/24 via 10.10.49.1 dev tap0 10.10.49.0/24 dev tap0 proto kernel scope link src 10.10.49.3 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.3 Таблица маршрутизации на виртуалке: Code: # ip route default via 192.168.1.3 dev eth0 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
Хм, по идее все должно работать. Посмотри tcpdump'ом доходят-ли пинги с виртуалки до хоста (запускаем на хосте tcpdump и пинги на виртуалке), а потом наоборот.
Дамп с маршрутизатора при пингах с хоста: Code: R1#show monitor capture buffer buf1 dump 09:19:26.826 UTC Jul 6 2012 : IPv4 CEF Turbo : Fa0/0 Fa0/1 67E60CA0: 080027D6 B71ECA00 0A810006 08004500 ..'V7.J.......E. 67E60CB0: 00540000 40003F01 3EF20A0A 3103C0A8 .T..@.?.>r..1.@( 67E60CC0: 01020800 7CA37D53 00016075 F64F0000 ....|#}S..`uvO.. 67E60CD0: 0000E86F 00000000 00001011 12131415 ..ho............ 67E60CE0: 16171819 1A1B1C1D 1E1F2021 22232425 .......... !"#$% 67E60CF0: 26272829 2A2B2C2D 2E2F3031 32333435 &'()*+,-./012345 67E60D00: 363700 67. 09:19:27.826 UTC Jul 6 2012 : IPv4 CEF Turbo : Fa0/0 Fa0/1 67E60CA0: 080027D6 B71ECA00 0A810006 08004500 ..'V7.J.......E. 67E60CB0: 00540000 40003F01 3EF20A0A 3103C0A8 .T..@.?.>r..1.@( 67E60CC0: 01020800 AA9E7D53 00026175 F64F0000 ....*.}S..auvO.. 67E60CD0: 0000B973 00000000 00001011 12131415 ..9s............ 67E60CE0: 16171819 1A1B1C1D 1E1F2021 22232425 .......... !"#$% 67E60CF0: 26272829 2A2B2C2D 2E2F3031 32333435 &'()*+,-./012345 67E60D00: 363700 67. 09:19:28.826 UTC Jul 6 2012 : IPv4 CEF Turbo : Fa0/0 Fa0/1 67E60CA0: 080027D6 B71ECA00 0A810006 08004500 ..'V7.J.......E. 67E60CB0: 00540000 40003F01 3EF20A0A 3103C0A8 .T..@.?.>r..1.@( 67E60CC0: 01020800 DE997D53 00036275 F64F0000 ....^.}S..buvO.. 67E60CD0: 00008477 00000000 00001011 12131415 ...w............ 67E60CE0: 16171819 1A1B1C1D 1E1F2021 22232425 .......... !"#$% 67E60CF0: 26272829 2A2B2C2D 2E2F3031 32333435 &'()*+,-./012345 67E60D00: 363700 67. При пингах с виртуалки дампов нет. Пакеты не доходят до маршрутизатора.
В общем, попробовал вместо VB заюзать реальную сетку. Все работает на ура. Походу проблема именно в VB, только где именно не могу понять.
Нашел еще одно решение данной проблемы в openvswitch. Попутно заметил, что с VB не получается заюзать vlan'ы.