Description

This article provides information on the behavior of native-vlan on L3 aggregate interface on AFT platforms.

Symptoms

"Native-vlan" is used for receiving untagged packets on a trunk interface.

You must configure a logical interface with the VLAN ID that is same as the native VLAN ID confiured on the interface, to receive the untagged packets on the interface.

To configure the logical interface, include the vlan-id statement (matching the native-vlan-id statement on the physical interface) at the [edit interfaces interface-name unit logical-unit-number] hierarchy level.

For detail, please refer native-vlan-id documentation in Junos CLI Reference.


The logical interface having the vlan-id which matches the native-vlan-id should send out packets without VLAN tag. However, AFT platforms send out packets with VLAN tag unexpectedly. Due to this behavior, a device which has AFT platforms cannot communicate with an opposite device which sends untag packets through the logical interface on AFT platforms. For example, ARP, OSPF, BGP etc, cannot be resolved and cannot have connection between the opposite router. 
* AFT stands for Advanced Forwarding Toolkit and this is PFE (Packet forwarding engine) software.
  AFT platforms are MPC10/11/LC9600, MX304 etc.

Example;

Topology
   DUT
+---------+                                 +---------+
|  MX480  |                                 |  MX480  |
|  +------|native-vlan-id            pure IP|------+  |
|  |MPC10E|---------------------------------|MPC3E |  |
|  +------|et-0/0/1                 et-5/0/0|------+  |
+---------+                                 +---------+


Sample config
< DUT >
set chassis aggregated-devices ethernet device-count 1
set chassis fpc 0 pic 0 pic-mode 40G
set interfaces et-0/0/1 description to_mx480_mpc3e-ng
set interfaces et-0/0/1 gigether-options 802.3ad ae2
set interfaces ae2 flexible-vlan-tagging
set interfaces ae2 native-vlan-id 2
set interfaces ae2 encapsulation flexible-ethernet-services
set interfaces ae2 aggregated-ether-options lacp active
set interfaces ae2 unit 0 vlan-id 2
set interfaces ae2 unit 0 family inet address 10.0.2.1/24
set interfaces lo0 unit 0 family inet address 10.1.1.1/32
set protocols ospf area 0.0.0.0 interface lo0.0
set protocols ospf area 0.0.0.0 interface ae2.0 interface-type p2p
set protocols bgp group test2 type external
set protocols bgp group test2 neighbor 10.0.2.2 local-address 10.0.2.1
set protocols bgp group test2 neighbor 10.0.2.2 peer-as 65003
set routing-options autonomous-system 65001



< The opposite router >
set chassis aggregated-devices ethernet device-count 1
set chassis network-services enhanced-ip
set interfaces et-5/0/0 description to_mx480_mpc10e
set interfaces et-5/0/0 gigether-options 802.3ad ae2
set interfaces ae2 aggregated-ether-options lacp active
set interfaces ae2 unit 0 family inet address 10.0.2.2/24
set interfaces lo0 unit 0 family inet address 10.3.3.3/32
set routing-options autonomous-system 65003
set protocols bgp group test2 type external
set protocols bgp group test2 neighbor 10.0.2.1 local-address 10.0.2.2
set protocols bgp group test2 neighbor 10.0.2.1 peer-as 65001
set protocols ospf area 0.0.0.0 interface lo0.0
set protocols ospf area 0.0.0.0 interface ae2.0 interface-type p2p



Test result
The opposite router cannot resolve arp.

user@mx480> show arp
MAC Address       Address         Name                      Interface               Flags
XX:XX:XX:XX:XX:XX 10.0.2.2        10.0.2.2                  ae2.0                   none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX           fxp0.0                  none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX fpc0                      em0.0                   none
Total entries: 3

user@mx480-opposite> show arp
MAC Address       Address         Name                      Interface               Flags
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX           fxp0.0                  none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX           fxp0.0                  none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX fpc5                      em0.0                   none
Total entries: 3


OSPF and BGP are down state.

user@mx480> show ospf neighbor

Address          Interface              State           ID               Pri  Dead
10.0.2.2         ae2.0                  Init            10.3.3.3         128    38


user@mx480> show bgp summary

Threading mode: BGP I/O
Default eBGP mode: advertise - accept, receive - accept
Groups: 1 Peers: 1 Down peers: 1
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
inet.0
                       0          0          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.0.2.2              65003          0          0       0       0       17:11 Connect



When the opposite router has vlan-id, that is, it processes control packets with VLAN tag, DUT and the opposite router can communicate each other. This means DUT sends out control packets with VLAN tag. However, this is wrong behavior.

[edit]
user@mx480-opposite# set interfaces ae2 vlan-tagging

[edit]
user@mx480-opposite# set interfaces ae2 unit 0 vlan-id 2

[edit]
user@mx480-opposite# commit
commit complete

user@mx480> show arp
MAC Address       Address         Name                      Interface               Flags
XX:XX:XX:XX:XX:XX 10.0.2.2        10.0.2.2                  ae2.0                   none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX           fxp0.0                  none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX fpc0                      em0.0                   none
Total entries: 3

user@mx480-opposite> show arp
MAC Address       Address         Name                      Interface               Flags
XX:XX:XX:XX:XX:XX 10.0.2.1        10.0.2.1.                 ae2.0                   none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX           fxp0.0                  none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX           fxp0.0                  none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX fpc5                      em0.0                   none
Total entries: 4



user@mx480> show ospf neighbor

Address          Interface              State           ID               Pri  Dead
10.0.2.2         ae2.0                  Full            10.3.3.3         128    33


user@mx480> show bgp summary

Threading mode: BGP I/O
Default eBGP mode: advertise - accept, receive - accept
Groups: 1 Peers: 1 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
inet.0
                       0          0          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.0.2.2              65003          8          7       0       0        2:33 Establ
  inet.0: 0/0/0/0

Solution

PR1740873 resolves the issue.

https://prsearch.juniper.net/problemreport/PR1740873

Fixed versions are 22.2R3-S3, 22.4R2-S2, 22.4R3, 23.2R2, 23.4R1 and onward releases.

Example;

Here is the result of the fixed version behavior.
* using the above sample config


user@mx480> show arp
MAC Address       Address         Name                      Interface               Flags
XX:XX:XX:XX:XX:XX 10.0.2.2        10.0.2.2                  ae2.0                   none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX           fxp0.0                  none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX fpc0                      em0.0                   none
Total entries: 3

user@mx480-opposite> show arp
MAC Address       Address         Name                      Interface               Flags
XX:XX:XX:XX:XX:XX 10.0.2.1        10.0.2.1.                 ae2.0                   none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX           fxp0.0                  none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX           fxp0.0                  none
XX:XX:XX:XX:XX:XX XXX.XXX.XXX.XXX fpc5                      em0.0                   none
Total entries: 4


user@mx480> show ospf neighbor

Address          Interface              State           ID               Pri  Dead
10.0.2.2         ae2.0                  Full            10.3.3.3         128    36



user@mx480> show bgp summary

Threading mode: BGP I/O
Default eBGP mode: advertise - accept, receive - accept
Groups: 1 Peers: 1 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
inet.0
                       0          0          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.0.2.2              65003         12         10       0       0        4:16 Establ
  inet.0: 0/0/0/0

Modification History

2024-01-26 : Article Created