タグ付けされたVLANから予期せずIPv6アドレスを取得しているWindowsコンピューターがネットワーク上にあります。
タグなしのVLAN(ID 1)とタグ付きのVLAN(ID 2)を使用して、ルーター/コンピューターをスイッチに接続しています。簡単にするために、このVLAN2は、DHCP要求の一部としてタグ付きVLANを使用するオプションが表示されるVoIPハンドセット用であるとしましょう。
何らかの理由で、このネットワーク上のWindowsコンピューターは、2001:db8:1051:4001::/64
サブネットと2001:db8:1051:4002::/64
サブネットの両方からSLAACアドレスを取得しています。 WindowsコンピューターはタグなしVLAN /サブネットからのみアドレスを取得することを期待していました。
2001:db8:1051:4002::/64
のアドレスを持つWindowsコンピュータは、実際にはこのアドレスを何にも使用できません。ゲートウェイ2001:db8:1051:4002::1
にpingを実行できず、ゲートウェイからのpingは機能しません。私の知る限り、実際にはこのアドレスを使用することはできません。
フィルタicmp6 and ip6[40] == 134
を使用したWindowsシステムからのwiresharkキャプチャは、両方のサブネットのルートアドバタイズメントを表示します。
Linux livecdで起動された同じコンピューターからのtcpdumpキャプチャーは、イーサネットフレームに適切なVLANIDを持つ2001:db8:1051:4002::/64
アドバタイズメントを示します。 Linuxは両方のサブネットからアドレスを取得しません。
WindowsコンピューターはWindows10 1709の完全にクリーンな新規インストールであり、RealtekとBroadcomの両方のアダプターを備えたシステムでの動作を確認しました。
構成
+--------------+ +-----------+ +------------------+
| Linux Router +----+ HP Switch +----+ Windows Computer |
+--------------+ +-----------+ +------------------+
Linuxルーターのインターフェース構成
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
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;
};
スイッチ構成
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マシンはネットワーク上で通信できますか?
ポート(タグなしvlan1、タグ付きvlan2)に接続されたコンピューターは、VLAN 1サブネットから静的アドレスが与えられた場合、完全に正常に機能しますが、VLAN2サブネットでは機能しません。起こることを期待します。
ルーターでSLAACを無効にし、DHCPv6のみを使用してみましたか?
SLAAC AdvAutonomous off;
を無効にし、ステートフルDHCPv6サーバーを有効にすると、コンピューターはタグなしVLANからのみアドレスを取得します。
Eth_lan.2でRAを無効にするとどうなりますか?
クライアントはそのVLAN 2サブネットからアドレスを取得しません。ただし、IPv6をそのサブネットで動作させたいので、RAはかなり必要です。
OSでVLANサポートを正しく有効にするには、NICのドライバーがミニドライバーとともに完全にインストールされていることを確認します。
ネイティブWindowsNDISはVLANを正しくサポートしておらず、最悪の場合、VLANidを削除するだけです。
Wireshark から引用;
Windowsには、VLANのサポートメカニズムが組み込まれていません。そのようなサポートを追加する専用のドライバが存在しない限り、キャプチャできる物理インターフェイスとVLANインターフェイスは別々ではありません。
したがって、WiresharkにVLANタグが表示されるかどうかは、使用しているネットワークアダプターと、それとそのドライバーがVLANタグをどのように処理するかによって異なります。
ほとんどの「シンプルな」ネットワークアダプター(広く使用されているRealtek RTL 8139など)とそのドライバーは、これらを処理するためにVLANタグを上位層に渡すだけです。その場合、WiresharkはVLANタグを認識し、それらを処理して表示できます。
一部のより高度なアダプターは、アダプターやドライバーのVLANタグを処理します。これには、一部のIntelアダプターと、私が知る限り、Broadcomギガビットチップセット(NetXtreme/57XXベースのチップ)が含まれます。さらに、「実際の」ドライバーからの干渉を防ぐために、特殊なドライバーを備えたカードもこのパスをたどる可能性があります。
更新1
=======
MSブログリファレンスが見つかりました そこに ; Windows Core Networkingは802.1Pについて話しますが、802.1Q(VLANタギング)に関する詳細情報を提供します。
Windowsネットワークスタックは、802.1Qタグ、つまりUserPriority(Mathiasがこの投稿で説明している)とVlanIdの両方を完全にサポートしています。 ただし、スタックコンポーネント(tcpipなど)がVlanIdフィールドに作用することはありません。 Intel、Broadcomなどのベンダーは、NICハードウェアと組み合わせてミニポートドライバーにVLANを実装しています。したがって、Windowsは、ISVが必要に応じてVLANを実装できるようにしますが、ネイティブには実装しません。
–ガベ
他のMSから ブログ (これは、WindowsコンピューターがIPv6のゲートウェイにpingできない理由を説明できます(そして、送信パケット(PC->ゲートウェイ)がタグ付けされていないため、wiresharkで簡単に検証できます)タグ付けされることになっている場合))
NICは、発信パケットに802.1qタグを追加する責任があります。
その更新を念頭に置いて、私の用語「VLAN IDを削除する」は、デフォルトでは削除せず、入力としてVLAN IDを取得しますが、無視し、送信しないため、最初は少し重いものでした。後にVLANIDを出力し、そのすべての管理をNICのドライバーに任せます。