Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The firewall does not support IEEE 802.1Q VLAN tagging #51

Open
hlef opened this issue Nov 18, 2024 · 0 comments
Open

The firewall does not support IEEE 802.1Q VLAN tagging #51

hlef opened this issue Nov 18, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@hlef
Copy link
Collaborator

hlef commented Nov 18, 2024

The firewall inspects the ethertype and rejects anything that doesn't match IPv4, IPv6, or ARP.

In the IEEE 802.1Q VLAN tagging case, an IEEE 802.1Q header is placed between the source MAC and the ethertype containing a tag protocol identifier and tagging information. The firewall thus reads the tag protocol identifier (typically 0x8100), sees that it doesn't match IPv4, IPv6, or ARP, and rejects the packet.

Potential fix:

To fix this, I suggest that we:

  • Define a struct TaggedEthernetHeader that matches the Ethernet header in the IEEE 802.1Q VLAN tagging case;
  • Before we parse the ethertype field, check if its value corresponds to IEEE 802.1Q VLAN tagging;
  • If so, re-cast into a TaggedEthernetHeader before entering the Ethertype switch.

We should do that on ingress and egress.

A similar solution could be applied to support other forms of tagging such as IEEE 802.1ad double tagging, though I doubt we need support for that now.

Notes:

This should not be considered a priority, as the FreeRTOS+TCP stack does not currently support VLAN tagging. Adding support for VLAN tagging to the firewall without support in the network stack is not useful.

We will have the same problem with the incoming DNS resolver: #50

@hlef hlef added the enhancement New feature or request label Nov 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant