📖

え、PC にもトランクポート使えるの?

2024/08/16に公開

はじめに

突然ですが、アクセスポートとトランクポートの使い分けはどのようにしていますか?
一般的にはスイッチ同士の接続にはトランクポートを使用し、PC などの末端機器を接続するポートはアクセスポートを使用すると思います。

トランクポートはタグ VLAN とも呼ばれ、イーサネットフレームに VLAN ID を付加します。

タグのついたフレームを受け取った機器は、そのタグを処理する能力が必要です。つまり、PC が接続しているスイッチのポートにトランクポートを設定した場合、PC がタグ VLAN を処理する能力を持っている必要があります。

構成

今回作成した実機の環境は、下図の通りです。SW01Fa0/2 ポートに流れるパケットを Fa0/24 にコピーして、この先に繋がっている別 PC で Wireshark を動かして待機しています。PC が使用する VLAN を 100、スイッチの管理用 VLAN を 200 とします。スイッチ間は 100 と 200 のトランクポートにします。

SW01# show monitor session 1
Session 1
---------
Type                   : Local Session
Source Ports           : 
    Both               : Fa0/1
Destination Ports      : Fa0/24
    Encapsulation      : Replicate
          Ingress      : Disabled

実際にやってみた

Mac PC でやってみました。

2017年の MacBook Air (まだ、りんごが光ってるやつ) は、802.1Q に対応していました。

下記のように VLAN インターフェース?を作成し、物理 NIC (親 interface) に紐付けます。そして、作成した VLAN インターフェースに IP アドレスを付与します。

$ ifconfig [interface] create
$ ifconfig [interface] vlan [VLAN ID] vlandev [親 interface]
$ ifconfig [interface][IP address]
  • VLAN インターフェース名 : vlan100
  • VLAN ID : 100
  • 親 interface : en3
  • IP アドレス : 172.16.0.1/24

IP アドレスは親インターフェースではなく、作成した VLAN インターフェースに付与します。親インターフェースには、何も設定されていません。わかりにくいですね。

sh-3.2# ifconfig vlan100 create
sh-3.2# ifconfig vlan100 vlan 100 vlandev en3
sh-3.2# ifconfig vlan100 172.16.0.1/24
sh-3.2# ifconfig en3
en3: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500	options=6467<RXCSUM,TXCSUM,VLAN_MTU,TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
	ether 00:e0:4c:68:06:d5 
	inet6 fe80::10a3:c81b:75dc:5a8%en3 prefixlen 64 secured scopeid 0x6 
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect (100baseTX <full-duplex>)
	status: active
sh-3.2# ifconfig vlan100
vlan100: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=6063<RXCSUM,TXCSUM,TSO4,TSO6,PARTIAL_CSUM,ZEROINVERT_CSUM>
	ether 00:e0:4c:68:06:d5 
	inet 172.16.0.1 netmask 0xffffff00 broadcast 172.16.0.255
	vlan: 100 parent interface: en3
	media: autoselect (100baseTX <full-duplex>)
	status: active

そして、PC が接続しているポートをトランクの設定にします。

SW01#show run int fas0/2
Building configuration...

Current configuration : 123 bytes
!
interface FastEthernet0/2
 switchport access vlan 100
 switchport trunk allowed vlan 100,200
 switchport mode trunk
end

この状態で、PC01 から PC02 に ping を打ちます。

スイッチ - PC 間でトランクポートの設定をしていますが、正常に ping を打つことができました。キャプチャを見ても、VLAN タグが付けられていることがわかります。

おわりに

今回は、PC にトランクポートを設定する方法について紹介しました。トランクポートはスイッチ間で使用するものであり、PC 用には使えないものだと思っていました。接続する PC によって使用する VLAN が変わるダイナミック VLAN みたいなものが実現できるのかと思って試してみました。

今回は CLI で設定しましたが、GUI でも設定可能です。Windows でも対応しているかもしれません。気になる方は方法を探してみてください。

Discussion