首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows计算机从标记的VLAN中获取SLAAC IPv6

Windows计算机从标记的VLAN中获取SLAAC IPv6
EN

Server Fault用户
提问于 2018-04-13 21:57:58
回答 1查看 1.6K关注 0票数 8

我有一个网络上的windows计算机,它不出所料地从标记的VLAN中获得了一个IPv6地址。

我有路由器/计算机连接到一个没有标签的vlan (id 1)和标记(id 2)的交换机上。为了简单起见,让我们假设这个VLAN2是针对VoIP手机的,它将看到使用标记的vlan作为DHCP请求的一部分的选项。

出于某种原因,这个网络上的Windows计算机正在从2001:db8:1051:4001::/642001:db8:1051:4002::/64子网中获取一个SLAAC地址。我预计Windows计算机只会从无标记的VLAN/Subnet中获取地址。

具有来自2001:db8:1051:4002::/64的地址的windows计算机将无法实际使用此地址进行任何操作。它不能平分网关2001:db8:1051:4002::1,网关的ping也不能工作。据我所知,它实际上不能以任何方式使用这个地址。

带有过滤器icmp6 and ip6[40] == 134的wireshark捕获将显示两个子网的路由广告。

从引导到livecd的同一台计算机上捕获的tcpdump将显示以太网帧中具有适当vlan的2001:db8:1051:4002::/64广告。Linux并不能从两个子网中获得地址。

Windows计算机是全新安装的Windows 10 1709,我在Realtek和Broadcom适配器的系统上都看到了这种行为。

配置

代码语言:javascript
复制
 +--------------+    +-----------+    +------------------+
 | Linux Router +----+ HP Switch +----+ Windows Computer |
 +--------------+    +-----------+    +------------------+

Linux路由器接口配置

代码语言:javascript
复制
3: eth_lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 0c:c4:7a:14:c7:fd brd ff:ff:ff:ff:ff:ff
    inet 10.2.25.1/24 brd 10.2.25.255 scope global eth_lan
       valid_lft forever preferred_lft forever
    inet6 2001:db8:1051:4001::1/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::ec4:7aff:fe14:c7fd/64 scope link
       valid_lft forever preferred_lft forever
5: eth_lan.2@eth_lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 0c:c4:7a:14:c7:fd brd ff:ff:ff:ff:ff:ff
    inet 10.2.26.1/24 brd 10.2.26.255 scope global eth_lan.2
       valid_lft forever preferred_lft forever
    inet6 2001:db8:1051:4002::1/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::ec4:7aff:fe14:c7fd/64 scope link
       valid_lft forever preferred_lft forever

Linux RADVD Config

代码语言:javascript
复制
interface eth_lan
{
    AdvSendAdvert on;
    AdvManagedFlag on;
    AdvOtherConfigFlag on;
    MaxRtrAdvInterval 90;
    MinRtrAdvInterval 30;
    prefix ::/64
    {
    };
};
interface eth_lan.2
{
    AdvSendAdvert on;
    MaxRtrAdvInterval 90;
    MinRtrAdvInterval 30;
    prefix ::/64
    {
    };
    AdvDefaultPreference low;
};

开关配置

代码语言:javascript
复制
HP-2530-24G-PoEP# show running-config

Running configuration:

; J9773A Configuration Editor; Created on release #YA.15.14.0007
; Ver #05:18.63.ff.37.27:91
hostname "HP-2530-24G-PoEP"
snmp-server community "public" unrestricted
vlan 1
   name "DEFAULT_VLAN"
   untagged 1-28
   ip address dhcp-bootp
   exit
vlan 2
   name "VLAN2"
   tagged 1-28
   no ip address
   exit

问题:

为什么Windows系统从标记的VLAN中获取一个非功能的IPv6地址?是否有任何方法可以在不禁用VLAN-2上的IPv6或在Windows系统连接的端口上标记该VLAN的情况下停止此操作?

对评论中提出的问题的答复

如果指定静态IPv6地址,Windows计算机是否能够在网络上进行通信?

如果从VLAN-1子网给出静态地址,连接到端口(无标记vlan1,标记vlan2)的计算机将完全正常工作,但不会在VLAN2子网上工作,这正是我所期望的。

您是否尝试过禁用路由器上的SLAAC,并且只使用DHCPv6?

如果我禁用AdvAutonomous off;并启用有状态的DHCPv6服务器,计算机将只能从无标记的DHCPv6服务器上获得一个地址。

如果在eth_lan.2上禁用RA会发生什么?

客户端将不会从那个VLAN 2子网中获得地址。不过,我希望IPv6能够在子网上工作,因此几乎需要RA。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-04-18 18:40:34

我将确保NIC的驱动程序与他们的迷你河完全安装,以支持操作系统中的VLAN支持。

本机Windows不支持正确的VLAN,在最坏的情况下它只会删除VLANid。

引用Wireshark

Windows没有内置的VLAN支持机制。没有单独的物理接口和VLAN接口可以捕获,除非有一个专门的驱动程序添加了这种支持。因此,您是否在Wireshark中看到VLAN标记将取决于您拥有的网络适配器以及它及其驱动程序如何处理VLAN标记。大多数“简单”的网络适配器(例如,广泛使用的Realtek 8139)及其驱动程序只需将VLAN标记传递到上层以处理这些问题。在这种情况下,Wireshark将看到VLAN标记,并能够处理和显示它们。一些更复杂的适配器将处理适配器和/或驱动程序中的VLAN标记。这包括一些英特尔适配器和,据我所知,布罗德康千兆位芯片组(基于NetXtreme/57 as芯片)。此外,有专门驱动程序的卡也可能遵循这条路径,以防止来自“真正”驱动程序的干扰。

更新1

=======

找到了一个微软博客参考那里;Windows网络讨论了802.1P,但是他们提供了更多关于802.1Q (VLAN标记)的信息

WindowsNetworking堆栈完全支持802.1Q标记,即UserPriority (正如Mathias在本文中讨论的那样)和VlanId。但是,没有堆栈组件(tcpip等)曾经在VlanId字段上执行操作。供应商,如Intel,Broadcom等,结合NIC硬件,在其微型端口驱动程序中实现VLAN。因此,Windows使ISV能够实现VLAN (如果他们愿意的话),但并不是本机实现的。-加布

从另一个MS 博客 (这可以解释为什么您的Windows计算机不能平移IPv6 6的S网关(并且很容易用wireshark验证,因为即使应该标记出的包(PC->网关)也会被取消))

您的NIC负责将802.1q标记添加到传出数据包。

考虑到这个更新,我的术语“剥掉vlan id”一开始有点重,因为它在默认情况下不会删除它,它会将vlan id作为输入,但是忽略它,它只是不发送vlan id之后,并将所有的管理留给NIC的驱动程序。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/907602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档