2020年2月26日水曜日

RHEL 8 (CentOS 8)のifup / ifdownの中身はnmcliだった話

以前からクセで、ネットワークインターフェースの設定反映をifup/ifdownコマンドを使って実施していた。ただ、RHEL 7 (CentOS 7)以降はnmcli (nmtui)コマンドを使ったNetworkManagerによる操作が推奨されている。

RHEL 8 (CentOS 8)も登場したということで、そろそろ真面目にnmcliで反映させるようにしようとコマンドを確認していたところ、nmcliを使ってもifupifdownを使っても、表示される内容が同一であることに気が付いた。

以下、ens192のインターフェースをdown/upさせ、設定反映を行うコマンドとなる。

nmcliコマンドの場合

# nmcli c down ens192 && nmcli c up ens192
接続 'ens192' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/4)
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/5)

ifup/ifdownコマンドの場合

# ifdown ens192 && ifup ens192
接続 'ens192' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/5)
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/6)
気になったので、コマンドの中身を見てみた。

ifupとifdownの中身

RHEL 8 (CentOS 8)の場合

whichコマンドを使ってコマンドのパスを確認する。
# which ifup
/usr/sbin/ifup
# which ifdown
/usr/sbin/ifdown
結論から言うと、ifupifdownの中身は、nmcliだった。RHEL 8 (CentOS 8)の場合は、どちらを使っても同じ効果が得られるので、特に気にはしなくてよさそうだ。
#!/bin/sh
nmcli connection load "/etc/sysconfig/network-scripts/ifcfg-$1" &&
exec nmcli connection up filename "/etc/sysconfig/network-scripts/ifcfg-$1"

# cat /usr/sbin/ifdown
#!/bin/sh
nmcli connection load "/etc/sysconfig/network-scripts/ifcfg-$1" &&
exec nmcli connection down filename "/etc/sysconfig/network-scripts/ifcfg-$1"

RHEL 7 (CentOS 7)の場合

同様に、whichコマンドを使ってコマンドのパスを確認する。パスはRHEL 8 (CentOS 8)と同じとなる。
[root@t3024ce73 ~]# which ifup
/usr/sbin/ifup
[root@t3024ce73 ~]# which ifdown
/usr/sbin/ifdown
こちらは、明らかにnmcliと内容が違う。2009年のスクリプトとなっているようで、中身は/etc/sysconfig/network-scriptsの設定ファイルを読み込むような内容に見える。NetworkManagerを使っている場合は、使わないほうが安全そうだ。
[root@t3024ce73 ~]# cat /usr/sbin/ifup
#!/bin/bash
# Network Interface Configuration System
# Copyright (c) 1996-2009 Red Hat, Inc. all rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2,
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

unset WINDOW # defined by screen, conflicts with our usage

. /etc/init.d/functions

cd /etc/sysconfig/network-scripts
. ./network-functions

[ -f ../network ] && . ../network

~(以下略)~

RHEL 8とRHEL 7のマニュアル上の記載

マニュアルの記載も確認してみた。

まず、RHEL 8におけるネットワーク設定推奨の記載は以下となり、そもそもネットワークスクリプトによる設定は非推奨と明確に記載されている。

第9章 ネットワーク
Red Hat Enterprise Linux 8 では、ネットワークスクリプトが非推奨となっており、デフォルトでは提供されなくなりました。基本インストールでは、nmcli ツールを介して NetworkManager を呼び出す ifup スクリプトおよび ifdown スクリプトの新しいバージョンが提供されます。Red Hat Enterprise Linux 8 で ifup スクリプトおよび ifdown スクリプトを実行する場合は、NetworkManager が起動している必要があります。
一方、RHEL 7におけるネットワーク設定推奨の記載は以下となり、NetworkManagerがデフォルトで使用されるが、ネットワークスクリプトもサポートすると記載がある。

Red Hat Enterprise Linux におけるネットワークの設定と管理
Red Hat Enterprise Linux 7 では、NetworkManager がデフォルトのネットワークサービスを提供します。これは動的なネットワーク制御および設定デーモンで、ネットワークデバイスと接続が利用可能な間は、これらをアクティブな状態に保ちます。従来の ifcfg タイプの設定ファイルも、サポートが継続されます。詳細は、「ネットワークスクリプトによる NetworkManager の使用」を参照してください。

まとめ

以上の結果をまとめると以下となる。
OS ifup/ifdownの中身 OS推奨
RHEL 8 (CentOS 8) nmcliを使っている nmcli必須
RHEL 7 (CentOS 7) nmcliを使っていない nmcli推奨
ifup / ifdownは互換性維持のためにあるようなものと理解し、極力nmcliを使ってインターフェースの操作や設定は実施すべきだろう。

2020年2月19日水曜日

エキサイト光 → ドコモ光 + GMOとくとくBBに乗り換えた際のメリット・デメリット

自宅のインターネット回線は、光コラボの中で最安値という理由で、ずっとエキサイト光を使ってきていたのだが、ドコモケータイのプランを変更するタイミングでドコモ光 + GMOとくとくBB(以下GMOとくとくBBと記載)の組み合わせに乗り換えることにした。

