802.1q 프로토콜 패킷이 인터페이스에 의해 자동으로 삭제되는 이유는 무엇입니까?

802.1q 프로토콜 패킷이 인터페이스에 의해 자동으로 삭제되는 이유는 무엇입니까?

다음과 같이 호스트에서 IEC61850_SV 프로토콜을 사용하여 일련의 테스트 패킷을 전송합니다.

01 0C CD 04 00 03 00 0C CD 04 00 00 81 00 80 01 88 BA 40 03 01 24 00 00 00 00 60 82 01 18 80 01 01 A2 82 01 11 30 82 01 0D 80 1B 50 53 53 43 36 30 31 4D 55 53 56 2F 4C 4C 4E 30 24 4D 53 24 4D 53 56 43 42 30 31 82 02 0B C6 83 04 00 00 00 01 85 01 00 87 81 E0 00 00 00 FA 00 00 00 00 FF EC C5 D9 00 00 00 00 FF EC C5 D9 00 00 00 00 00 12 19 12 00 00 00 00 00 12 19 12 00 00 00 00 00 01 21 24 00 00 00 00 00 01 21 24 00 00 00 00 EC C 5 D9 00 00 00 00 00 12 19 12 00 00 00 00 00 01 21 24 00 00 00 00 FF 90 FD E8 00 00 00 00 FF 90 FD E8 00 00 00 00 00 68 7C DF 00 00 00 00 00 68 7C DF 0 0 00 00 00 00 06 85 39 00 00 00 00 00 06 85 39 00 00 00 00 FF 90 FD E8 00 00 00 00 FF 90 FD E8 00 00 00 00 00 00 00 0F 00 00 00 00 00 00 00 00 00 00 00 FF 90 FD E8 00 00 00 00 FF 90 FD E8 00 00 00 00 00 68 7C DF 00 00 00 00 00 68 7C DF 00 00 00 00 00 06 85 39 00 00 00 00 00 06 85 39 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    Num                                  000001
    Length                               314
    Capture Length                       310
    time difference                      0.000000000 sec
ethernet - II                                [0/14]
    target                               01:0C:CD:04:00:03  [0/6]
    source                               00:0C:CD:04:00:00  [6/6]
    protocal                             0x8100  (VLAN)  [12/2]
802.1Q vlan protocal                        [14/4]
    Label                                [14/2]
    User priority                        100. ....    [14/1]  0x00E0
    CFI                                  ...0 ....    [14/1]  0x0010
    VlAN num                             .... 0000 0000 0001  (1)  [14/2]  0x0FFF
    protocal                             0x88ba  (IEC61850_SV)  [16/2]
IEC61850 sample value                       [18/21]
    Id                                   0x4003  [18/2]
    length                               292  [20/2]
    reserved bit1                        0x0  [22/2]
    reserved bit2                        0x0  [24/2]
    savPdu                              [30/0]
        application service data units                       1  [32/1]
        Sequence ASDU                   [37/0]
            ASDU                        [37/0]
Additional data                                    [39/271]
    bytes                                271 bytes  [39/271]
FCs
    FCs                                  0x2F0CA2EA  

그런 다음 대상 컴퓨터에서 tcpdump를 사용하여 패킷을 캡처했습니다. 로그는 다음과 같이 표시됩니다.

 09:06:02.562846 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310: 
09:06:02.574656 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310: 
09:06:02.589684 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310: 
09:06:02.605706 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310: 
09:06:02.620610 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310: 
09:06:02.635996 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310: 
09:06:02.650857 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310: 
09:06:02.665517 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310: 
09:06:02.680210 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310: 
09:06:02.695342 00:0c:cd:04:00:00 (oui Unknown) > 01:0c:cd:04:00:03 (oui Unknown), 802.1Q, length 310: 
10 packets captured
10 packets received by filter
0 packets dropped by kernel
10 packets dropped by interface

이상한 점은 모든 VLAN 프로토콜 패킷이 인터페이스에 의해 삭제된다는 것입니다. 그런 다음 vconfig add eth0 1eth0.1을 사용하여 eth0.1 포트를 추가하고 eth0.1을 사용하여 패킷을 수신했는데 패킷이 올바르게 수신되었음을 표시했습니다.

ARP와 같은 다른 패킷은 인터페이스에서 올바르게 수신되기 때문입니다. VLAN 프로토콜이 포함된 패킷이 인터페이스에서 수신되지 않고 인터페이스에서 자동으로 삭제되지만 네트워크 계층에서 구문 분석할 수 없는 이유를 알고 싶습니다. 다시 말하지만, 데이터 링크 계층은 이를 폐기하고 커널은 어떤 데이터도 얻지 못합니다.

 cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
  eth1:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

VLAN을 추가하는 것 외에 커널이 이러한 패킷을 직접 수신할 수 있는 방법이 있습니까?

관련 정보