web-dev-qa-db-ja.com

タグ付きからSLAACIPv6を取得するWindowsコンピューターVLAN

タグ付けされた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はかなり必要です。

4
Zoredache

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のドライバーに任せます。

4
yagmoth555