[CentOS 7 + SoftEther VPN] レッツノート CF-N9 にローカルブリッジ専用 NIC を追加する方法
USB タイプの NIC をローカルブリッジ用にする
レッツノートに限らず普通のパソコンの場合、イーサネット用の物理ポート (LAN ポート) は 1 つだけ搭載されているものです。MacBook Air のように LAN ポートが 1 つも搭載されていないノートパソコンも珍しくなくなりました。
それですでにオンボードの NIC は 172.16.1.2 という IP を割り振って使っている状況です。僕はローカルブリッジ用の NIC は別物理 NIC にしたいので USB タイプの NIC (以下 USB-NIC) をレッツノートに接続して使うことにしました。
UGREEN というメーカーのこの NIC です。↓
これを使えるようにしていきます。
ローカルブリッジを軽くおさらい
ローカルブリッジとは何か?まず大雑把に理解しましょう。ブリッジという名前がつくことからもわかるように何かと何かをくっつけることを意味します。ローカルブリッジとは、
- 仮想 HUB と物理的な LAN をつなげる
為のものです。
- 仮想 HUB は SoftEther VPN サーバの中核要素でソフト的に存在しているものです。当然僕の場合は、CentOS 上で稼働しているわけです。
- 物理的な LAN というのは我が家の LAN (ネットワーク) のことを指しています。仮想 HUB から我が家の LAN に抜けていくための出入り口=ドア、となるのが今回追加する USB タイプの NIC です。
外出先からインターネットを介して自宅のネットワークにアクセスすることをリモートアクセスといいますが、これを実現するために SoftEther VPN サーバを正しく設定することで外出先から仮想 HUB につながります。
これからやる設定によって、仮想 HUB と自宅ネットワークが接続されれば、その結果として外出先から自宅ネットワークまでが接続されることになります。
もともと VPN を使いたい理由が、「外出先から自宅内にあるコンピュータにアクセスしたいから」がほとんどだと思いますが、「外出先から VPN サーバまでの接続」と「VPN サーバと自宅ネットワークの接続」の 2 つが組み合わさっているとも言えます。
- 外出先から VPN サーバまでの接続:L2TP/IPsec, SSL-VPN, OpenVPN 等 を使う
- VPN サーバと自宅ネットワークの接続:ローカルブリッジを使う
と分けて考えても良いでしょう。
USB-NIC をどこに挿すかが重要である
これ案外落とし穴になっているかもしれません。
レッツノート CF-N9 には USB ポートが 3 つあります。右サイドに 1 つ、左サイドに 2 つです。で、右サイドの USB ポートに挿しても反応なし・認識せずでしたが、左サイドの USB ポートに挿すと認識しました。
UGREEN 以外に PLANEX 製の USB-NIC も試しましたが同じように右サイドの USB ポートでは認識せず、左側だと認識しました。
こういうの厄介です。
CentOS が USB-NIC を認識したのを確認するコマンド
以下のような感じで CentOS が USB-NIC を認識しているのを確認することができます。
$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) $ lsusb Bus 002 Device 003: ID 0b95:7720 ASIX Electronics Corp. AX88772 Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub $ nmcli d デバイス タイプ 状態 接続 virbr0 bridge 接続済み virbr0 enp0s25 ethernet 接続済み enp0s25 virbr0-nic tap 接続済み virbr0-nic wlp10s0 wifi 切断済み -- enp0s29u1u2 ethernet 利用不可 -- lo loopback 管理無し -- $ nmcli connection show 名前 UUID タイプ デバイス virbr0-nic 7c735ad4-a7a0-44be-90de-faa35a61f383 generic virbr0-nic virbr0 6c28f115-6005-464b-8bb0-05283cfd02eb bridge virbr0 enp0s25 f8b3eedd-8b25-4b42-844c-f19170d437b4 802-3-ethernet enp0s25 有線接続 1 28ab97cb-901d-4b05-879f-5c6271fa04cc 802-3-ethernet -- $ dmesg | grep enp0s29 [ 136.083401] IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready [ 136.847222] IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready $ sudo grep enp0s29 /var/log/messages May 3 18:30:32 localhost NetworkManager[761]: <info> (eth0): interface index 6 renamed iface from 'eth0' to 'enp0s29u1u2' May 3 18:30:32 localhost NetworkManager[761]: <info> (enp0s29u1u2): device state change: unmanaged -> unavailable (reason 'managed') [10 20 2] May 3 18:30:32 localhost kernel: IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready May 3 18:30:33 localhost kernel: IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready May 3 18:30:33 localhost NetworkManager[761]: <info> (enp0s29u1u2): created default wired connection '有線接続 1' $
以上から CentOS はこの USB-NIC を enp0s29u1u2 というインタフェースと認識したようです。
仮想 HUB 用 NIC の設定
ではこの USB-NIC をローカルブリッジ用に設定していきます。/etc/sysconfig/network-scripts ディレクトリに設定ファイルを 1 つ作成します。
$ cd /etc/sysconfig/network-scripts/ $ ls -l ifcfg-* -rw-r--r--. 1 root root 326 3月 23 2016 ifcfg-enp0s25 -rw-r--r--. 1 root root 254 9月 16 2015 ifcfg-lo $ cp ifcfg-enp0s25 ifcfg-enp0s29u1u2 cp: 通常ファイル `ifcfg-enp0s29u1u2' を作成できません: 許可がありません $ sudo cp ifcfg-enp0s25 ifcfg-enp0s29u1u2 [sudo] password for nobi: $ sudo vi ifcfg-enp0s29u1u2
今 172.16.1.2 の IP を割り当てている NIC の設定ファイルをコピーして作りました。以下のような感じです。
$ ls -ltr ifcfg-* -rw-r--r--. 1 root root 254 9月 16 2015 ifcfg-lo -rw-r--r--. 1 root root 326 3月 23 2016 ifcfg-enp0s25 -rw-r--r--. 1 root root 281 5月 3 23:20 ifcfg-enp0s29u1u2 $ cat ifcfg-enp0s29u1u2 TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=no IPV6_DEFROUTE=no IPV6_FAILURE_FATAL=no NAME=enp0s29u1u2 UUID=28ab97cb-901d-4b05-879f-5c6271fa04cc DEVICE=enp0s29u1u2 ONBOOT=yes IPADDR=0.0.0.0 PREFIX=32 IPV6_PEERDNS=no IPV6_PEERROUTES=no $
sudo systemctl restart network コマンドでネットワークサービスを再起動した後、LAN ケーブルをこの USB-NIC と自宅ネットワークにある物理 HUB と接続してどうなったかを確認します。
$ nmcli d デバイス タイプ 状態 接続 virbr0 bridge 接続済み virbr0 enp0s25 ethernet 接続済み enp0s25 enp0s29u1u2 ethernet 接続済み enp0s29u1u2 virbr0-nic tap 接続済み virbr0-nic wlp10s0 wifi 切断済み -- lo loopback 管理無し -- $ nmcli connection show 名前 UUID タイプ デバイス virbr0-nic 7c735ad4-a7a0-44be-90de-faa35a61f383 generic virbr0-nic virbr0 6c28f115-6005-464b-8bb0-05283cfd02eb bridge virbr0 enp0s25 f8b3eedd-8b25-4b42-844c-f19170d437b4 802-3-ethernet enp0s25 enp0s29u1u2 28ab97cb-901d-4b05-879f-5c6271fa04cc 802-3-ethernet enp0s29u1u2 $ dmesg | grep enp0s29 [ 136.083401] IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready [ 136.847222] IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready [17543.392279] IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready [17543.395601] IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready [17762.357212] asix 2-1.2:1.0 enp0s29u1u2: unregister 'asix' usb-0000:00:1d.0-1.2, ASIX AX88772 USB 2.0 Ethernet [17763.008758] IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready [17763.773797] IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready [17776.438696] asix 2-1.2:1.0 enp0s29u1u2: unregister 'asix' usb-0000:00:1d.0-1.2, ASIX AX88772 USB 2.0 Ethernet [17777.066521] IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready [17777.829924] IPv6: ADDRCONF(NETDEV_UP): enp0s29u1u2: link is not ready [17779.767968] IPv6: ADDRCONF(NETDEV_CHANGE): enp0s29u1u2: link becomes ready [17779.768822] asix 2-1.2:1.0 enp0s29u1u2: link up, 100Mbps, full-duplex, lpa 0xC1E1 [17788.088742] IPv6: ADDRCONF(NETDEV_CHANGE): enp0s29u1u2: link becomes ready [17788.090005] asix 2-1.2:1.0 enp0s29u1u2: link up, 100Mbps, full-duplex, lpa 0xC1E1 $ ip addr show enp0s29u1u2 8: enp0s29u1u2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0e:c6:c1:4d:e0 brd ff:ff:ff:ff:ff:ff inet6 fe80::20e:c6ff:fec1:4de0/64 scope link valid_lft forever preferred_lft forever $
リンクは 100Mbps の全二重で上がってきました。IP アドレスの設定はなされていませんが、IPv6 はどうなんだろう。動いているんだろうか。定かではないがこれで一旦よしとする。