Virtualbox + GNS3

Discussion in 'Linux, Freebsd, *nix' started by nuxster, 4 Jul 2012.

  1. nuxster

    nuxster New Member

    Joined:
    12 Jan 2011
    Messages:
    58
    Likes Received:
    0
    Reputations:
    0
    Пытаюсь прикрутить 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, то пакеты неизвестно куда уходят.

    Для наглядности прилагаю картинку.
    [​IMG]

    Может кто имел опыт подскажите в чем может быть проблема.
    Спасибо!
     
  2. dronozavr

    dronozavr New Member

    Joined:
    3 Jul 2012
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    Попробуй на хосте сделать
    sysctl -w net.ipv4.conf.br0.proxy_arp=1
    sysctl -w net.ipv4.ip_forward=1

    По идее должно сработать, если нет, попробуй прокси_арп для разных интерфейсов повключать, возможно даже для всех.
     
  3. emomasson

    emomasson Member

    Joined:
    27 Jul 2010
    Messages:
    174
    Likes Received:
    12
    Reputations:
    5
    Там по моему проброс пакетов не обязателен, а чего на дампе?
     
  4. nuxster

    nuxster New Member

    Joined:
    12 Jan 2011
    Messages:
    58
    Likes Received:
    0
    Reputations:
    0
    Форвардинг включен, прокси_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 пакетов нет, дальше соответственно тоже.
     
  5. dronozavr

    dronozavr New Member

    Joined:
    3 Jul 2012
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    Покажи таблицы маршрутов с хоста и виртуалки
     
  6. nuxster

    nuxster New Member

    Joined:
    12 Jan 2011
    Messages:
    58
    Likes Received:
    0
    Reputations:
    0

    Таблица маршрутизации на хосте:
    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
    
     
  7. dronozavr

    dronozavr New Member

    Joined:
    3 Jul 2012
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    Хм, по идее все должно работать.

    Посмотри tcpdump'ом доходят-ли пинги с виртуалки до хоста (запускаем на хосте tcpdump и пинги на виртуалке), а потом наоборот.
     
  8. nuxster

    nuxster New Member

    Joined:
    12 Jan 2011
    Messages:
    58
    Likes Received:
    0
    Reputations:
    0
    Через интерфейс tap1 пинги ходят с хоста на виртуалку (192.168.1.2) и с виртуалки на хост.
     
  9. dronozavr

    dronozavr New Member

    Joined:
    3 Jul 2012
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    А на роутере есть возможность трафик поснифать?
     
  10. nuxster

    nuxster New Member

    Joined:
    12 Jan 2011
    Messages:
    58
    Likes Received:
    0
    Reputations:
    0
    Дамп с маршрутизатора при пингах с хоста:
    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.             
    
    При пингах с виртуалки дампов нет. Пакеты не доходят до маршрутизатора.
     
  11. nuxster

    nuxster New Member

    Joined:
    12 Jan 2011
    Messages:
    58
    Likes Received:
    0
    Reputations:
    0
    В общем, попробовал вместо VB заюзать реальную сетку. Все работает на ура.
    Походу проблема именно в VB, только где именно не могу понять.
     
  12. nuxster

    nuxster New Member

    Joined:
    12 Jan 2011
    Messages:
    58
    Likes Received:
    0
    Reputations:
    0
    В общем перешел я с VB на KVM (чего и вам советую) и сразу стало тепло и сухо.
     
  13. nuxster

    nuxster New Member

    Joined:
    12 Jan 2011
    Messages:
    58
    Likes Received:
    0
    Reputations:
    0
    Нашел еще одно решение данной проблемы в openvswitch.
    Попутно заметил, что с VB не получается заюзать vlan'ы. :(