0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Linode の VLAN (Virtual LAN) の設定について書きます。VLAN を使うと、プライベートネットワークを組むことができます。

VLANは、プライベートな仮想ローカルエリアネットワークで、Linode ユーザーなら追加料金なしで利用できます。VLAN は OSI ネットワークモデルの第2層で動作し、他のネットワークから完全に分離できます。VLAN は仮想ネットワークスイッチのように機能し、同じ VLAN に接続されたすべてのインスタンスは、同じ物理イーサネットネットワークに直接接続されているように互いに通信することができます。ネットワーク外のデバイスは、プライベートネットワーク内のトラフィックを見ることができません。

この先を読む前に、以下のページを参照して Linode のネットワーク構成を理解してください。

VLAN の利用ケース

VLAN を使う理由を整理します。

  1. Linode VM インスタンス間の通信をセキュアにする
  2. Linode VM インスタンス間の通信を最適化する
  3. Linode VM インスタンス間のアウトバウンド通信費用を削減する

VLAN の設定はとても簡単ですので、設定方法を紹介していきます。

Linode の VLAN

VLAN についてはユーザーガイドに記載されています。この記事は、この手順どおりに動かした情報をもとにしています。

執筆時点で日本リージョンは VLAN に対応していません。

VLAN ネットワーク構成

2つの Linode インスタンスを作成し VLAN を構成します。一台目はパブリック IP を使ってインターネットに公開し、二台目はパブリック IP を無効にし VLAN 内のサーバーからしかアクセスできないようにします。
VLAN Diagram.png

VLAN を使う 2つの VM

パブリック IP で公開するフロントサーバー (linode-ap-south-01-front) と VLAN でのみ動作する DMZ 内を想定したサーバー (linode-ap-south-02-dmz) を用意します。

Screen Shot 2023-01-20 at 7.31.46 PM.jpg

最終的に下図の構成となります。
VLAN Diagram Example 2.png

VM を作成するときに 下図の画面から VLAN を割り当てることもできますが、今回はその設定は使わず、インスタンスを作成した後に VLAN を設定する例を書きます。
Screen Shot 2023-01-20 at 9.48.35 PM.jpg

VLAN の IP アドレスを決定する

VLAN のネットワークの IP アドレスを決めます。今回の例では次の2つの IP アドレスを使います。

  • 10.0.0.1/24
  • 10.0.0.2/24

サブネットマスクは 255.255.255.0 の構成となります。次のような図でも表現できます。
IP-CIDR.jpg

参考:https://cidr.xyz

VLAN を VM に設定する

フロントサーバーと DMZ サーバーの両方に VLAN を設定します。

フロントサーバーの設定

Cloud Manager から Linode のインスタンスを設定し、Configurations タブから編集します。
front-config.jpg

ネットワークインタフェースの eth0 には Public Internet が設定されています。今回は、eth1 に VLAN を設定します。
front-config-eth1.jpg

設定を保存すると eth1 の設定が表示されます。
Screen Shot 2023-01-20 at 9.57.11 PM.jpg

バックエンドサーバーの設定

フロントサーバーと同様に設定します。設定後、インスタンスのネットワークインタフェースは次のように表示されます。
dmz-config-eth1-done.jpg

VM のネットワークを確認する

フロントサーバーの ifconfig

eth1 に 10.0.0.1 が割り当てられています。

root@linode-ap-south-01-front:~# ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet XXX.XXX.XXX.XXX  netmask 255.255.255.0  broadcast XXX.XXX.XXX.255
        inet6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX  prefixlen 64  scopeid 0x20<link>
        inet6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX  prefixlen 64  scopeid 0x0<global>
        ether f2:3c:93:d8:03:c9  txqueuelen 1000  (Ethernet)
        RX packets 19715  bytes 2375776 (2.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19264  bytes 2908867 (2.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.1  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80:XXXX:XXXX:XXXX:XXXX:XXXX  prefixlen 64  scopeid 0x20<link>
        ether 90:de:01:d8:03:c9  txqueuelen 1000  (Ethernet)
        RX packets 330  bytes 35482 (35.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 250  bytes 28578 (28.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

DMZ サーバーのパブリックIPの無効化

DMZ サーバーのパブリック IP をダウンさせます。

ifconfig eth0 down

この作業をするとパブリックIPの通信は遮断されます。実行後は VLAN にあるサーバーからしか ssh でログインできなくなります。

DMZ サーバーの ifconfig

eth0 は UP されていません。eth1 に 10.0.0.2 が割り当てられています。

root@linode-ap-south-02-dmz:~# ifconfig -a
eth0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether f2:3c:93:d8:03:31  txqueuelen 1000  (Ethernet)
        RX packets 1201  bytes 81703 (81.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1281  bytes 96372 (96.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80:XXXX:XXXX:XXXX:XXXX:XXXX  prefixlen 64  scopeid 0x20<link>
        ether 90:de:01:d8:03:31  txqueuelen 1000  (Ethernet)
        RX packets 1015  bytes 96518 (96.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 847  bytes 133734 (133.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

DMZ サーバーの Public IP の無効化の確認

パブリック IP が無効化されています。

% ping 172.XXX.XXX.XXX
PING 172.XXX.XXX.XXX (172.XXX.XXX.XXX): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
^C
--- 172.XXX.XXX.XXX ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss

VLAN 内での疎通確認

DMZ からフロントサーバー (10.0.0.1) への ping の結果です。

root@linode-ap-south-02-dmz:~# ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.402 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.468 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.398 ms
^C

フロントサーバーからの DMZ サーバー(10.0.0.2) への ping の結果です。

root@linode-ap-south-01-front:~# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.526 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.537 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.501 ms
^C

DMZ サーバーの eth0 に VLAN をアサインする

ifconfig eth0 down にて、eth0 を無効化しましたが、リブートの度に無効化が必要になります。Linode の Cloud Manager では eth0 に VLAN を割り当てられます。

Screen Shot 2023-01-20 at 10.40.33 PM.jpg

リブートすると次のように eth0 に VLAN が割り当てられています。

root@linode-ap-south-02-dmz:~# ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80:XXXX:XXXX:XXXX:XXXX:XXXX  prefixlen 64  scopeid 0x20<link>
        ether 90:de:00:d8:03:31  txqueuelen 1000  (Ethernet)
        RX packets 1  bytes 130 (130.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 94  bytes 4324 (4.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

フロントサーバーから DMZ のサーバーに疎通できます。

root@linode-ap-south-01-front:~# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.606 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.411 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.412 ms
^C

フロントサーバーから DMZ のサーバーにログインできます。

root@linode-ap-south-01-front:~# ssh 10.0.0.2
root@10.0.0.2's password: 
Welcome to Ubuntu 22.10 (GNU/Linux 5.19.0-29-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri Jan 20 02:13:45 PM UTC 2023

Last login: Fri Jan 20 14:12:37 2023 from 10.0.0.1
root@linode-ap-south-02-dmz

DMZ サーバーからフロントサーバーにも疎通できます。

root@linode-ap-south-02-dmz:~# ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.369 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.367 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.328 ms
^C
--- 10.0.0.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4052ms
rtt min/avg/max/mdev = 0.328/0.360/0.387/0.019 ms

まとめ

VLAN の設定は簡単です。VLAN を使うとプライベートネットワークを構成できるので、セキュアな環境を提供できます。VLAN は Linode を使っている方には無償で利用できる機能です。VLAN 内のネットワークの転送は課金されません。また、高速なネットワーク通信も可能となります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?