- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要构建一个 vlan header 。我有构建 eh header (struct ether_header) 的代码,它工作正常。
/* Ethernet header */
memcpy(eh->ether_shost,src_mac_.data(), 6);
memcpy(eh->ether_dhost,socketAddress.sll_addr , 6);
/* Ethertype field */
eh->ether_type = htons(ETH_P_IP);
我没有找到 vlan_eth_header 的结构,所以我创建了自己的结构并像这样填充它:
struct vlan_ethhdr {
u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr */
u_int8_t ether_shost[ETH_ALEN]; /* source ether addr */
u_int16_t h_vlan_proto;
u_int16_t h_vlan_TCI;
u_int16_t ether_type;
};
/* Ethernet header */
memcpy(eh->ether_shost,src_mac_.data(), 6);
memcpy(eh->ether_dhost,socketAddress.sll_addr , 6);
eh->h_vlan_proto = htons(0x8100);
eh->h_vlan_TCI = htons(VLAN_ID);
/* Ethertype field */
eh->ether_type = htons(ETH_P_IP);
看来我做错了。似乎 Wireshak 甚至没有识别数据包(旧代码发送了 tcp 数据包并正确发送了它们)。有什么建议吗?
最佳答案
http://wiki.wireshark.org/VLAN
我猜你没有正确设置 VLAN_ID。
首先,您应该通过在 byte[] 缓冲区中创建一些测试数据包来避免任何结构填充问题,这样您就可以确保一切正确。然后您可以自信地调试您的结构和 htons 字节顺序,因为您知道正确的值应该是什么。
关于c - 在c中构建vlan头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13166094/
我正在尝试发送和接收 VLAN 数据包,但我在该 mac 上收到的每个数据包都变成了错误数据包。有人可以向我解释一下收到错误数据包的原因吗? 这是状态... 有关以太网接口(interface) 4、
ethtool 联机帮助页只给出了一个模糊的解释: rxvlan on|off Specifies whether RX VLAN acceleration should b
Vlan删除操作步骤如下: 在一个网络系统中VLAN规划好后一般是不需要对Vlan进行变更。实际应用中可能会因为网络的结构的变化,而对Vlan进行重新规划,那就涉及要Vlan的删除或重建。Vlan
我有一个关于通过(主机)VLAN 接口(interface)的 docker 网络的问题。 我尝试通过 VLAN 网络从 docker 容器 ssh 到服务器,但无法建立连接(超时)。 设置: 我有两
大家好,我想了解标记和未标记数据包上的 vlan 行为。我遇到了这些声明,这听起来让我很困惑 When a tagged packet enters a port, the default VLAN
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我可以使用 scapy 发送一个基本数据包,并使用 Wireshark 在接收 PC 上检查它。 当我添加 VLAN 标记时,我无法在发起端的 wireshark 中接收数据包或捕获它 sendp(
有人知道我可以为我的 Android 设备设置 VLAN 的方法吗? Android 带有 iproute2 的 busybox 版本,所以 ip link add ... 是不允许的,ip 会声明
我正在为一些客户端 mac 通过 native vlan 在传出数据包上插入 vlan 标记。我尝试了 nh_hooks IN、OUT 和 Forward,但没有取得任何成功。 我想要的是我可以将标签
我不明白帧中何时首次引入vlan标记。添加vlan标记的是网卡适配器驱动程序还是交换机?谁设置了这个 3 位用户优先级代码点 (PCP)。 最佳答案 以太网驱动程序将 vlan 标记添加到以太网帧中。
我正在尝试创建从不同 VLAN 嗅探 DHCP 提议的软件,我的问题是我收到的数据包不包含 VLAN 标签。我正在使用原始套接字,并且尝试启用混杂模式,但无济于事。 问题是如何指示内核保持数据包中的所
我正在尝试路由带有 VLAN ID 4 标记的 Linux 机器 (Ubuntu 14.04) 流量。重要的是标记将在 Linux 本身而不是在进一步的交换机中完成。 我使用这个命令创建了一个新接口(
我的网络由多个 VLAN 组成。我已经有一台路由器正在执行将数据包从一个 Vlan 路由到另一个 Vlan 的工作。该问题发生在具有 1 个接口(interface)的 Linux 服务器上,我希望允
我有一个设置,其中交换机将 vlan 标记添加到已标记的数据包中。 进入交换机的数据包大小为1518字节(包括以太网和VLAN标记),交换机添加一个额外的vlan,数据包大小变为1522字节。 接收接
是否可以在python中编写以下命令? 在终端中: #create a vlan ip link add name Lan1 link eth0 type vlan id 10 ip addr add
我使用以太网数据包(2 层,没有 UDP/IP 或 TCP/IP)在两个节点之间进行低级通信。这些数据包内部有 VLAN 字段,我的接口(interface)配置为混杂模式,由于我可以在 Ubuntu
我对 Terraform 很陌生,所以也许我犯了一个非常基本的错误,但几个小时后也许有人可以帮助我。 所以我尝试一起对等 VLAN。我查看了多个有关它的教程,我看到的配置之间的唯一区别是我想在 2 个
我有一个 kubernetes 集群(VMware 服务器中的 3 个虚拟机)使用 Flannel 未路由网络(10.0.0.1/24)和一个带有 Nginx 反向代理的“公共(public)”私有(
问题:无法使用 Msvm_VirtualEthernetSwitchManagementService 和 AddFeatureSettings 方法将 vlan 分配给 hyper-v 虚拟机。 谁
我是一名优秀的程序员,十分优秀!