VLANを追加

今度は一つのインタフェースにIPアドレスを降るのではなく、VLANタグを追加して、そこにIPアドレスを振ってみます。

まずはインタフェースの状態を確認。今回はPC側でUSBで増設したインタフェースに対して試してみます。インタフェース名の下6桁やMACアドレスなどは掲載時にXXに置換しています。

$ ip -s -d addr show dev enx384b76XXXXXX
3: enx384b76XXXXXX: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 38:4b:76:XX:XX:XX brd ff:ff:ff:ff:ff:ff promiscuity 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 
    inet 192.168.0.253/24 brd 192.168.0.255 scope global noprefixroute enx384b76XXXXXX
       valid_lft forever preferred_lft forever
    inet6 fe80::XXXX:XX:XXXX:XXXX/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    4170690    14491    0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    3975503    37565    0       0       0       0

VLANを作成してみます

$ sudo ip link add link enx384b76XXXXXX name vlan100 type vlan id 100

結果を確認します(関係ないインタフェースの情報は削除しています)

$ ip -s -d addr show
3: enx384b76XXXXXX: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 38:4b:76:XX:XX:XX brd ff:ff:ff:ff:ff:ff promiscuity 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 
    inet 192.168.0.253/24 brd 192.168.0.255 scope global noprefixroute enx384b76XXXXXX
       valid_lft forever preferred_lft forever
    inet6 fe80::XXXX:XX:XXXX:XXXX/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    4170690    14491    0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    3978513    37579    0       0       0       0       
7: vlan100@enx384b76XXXXXX: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 38:4b:76:XX:XX:XX brd ff:ff:ff:ff:ff:ff promiscuity 0 
    vlan protocol 802.1Q id 100 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0

IPアドレスを割り振ってみます。

$ sudo ip addr add 192.168.1.253/24 brd 192.168.1.255 dev vlan100

結果を確認します。

$ ip -s -d addr show dev vlan100
7: vlan100@enx384b76XXXXXX: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 38:4b:76:XX:XX:XX brd ff:ff:ff:ff:ff:ff promiscuity 0 
    vlan protocol 802.1Q id 100 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 
    inet 192.168.1.253/24 brd 192.168.1.255 scope global vlan100
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0

この状態だとインタフェースがDOWNのままなので、起動します。

$ sudo ip link set dev vlan100 up

結果を確認します。

$ ip -s -d addr show dev vlan100
7: vlan100@enx384b76XXXXXX: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 38:4b:76:XX:XX:XX brd ff:ff:ff:ff:ff:ff promiscuity 0 
    vlan protocol 802.1Q id 100 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 
    inet 192.168.1.253/24 brd 192.168.1.255 scope global vlan100
       valid_lft forever preferred_lft forever
    inet6 fe80::XXXX:XXXX:XXXX:XXX/64 scope link 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    0          0        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    3181       23       0       0       0       0

この状態では、192.168.0.0/24 にアクセスするとタグ無しで、192.168.1.0/24 にアクセスすると VLANID=100 の802.1Qタグありで通信することになります。

次に、その先のスイッチの設定です。ここではTP-LINKのTL-SG105Eを使っています。

PC側でVLANなしのアドレスの方で192.168.0.253/24を振っているので、こちらを使ってこのスイッチのデフォルトIPアドレスの場合の管理画面へ http://192.168.0.1 にアクセスして admin/admin(初期パスワードの場合)でログインします。

802.1Q VLANの設定で、VLAN ID 100を設定して、このPCが繋がっているポート5をTagged Ports に、その先で Raspberry Pi が繋がっているポート1をUnttaged Ports に設定します。

設定後は上記のような感じです。画面の上半分は設定を行う画面で、VLAN IDのところに設定対象のVLAN IDを入れてから、各ポートの設定内容にチェックをして「Add/Modify」を押して使います。
下半分が設定状況で、VLAN IDが100の行を見ると、Member Ports が 1,5 で、Tagged Ports が 5、Unttaged Ports が 1になっています。ですので、ポート5には802.1Qタグが付いた状態で、ポート1には802.1Qタグがない状態で通信することがわかります。
これだけではダメで、ポート1のPVIDを100に設定して、Raspberry Piとの通信時に使うポート1の通信時に802.1Qタグの付け外しをさせます。

これで、Raspberry Piにpingを打つと帰ってくるようになります。

$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.07 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.435 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.517 ms
^C
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2031ms
rtt min/avg/max/mdev = 0.435/0.676/1.077/0.286 ms

もちろん、SSHでもログインできます。同様のことは Raspberry Pi でもできると思いますが、ip コマンドを使った設定は再起動で失われてしまいます。

永続的に使うには・・・NetworkManegerでやるのが簡単でした・・・。というか、はじめからLinuxMintには入ってた・・・。

以下は設定後のスクリーンショットです。説明いらないくらい簡単のような。

シェル上でも

$ export LANG=jp_JP.UTF-8
$ nmtui

こんな感じで設定できるし、楽ちんです。

で、tuiでできるということは、Raspberry Pi でもsshでログインして、

$ sudo apt-get install network-manager
$ sudo systemctl enable NetworkManager.service
$ sudo systemctl start NetworkManager.service
$ export LANG=ja_JP.UTF-8
$ nmtui

で、

という感じで設定ができてしまいます。

追加できるモジュール?もこんなにたくさん。

$ sudo apt list Network*
Listing... Done
network-config/stable 0.2-2 all
network-manager-config-connectivity-debian/stable 1.14.6-2+deb10u1 all
network-manager-dev/stable 1.14.6-2+deb10u1 armhf
network-manager-fortisslvpn-gnome/stable 1.2.8-2 armhf
network-manager-fortisslvpn/stable 1.2.8-2 armhf
network-manager-gnome/stable 1.8.20-1.1 armhf
network-manager-iodine-gnome/stable 1.2.0-3 armhf
network-manager-iodine/stable 1.2.0-3 armhf
network-manager-l2tp-gnome/stable 1.2.10-1 armhf
network-manager-l2tp/stable 1.2.10-1 armhf
network-manager-openconnect-gnome/stable 1.2.4-2 armhf
network-manager-openconnect/stable 1.2.4-2 armhf
network-manager-openvpn-gnome/stable 1.8.10-1 armhf
network-manager-openvpn/stable 1.8.10-1 armhf
network-manager-pptp-gnome/stable 1.2.8-2 armhf
network-manager-pptp/stable 1.2.8-2 armhf
network-manager-ssh-gnome/stable 1.2.10-1 armhf
network-manager-ssh/stable 1.2.10-1 armhf
network-manager-strongswan/stable 1.4.4-2 armhf
network-manager-vpnc-gnome/stable 1.2.6-2 armhf
network-manager-vpnc/stable 1.2.6-2 armhf
network-manager/stable,now 1.14.6-2+deb10u1 armhf [installed]
networkd-dispatcher/stable 2.0-2 all
networking-bagpipe-doc/stable 9.0.0-2 all
networking-bgpvpn-doc/stable 9.0.0-1 all
networking-mlnx-common/stable 1:13.1.0-2 all
networking-mlnx-eswitchd/stable 1:13.1.0-2 all

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)