The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Q-in-Q (VLAN stacking) в Linux
Q-in-Q  - проброс VLAN внутри  другого VLAN.

host1:

   vconfig set_name_type VLAN_PLUS_VID_NO_PAD
   vconfig add eth0 4
   ifconfig vlan4 10.1.1.1 netmask 255.255.255.0 up
   vconfig add vlan4 8
   ifconfig vlan8 192.168.1.1 netmask 255.255.255.0 up

host2:

   vconfig set_name_type VLAN_PLUS_VID_NO_PAD
   vconfig add eth0 4
   ifconfig vlan4 10.1.1.2 netmask 255.255.255.0 up
   vconfig add vlan4 8
   ifconfig vlan8 192.168.1.2 netmask 255.255.255.0 up

ragahost ~ # ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.820 ms

ragahost ~ # tcpdump -e -i eth0
22:40:47.297489 00:0e:0c:9b:fa:ce (oui Unknown) > 00:13:d4:8b:c8:b6 (oui Unknown), 
ethertype 802.1Q (0x8100), length 106: vlan 4, p 0, ethertype 802.1Q, vlan 8, p 0, 
ethertype IPv4, 192.168.1.2 > 192.168.1.1: ICMP echo request, id 64531, seq 146, length 64
 
24.02.2007 , Автор: ^rage^
Ключи: vlan, ifconfig, linux / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / Туннелинг, VPN, VLAN

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (-), 14:10, 01/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а зачем вилан внутри вилана нужен впинципе?

    не ради флейма, просто интересно узнать.

     
     
  • 2.2, Аноним (-), 15:52, 01/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >а зачем вилан внутри вилана нужен впинципе?
    >
    >не ради флейма, просто интересно узнать.

    Первое, что в голову приходит это преодоление лимита в 4К вланов. Второй пример - транзит вланов клиентов через оборудование провайдера. Третий вариант, когда в большой сети где каждому клиенту (считай порту) выделяется свой влан, удобно каждому свичу дать отдельный влан и вланы клиентов гнать через него, т.е. путь влана прописывается только для свича, клиенские вланы трогаем только на входе и выходе.

     

  • 1.3, Аноним (-), 07:54, 02/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Q-in-Q - необходимая для операторов вещь. По причинам, уже описанным в предыдущем посте.
     
  • 1.4, Dmitry (??), 20:06, 03/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ifconfig vlan4 10.1.1.1 netmask 255.255.255.0
    А это зачем? Не достаточно ли просто поднять интерфейс?
     
  • 1.5, emp (??), 22:40, 04/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а любой свитч это дело пережуёт ?
    поддерживает ли это дело FreeBSD ?
     
     
  • 2.7, _umka_ (ok), 19:55, 11/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    фря поддерживает с мелким патчем (возможно в 4ке и его не надо)
    --- /usr/src/sys.orig/net/if_vlan.c     Mon Jan  8 12:03:15 2007
    +++ if_vlan.c   Sun Mar 11 16:46:00 2007
    @@ -155,7 +158,7 @@
      * is too big to fit into CPU cache.
      */
    static struct mtx ifv_mtx;
    -#define        VLAN_LOCK_INIT()        mtx_init(&ifv_mtx, "vlan_global", NULL, MTX_DEF)
    +#define        VLAN_LOCK_INIT()        mtx_init(&ifv_mtx, "vlan_global", NULL, MTX_RECURSE)
    #define        VLAN_LOCK_DESTROY()     mtx_destroy(&ifv_mtx)
    #define        VLAN_LOCK_ASSERT()      mtx_assert(&ifv_mtx, MA_OWNED)
    #define        VLAN_LOCK()             mtx_lock(&ifv_mtx)
    @@ -997,8 +988,8 @@
            /* VID numbers 0x0 and 0xFFF are reserved */
            if (tag == 0 || tag == 0xFFF)
                    return (EINVAL);
    -       if (p->if_type != IFT_ETHER)
    -               return (EPROTONOSUPPORT);
    +//     if (p->if_type != IFT_ETHER)
    +//             return (EPROTONOSUPPORT);
            if ((p->if_flags & VLAN_IFFLAGS) != VLAN_IFFLAGS)
                    return (EPROTONOSUPPORT);
            if (ifv->ifv_trunk)
    ======
    а вот Linux (RH EL3) - судя по tcpdump -это не поддерживает.

    # tcpdump -e -n -i eth0
    tcpdump: listening on eth0
    16:58:09.313703 0:3:47:a6:47:a3 Broadcast 8100 60: 802.1Q vlan#1 P0 802.1Q vlan#10 P0 arp who-has 172.20.4.2 tell 172.20.4.1
    16:58:09.313744 0:2:b3:d7:0:97 0:3:47:a6:47:a3 8100 46: 802.1Q vlan#10 P0 arp reply 172.20.4.2 is-at 0:2:b3:d7:0:97

    декодит нормально, а вот назад отвечает без parent vlan tag.
    172.20.4.1 - freebsd with patch
    172.20.4.2 - linux.

     

  • 1.6, Дохтур (?), 23:34, 04/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    freebsd это не умеет.

    >ifconfig vlan4 10.1.1.1 netmask 255.255.255.0
    >А это зачем? Не достаточно ли просто поднять >интерфейс?

    мне надо было для тестов.

     
     
  • 2.8, _umka_ (ok), 06:48, 12/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    умеет. а в линухе эта поддержка похоже появилась весьма не давно.
     

  • 1.9, proxx (?), 16:39, 16/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    линух это давно умееет, только нужно еще патчить драйвера сетевых карт чтоб они пакеты длинной 1508 байт пропускали, ну и свитчи тоже не должны их резать..
     
     
  • 2.10, Serge (??), 19:43, 19/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    По-моему 1504 байта достаточно.
     
     
  • 3.12, Lion (??), 04:05, 22/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Для Q-in-Q нужно 1508 (4+4 - там же 2 VLAN тега)
     
     
  • 4.13, Serge (??), 19:34, 22/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Откуда 4+4 то?
    Всего вланов 4096 - это 2^12, следовательно 2 раза по 12 бит получается 24 бита, а это как раз 4 байта!
     
     
  • 5.15, Ilijaz (?), 12:39, 25/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    vlan 4, !!!p 0,!!!! <- а про это мы забыли?! 1508 байт!
     

  • 1.11, Прохожий (??), 13:22, 21/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Q-in-Q - необходимая для операторов вещь. По причинам, уже описанным в предыдущем посте

    Нормальный оператор не может себе позволить нормальный DSLAM?
    Зачем изобретать велосипед то, для этого есть спец. оборудование которое специально создано для решения этих задач

     
     
  • 2.14, Andrew Kolchoogin (?), 13:03, 23/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    DSLAM? Digital Subscriber Line Access Multiplexer? А каким местом он к Ethernet'у и 802.1q? Это же ADSL...
     
     
  • 3.16, Andrew Shtabnoi (?), 07:11, 14/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    ADSL - это ATM, который потом надо как-то во что-то инкапсулировать дабы передавать по ethernet-сетям. вот и спасает qnq, в худшем случае просто .1q
     

  • 1.17, denis (??), 10:48, 06/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А какой MTU должен быть в этом случае?
    Для такого получается 1508, я прав?
     
  • 1.18, martin (??), 12:49, 08/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ну и какой влан  в какой вложен?
    vconfig set_name_type VLAN_PLUS_VID_NO_PAD задает вид именования vlan
    далее создается два vlan и передаются в транке с одного интерфейса
    а где конфетка?
     
  • 1.19, Костя (??), 14:57, 29/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    лучше для наглядности пример, когда vlan 8 в vlan 8 вложили....
     
     
  • 2.20, shtabnoi (?), 19:42, 31/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > лучше для наглядности пример, когда vlan 8 в vlan 8 вложили....

    Router(config)# interface gigabitEehernet0/0.008008
    Router(config-subif)# encapsulation dot1q 8 second-dot1q 8

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру