QinQ на Juniper EX4200 и Cisco 4900M

 

Возникла потребность в организации двойного тегирования и терминированием на маршрутизаторе. На рисунке упрощенная схема. Есть два хоста - FreeBSD и Windows. Каждый из них находится в своём vlan`е. Эти два vlan`а вытаскиваются до Juniper`а EX4200, где на порту навешивается S-tag и отдается на терминирующий маршрутизатор. Там эти два vlan`а с уже двойным тегированием разворачиваются и бриджуются по C-vlan`у. Получаем услугу L2VPN для клиентов, если бриджевать N таких хостов в пределах единого QinQ порта подключения относительно Juniper EX4200.

 

root@freebsd:/root # tcpdump -n -e -i re0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on re0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:26:58.579686 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q-QinQ (0x88a8), length 82: vlan 3030, p 0, ethertype 802.1Q, vlan 200, p 0, ethertype IPv4, 172.16.1.2 > 172.16.1.1: ICMP echo request, id 768, seq 11290, length 40
16:26:58.579720 00:50:fc:fd:98:df > 00:18:f3:2b:27:c3, ethertype 802.1Q-QinQ (0x88a8), length 82: vlan 3030, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype IPv4, 172.16.1.1 > 172.16.1.2: ICMP echo reply, id 768, seq 11290, length 40
 
Немножко настоек:
kron# show ethernet-switching-options 
analyzer span1 {
    input {
        ingress {
            interface ge-0/0/22.0;
        }
    }
    output {
        interface {
            ge-0/0/20.0;
        }
    }
}
dot1q-tunneling {
    ether-type 0x88a8;
}
 
kron# show vlans 
vl3030 {
    vlan-id 3030;
    dot1q-tunneling;
    no-mac-learning;
}
kron# show interfaces ge-0/0/21    
description "QinQ port";
mtu 9000;
unit 0 {
    family ethernet-switching {
        port-mode access;
        vlan {
            members vl3030;
        }
    }
}
 
{master:0}[edit]
kron# show interfaces ge-0/0/22    
description router;
mtu 9000;
unit 0 {
    family ethernet-switching {
        port-mode trunk;
        vlan {
            members vl3030;
        }
    }
}
Обращаю внимание, что работоспособность схемы осуществима только при отключении mac-learning на S-vlane. При включенном mac-learning, начинается mac флап хоста между QinQ портом и портом к маршрутизатору. 
А теперь непонятные вещи от Juniper EX4200:
Хост в vlan`e 200 пускает 1 ICMP на хост находящийся в vlan`e 100. Роутер делает бриджевание между 100 и 200 vlan`ом.
dot1q-tunneling настроен на EX  и на роутере на Ethertype 0x88a8. Между роутером и EX4200 есть два физических линка - по 10G и через 1G интерфейсы. Во время опыта либо 10G, либо 1G в административном дауне. SPAN сессия снимается с интерфейса коммутатора(либо 1G, либо 10G) смотрящего в сторону роутера. SPAN сессия снимается либо на ingress, либо на egress.
Вот результаты:
GIG (ge-0/0/22.0)
ingress span from port:
 
15:55:07.544610 00:50:fc:fd:98:df > 00:18:f3:2b:27:c3, ethertype 802.1Q-QinQ (0x88a8), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype IPv4, 172.16.1.1 > 172.16.1.2: ICMP echo request, id 16236, seq 0, length 64
15:55:07.545255 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q-QinQ (0x88a8), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 200, p 0, ethertype IPv4, 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 16236, seq 0, length 64
 
GIG (ge-0/0/22.0)
egress span from port:
 
15:58:17.552387 00:50:fc:fd:98:df > 00:18:f3:2b:27:c3, ethertype 802.1Q (0x8100), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 200, p 0, ethertype IPv4, 172.16.1.1 > 172.16.1.2: ICMP echo request, id 17260, seq 0, length 64
15:58:17.552993 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q (0x8100), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype IPv4, 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 17260, seq 0, length 64
 
TEN (xe-0/1/0.0)
ingress span from port:
 
16:03:27.476488 00:50:fc:fd:98:df > 00:18:f3:2b:27:c3, ethertype 802.1Q (0x8100), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype IPv4, 172.16.1.1 > 172.16.1.2: ICMP echo request, id 22636, seq 0, length 64
16:03:27.477117 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q (0x8100), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 200, p 0, ethertype IPv4, 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 22636, seq 0, length 64
 
TEN (xe-0/1/0.0)
egress span from port:
 
16:00:52.779267 00:50:fc:fd:98:df > 00:18:f3:2b:27:c3, ethertype 802.1Q (0x8100), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 200, p 0, ethertype IPv4, 172.16.1.1 > 172.16.1.2: ICMP echo request, id 22124, seq 0, length 64
16:00:52.779887 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q (0x8100), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype IPv4, 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 22124, seq 0, length 64
 