ドコモ光に変更するメリット・デメリットと、回線変更前後の通信速度の違いについて記載する。

メリット

ドコモ携帯を使っていて、かつ家族など含め2回線以上ある場合は、ドコモ光が最安値になる。以下に簡単にまとめた料金比較を記載する。
回線 料金
エキサイト光 3,360円(税抜)
GMOとくとくBB 4,000円(税抜)
その他エキサイト光にはないメリットとしては以下となる。
  • ドコモ携帯料金が最大1,000円割引(通信量3GB以上利用時)。家族もドコモ携帯利用の場合は、家族の携帯料金も同様に割引される。ただし、通信量が1GB未満の場合は割引されない。常に1,000円割引されるものではないので注意。
  • キャッシュバックがある。私が申し込んだ際は20,000円のキャッシュバックと、5,000ポイントのドコモポイントがもらえるらしい。ただし、キャッシュバック受領は11ヶ月後、ドコモポイント付与は翌々月となる。
  • 3種類から選べるv6プラス対応のルーター(BUFFALO製、NEC製、ELECOM製)が無料でレンタル可能。
  • 上記ルーターでv6プラスによる接続ができ、安定した速度でインターネット通信ができる。
  • メールアドレスが付いてくる(今はGmailなど便利な無料のメールがあるのでメリットとしては小さいが)。

デメリット

従来のPPPoEを用いたインターネット接続をした場合、GMOとくとくBBはエキサイト光と比較すると、混雑時の速度低下が非常に大きい。例えば、日曜22:00頃の下り速度はわずか18Mbpsになってしまっている。


スマホなどを使っていても、明らかに通信が遅いと体感できるレベルになっている。エキサイト光を利用している際は、特にこのようなことはなかった。

したがって、GMOとくとくBBでは、v6プラス対応ルーターによる接続が必須と考えてよいだろう。v6プラスでは、以下の通り爆速である。
  • 下り通信 : 250~300Mbps
  • 上り通信 : 700~750Mbps


また、v6プラスにすると、以下2点デメリットがある。
  • IPv4接続(PPPoE)ができなくなる
  • 外部からアクセスする際に任意のポート番号が使えなくなる
私はVPN接続やNASへの接続を外部からできるようにしていたため影響を受けたのだが、決められたポート番号であれば利用可のであるため、接続ポート番号を変更することで対処できた。ポート番号を変更しても利用できるサービスであれば影響を受けないが、一部オンラインゲームなどでは影響を受けるようなので注意が必要だ。

なお、利用可能なポート番号はルーターの設定から確認できる。


通信速度

最後にエキサイト光からGMOとくとくBBに切り替えた際の、通信速度の比較を記載する。通信速度の測定は「https://selectra.jp/telecom/guides/process/speed-test」にて実施した。
回線 下り (Mbps) 上り (Mbps)
エキサイト光 185.3 91.6
GMOとくとくBB(v4) 372.9 389.9
GMOとくとくBB(v4)※混雑時 18.3 271.3
GMOとくとくBB(v6) 274.7 726.0

2020年2月12日水曜日

OSでVLANタグ付きで通信させる設定方法(RHEL編)

前回、Windows ServerにおけるVLANタグ付きでの通信設定方法を記載した。

★前回の記事はこちら↓
OSでVLANタグ付きで通信させる設定方法(Windows Server編)
https://tech-mmmm.blogspot.com/2020/02/osvlanwindows-server.html

今回はRed Hat Enterprise LInux 8.0(RHEL 8.0)におけるVLANタグ付きの通信設定方法を記載する。

環境

環境は前回と同様となる。VLANによる通信が可能なスイッチに2台のESXiを接続し、それぞれのESXiにVLANタグ付きの通信を行う仮想マシンを配置する。

以下に物理的な接続と論理的な接続を図示したものを記載する。物理的には1本のケーブルとなるが、2つのVLANで論理的にネットワーク分割を行う。使用するVLAN IDは1011と1055とする。


ハイパーバイザーの設定(ESXi)

こちらはWindowsでもRHELでも手順は変わらないため、前回の記事を参照いただきたい。

★前回の記事はこちら↓
https://tech-mmmm.blogspot.com/2020/02/osvlanwindows-server.html

OSにてVLANインターフェースを作成

  1. 作業は「NetworkManager TUI」にて行う。SSHでOSにログインし、nmtuiを実行し、「NetworkManager TUI」を開く。
  2. メニューの一番上の「接続の編集」にカーソルを移動させEnterキーで選択する。

  3. 左側のインターフェース一覧からVLAN通信を行いたいインターフェースを上下キーで選択し、右キーを押して「追加」にカーソルを移動させEnterキーで選択する。今回はens224を選択した。
  4. 接続タイプのリストが表示されるため、「VLAN」を選択する。

  5. デフォルトでは「VLAN 接続 1」といったプロファイル名になるが、すべて削除し、<インターフェース名>.<VLAN ID>といったプロファイル名に変更する。
  6. 上記プロファイル名に変更すると、以下図のように自動で「デバイス」、「親」、「VLAN id」が設定される。ちなみに、クローンのMACアドレスやMTUは通常設定しなくても問題なく通信できる。

  7. あとは、通常のインターフェースと同様、IPv4のアドレスを設定すれば完了となる。

  8. 「NetworkManager TUI」を終了し、コマンドでインターフェースの設定内容を確認する。物理NICと同じMACアドレスで、VLANインターフェースが作成されていることがわかる。
