以前に VMware ESxi と VyOS を用いて3つのネットワークセグメントを接続することをやりました。今回はこれを Raspberry PI を用いて実現できないかを実験しました。
準備
前回同様、都合により3つのネットワークセグメントからのパケットはタグポートで出ているものを使用することにします。このスイッチは、 NETGEAR の GS108Ev3 です。 ESXi につながっていた LAN ケーブルを Raspberry Pi に差し替えた、と思ってもらえればと思います。
ここでは Raspberry Pi は Raspberry Pi2 を使用します。 OS は 2017-03-02 raspbian-jessie-lite.img を使用しています。
またパケットの転送を許可するために /etc/sysctl.conf に以下の設定を行っています。
net.ipv4.ip_forward=1
タグの設定
インターフェースでタグ付き (802.1Q) を扱えるようにするため以下のコマンドで設定を行います。念のためこれらの作業前には apt update を実行しておいてください。
$ sudo apt-get install vlan
ここに使用している VLAN ID の Interface らを追加していきます。前回 VLAN ID として 100, 110, 120 を使用していたためこれらを以下のようにして追加します。
# sudo vconfig add eth0 100 # sudo vconfig add eth0 110 # sudo vconfig add eth0 120
これらを実行の際に “Maybe you need to load the 8021q module, or maybe you are not using PROCFS??” と警告が出るかもしれません。続いて /etc/network/interfaces を開いて、以下の設定を記述します。
auto eth0.100 iface eth0.100 inet static address 172.16.0.254 netmask 255.255.255.0 auto eth0.110 iface eth0.110 inet static address 172.16.1.254 netmask 255.255.255.0 auto eth0.120 iface eth0.120 inet static address 192.168.100.254 netmask 255.255.255.0
設定したら再起動しておきます。この後、各ネットワークの向こう側にいる誰かに対して ping を実行してみて疎通を確認します。設定が正しく出来ていれば、応答が返ってくると思います。
補足
最後に再起動させてしまいましたが、そのままこれらを適用する方法がありました。先の警告の部分はモジュールが(そのタイミングで)読み込めていないのが問題なので、以下のように実行していくとうまく適用できると思います。
# modprobe 8021q # /etc/init.d/netwoking restart
もしPing を打った自分の側の Raspberry pi の VLAN の IP は反応して、向こうのネットワークへは到達できないときには、パケットの転送の部分で設定が出来ていない可能性があります。
まとめ
前回 ESXi と VyOS を組み合わせて処理していたタグ付き VLAN 間のルーティングを Raspberry PI2 を用いて処理させました。Raspberry Pi 単体では複数のネットワークにそのまま接続できないので、 NETGEAR のアンマネージプラス・スイッチ GS108E を組み合わせて異なるLANセグメントを接続できるようにしてみました。