Не понятно почему 0x8100 вместо 0x88a8, ведь настроено на работу по 802.1ad с 0x88a8.
kron# show ethernet-switching-options dot1q-tunneling 
ether-type 0x88a8;
Я ожидал 0x88a8 во всех четырех случаях. И почему для 10G и 1G интерфейсов в одном случае 0x8100 а в другом 0x88a8
 
И вот ещё одно не хорошее поведение при отключенному learning, все условия теста аналогичны выше описанному, единственное это то, что снимаем на egress направлении порта EX`а SPAN сессию, на порт выведен S-vlan в access режиме:
 
egress (ge-0/0/19.0 fake link in access mode for S-vlan 3030)
16:37:51.899486 00:50:fc:fd:98:df > 00:18:f3:2b:27:c3, ethertype 802.1Q (0x8100), length 102: vlan 200, p 0, ethertype IPv4, 172.16.1.1 > 172.16.1.2: ICMP echo request, id 38252, seq 0, length 64
16:37:51.899499 00:50:fc:fd:98:df > 00:18:f3:2b:27:c3, ethertype 802.1Q (0x8100), length 102: vlan 100, p 0, ethertype IPv4, 172.16.1.1 > 172.16.1.2: ICMP echo request, id 38252, seq 0, length 64
16:37:51.900120 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q (0x8100), length 102: vlan 100, p 0, ethertype IPv4, 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 38252, seq 0, length 64
16:37:51.900136 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q (0x8100), length 102: vlan 200, p 0, ethertype IPv4, 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 38252, seq 0, length 64
 
Т.е. мы видим выбрасывание ICMP пакета во все порты куда выведен внешний S-vlan. Хаб. :)
 
 
Далее всё для cisco 4900M вместо EX4200.
Для cisco аналогичное работает при выключении обучения по S-vlan`у:
no mac address-table learning vlan 3030
Чем черевато отключение learning`а - решайте для себя. Cisco по крайней мере предупреждает:
 
Disabling mac address learning would cause full or partial impact on features which rely upon mac address learning. Most notable of them are  Dot1x, port-security, VQPC, flexlink and private vlans. Hence it is not advisable to disable mac learning when these features are configured. Please see configuration guide for additional information.
 
Например можете столкнуться вот с таким(посылаем 1 ICMP пакет и снимаем SPAN`ом с "левого" порта на cisco 4900M куда вытаскиваем S-vlan 3030 просто из любопытства):
 
18:58:00.589311 00:50:fc:fd:98:df > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 68: vlan 3030, p 0, ethertype 802.1Q, vlan 200, p 0, ethertype ARP, Request who-has 172.16.1.2 tell 172.16.1.1, length 46
18:58:00.589325 00:50:fc:fd:98:df > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 68: vlan 3030, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype ARP, Request who-has 172.16.1.2 tell 172.16.1.1, length 46
18:58:00.589964 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q (0x8100), length 68: vlan 3030, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype ARP, Reply 172.16.1.2 is-at 00:18:f3:2b:27:c3, length 46
18:58:00.589983 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q (0x8100), length 68: vlan 3030, p 0, ethertype 802.1Q, vlan 200, p 0, ethertype ARP, Reply 172.16.1.2 is-at 00:18:f3:2b:27:c3, length 46
 
18:58:00.590051 00:50:fc:fd:98:df > 00:18:f3:2b:27:c3, ethertype 802.1Q (0x8100), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 200, p 0, ethertype IPv4, 172.16.1.1 > 172.16.1.2: ICMP echo request, id 45410, seq 0, length 64
18:58:00.590106 00:50:fc:fd:98:df > 00:18:f3:2b:27:c3, ethertype 802.1Q (0x8100), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype IPv4, 172.16.1.1 > 172.16.1.2: ICMP echo request, id 45410, seq 0, length 64
18:58:00.590541 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q (0x8100), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 100, p 0, ethertype IPv4, 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 45410, seq 0, length 64
18:58:00.590563 00:18:f3:2b:27:c3 > 00:50:fc:fd:98:df, ethertype 802.1Q (0x8100), length 106: vlan 3030, p 0, ethertype 802.1Q, vlan 200, p 0, ethertype IPv4, 172.16.1.2 > 172.16.1.1: ICMP echo reply, id 45410, seq 0, length 64
 
Тот же хаб как и с EX4200.
Level Up
Sponsors:

Контактная информация

Если у Вас есть какие-либо вопросы, Вы можете связаться с нами:

Отдел продаж: (с 10:00 до 18:00)

Icq: 155-10-6525

E-mail: sales@golas.ru