# ip a show dev ens224
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:5a:a4:c1 brd ff:ff:ff:ff:ff:ff

# ip a show type vlan
5: ens224.1011@ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:5a:a4:c1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.201/24 brd 192.168.11.255 scope global noprefixroute ens224.1011
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe5a:a4c1/64 scope link
       valid_lft forever preferred_lft forever
6: ens224.1055@ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:5a:a4:c1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.55.201/24 brd 192.168.55.255 scope global noprefixroute ens224.1055
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe5a:a4c1/64 scope link
       valid_lft forever preferred_lft forever
  1. 以上で設定は完了となる。試しにPing疎通を確認すると、2つのVLAN IDのIPアドレスを利用して疎通確認をすることができた。
# ping 192.168.11.200
PING 192.168.11.200 (192.168.11.200) 56(84) bytes of data.
64 bytes from 192.168.11.200: icmp_seq=1 ttl=128 time=0.166 ms
64 bytes from 192.168.11.200: icmp_seq=2 ttl=128 time=0.150 ms
^C
--- 192.168.11.200 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 39ms
rtt min/avg/max/mdev = 0.150/0.158/0.166/0.008 ms

# ping 192.168.55.200
PING 192.168.55.200 (192.168.55.200) 56(84) bytes of data.
64 bytes from 192.168.55.200: icmp_seq=1 ttl=128 time=0.221 ms
64 bytes from 192.168.55.200: icmp_seq=2 ttl=128 time=0.185 ms
^C
--- 192.168.55.200 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 16ms
rtt min/avg/max/mdev = 0.185/0.203/0.221/0.018 ms

2020年2月5日水曜日

OSでVLANタグ付きで通信させる設定方法(Windows Server編)

vSphereなどの仮想環境の場合は、通常ハイパーバイザーの仮想スイッチの機能でVLANタグを処理するため、通常サーバにてVLANタグ付きで通信させることはない。

ただし、仮想マシンに作成できるNICには上限があり(例えば、vSphereでは最大10)、それ以上の数のNICを仮想マシンに付与したい場合は、OSの機能にてVLANタグの設定を行い通信をさせることになる。

今回は、Windows Server 2016以降のOSにてVLANタグ付きの通信を行う設定を検証してみた。

環境

VLANによる通信が可能なスイッチに2台のESXiを接続し、それぞれのESXiにVLANタグ付きの通信を行う仮想マシンを配置する。

以下に物理的な接続と論理的な接続を図示したものを記載する。物理的には1本のケーブルとなるが、VLAN ID1011と1055の2つのVLANで論理的にネットワーク分割を行う。


ハイパーバイザーの設定(ESXi)

ESXiの仮想スイッチにてVLAN IDを4095で設定したポートグループ作成する。
  • 0 : VLANタグなし
  • 1-4094 : 仮想スイッチにてVLANタグを付与
  • 4095 : OSにてVLANタグを付与


OSにてVLANインターフェースを作成

  1. 「サーバーマネージャー」→「ローカルサーバー」にて、「NICチーミング」の「無効」の文字を選択する。


  2. 「NICチーミング」の左側の「タスク」から「チームの新規作成」を選択する。


  3. ここでチームインターフェースを「Team1」という名前として作成することにする。しかし、仮想マシンの場合、デフォルトの設定では以下メッセージが表示され作成に失敗する。
    The only valid LoadBalancingAlgorithms in a Virtual Machine are ‘TransportPorts’, ‘IPAddresses’, and ‘MacAddresses’



    要約すると、仮想マシンの場合は負荷分散モードに「動的」は設定できない旨のメッセージとなる。したがって、負荷分散モードを「アドレスのハッシュ」に設定することで対応する。

  1. 「チームインターフェース」タブにて、作成したチームインターフェースを右クリックし、「プロパティ」を選択する。



  2. 「VLANメンバーシップ」の欄にて「特定のVLAN」を選び、VLAN IDを入力し、「OK]を選択する。インターフェース名は自動で「Team1 - VLAN 1011」といったように、VLAN IDの名前が付与される。



  3. VLANを追加する場合は、チームインターフェースを選択した状態で、右側の「タスク」から「インターフェイスの追加」を選択する。



  4. 先ほどと同様に「VLANメンバーシップ」の欄にて「特定のVLAN」を選び、VLAN IDを入力する。



  5. ネットワークアダプタを確認すると、以下の3つのアダプタが作成されているはずだ。VLAN 1011とVLAN 1055のNICに通常のインターフェースと同様にIPアドレスやサブネットマスクを設定する。
    • Team1
    • Team1 - VLAN 1011
    • Team1 - VLAN 1055



  6. 以上で設定は完了となる。試しにPing疎通を確認すると、2つのVLAN IDのIPアドレスを利用して疎通確認をすることができた。



人気の投稿