Как создать пакет Ethernet с тегом vlan с помощью PacketDotNet?

В моем приложении C# я использую библиотеку PacketDotNet. Итак, я пытаюсь отправить кадр с тегом vlan, но не могу его правильно построить. Мой код:

      public static void Main(string[] args)
{
    const ushort udpSourcePort = 123;
    const ushort udpDestinationPort = 321;
    var udpPacket = new UdpPacket(udpSourcePort, udpDestinationPort);

    var ipSourceAddress = System.Net.IPAddress.Parse("192.168.1.1");
    var ipDestinationAddress = System.Net.IPAddress.Parse("192.168.1.2");
    var iPv4Packet = new IPv4Packet(ipSourceAddress, ipDestinationAddress);

    var vlan = new Ieee8021QPacket(iPv4Packet.BytesSegment)
    {
        VlanIdentifier = 14
    };

    const string sourceHwAddress = "90-90-90-90-90-90";
    var ethernetSourceHwAddress = System.Net.NetworkInformation.PhysicalAddress.Parse(sourceHwAddress);
    
    const string destinationHwAddress = "80-80-80-80-80-80";
    var ethernetDestinationHwAddress = System.Net.NetworkInformation.PhysicalAddress.Parse(destinationHwAddress);

    
    var ethernetPacket = new EthernetPacket(ethernetSourceHwAddress,
        ethernetDestinationHwAddress,
        EthernetType.None);

    // Now stitch all of the packets together
    iPv4Packet.PayloadPacket = udpPacket;
    vlan.PayloadPacket = iPv4Packet;
    ethernetPacket.PayloadPacket = vlan;

    // and print out the packet to see that it looks just like we wanted it to
    Console.WriteLine(ethernetPacket.ToString());
}

Однако вывод, созданный с помощью, кажется неправильным.

Как правильно построить тегированный кадр vlan в PacketDotNet?

0 ответов

Другие вопросы по тегам