2016-07-31

Animes in the 2nd quarter of 2016

アニメは IT エンジニアの必須科目です。 ということで簡単なレビューを。

三輪士郎キャラ動画は初見だが、想像以上にアニメと相性が良かった。特に女子キャラは雰囲気があって良い。なのに、最後のヒロインの行動が訳ワカメだったのが残念。

前期より視聴。前期で広げた話にどう収拾をつけるか注目していたが、どうやら風呂敷を広げ過ぎた模様。加えて、視聴者の記憶力にももう少し配慮して欲しかった。

初見で女子向けか?と思ったらやっぱり少女マンガ原作。しかし女子キャラは男ウケしそうな感じで、男子が見ても十分イケる。反面、男子キャラは同性からみるとどれもイケてない。

前期より視聴。集英社は余程これを推したいらしいが、話の方はどんどん面白くなくなっていく。もはや進撃の対抗馬にすらならない。もう次回以降は見ないと断言できる。

作品自体はユニークで良く出来ていると思う。しかし声優がキャラに勝ちすぎて、見ていてずっと違和感が拭えなかった。この作品に限れば、特徴のある有名声優を使ったのは失敗だったと思う。

前期より視聴。前回のテンプレ対決を勝ち抜いただけあって、今回も王道の展開。つまりは意外性がなく退屈ということ。むしろこの流れで 3 期目をやることが最も意外だった。

絵を見て期待してなかったが、ヒロインがダメ可愛い。こんなん反則やろ。ネット上では最終話が炎上したっぽいけど、原作を知らないので気にしない。今回は日岡なつみを覚えた。

タイトルで煽る程にはヒロインが可愛くない。それよりも散りばめられたネトゲネタを楽しむのが正しい楽しみ方。つまり「しょうがないにゃあ」はもう一般用語ということでおk?

登場人物のキャラ付けが少し強引な気がしたが、慣れれば許容範囲。もう少し回を重ねると馴染んでくるような気がする。原作は長いようだし、次回もあるなら見るつもり。

登場時は万能感を感じさせる主人公だが、徐々にメッキが剥がれていく。それでも紅ルートを進めば挽回の余地もあったが、妹ルートに入ってしまい挽回することなく終了。

艦これ類似品と思いきや、むしろガルパンを彷彿とさせる良作。これ単発で終わらせるには惜しいように思う。ただ登場人物がやたら多く、私は最後までキャラ名を覚えられなかった。

とにかく最初から最後までほのぼのとした作品。決して悪くはないが、見るには少し退屈。ところで、ヒロインのキャラが「ずっと待ってる」の人にしか見えなくて困る。

最初はヒバリたんが可愛くて仕方なかったが、後半はヒビキがジワジワ来る。正直、コメディとしての面白さは微妙なので、誰かに属性が合うかどうかが全てだと思う。

主人公が八方美人でハイスペックという、私が今まで見たことがないタイプの BL。あっちの方も同性愛というより家族愛みたいな雰囲気。私も含めて、たぶん男には面白さが分からない。

最初は、腐女子が考えたような設定に「何だこりゃ」だったが、ジワジワと面白くなった。そして鏡花たんが出てからが本番。もう太宰とかいうアホはどうでもいいので、もっと鏡花たんを出してください。

和風ゾンビ物としては良いと思う。主人公のムサ苦しさもまた良し。しかしヒロインとその兄者、彼らのキャラと行動がテンプレート過ぎて、それが作品の完成度を下げていると思う。

2016-07-18

RHEL7: Virtual interface with NetworkManager

RHEL6 でインターフェイスに複数 IP アドレスを割り当てられるようになってからも、個人的には好んで仮想インターフェイスの方を使っている。

私自身、もう仮想インターフェイスはオワコン、とは思っていない。いくら ip addr で IP アドレスを自由に付け替えられるといっても、それでは余りに生々しすぎる。仮想インターフェイスは if{up,down} <ifname> という安全かつお手軽な UI が良いのだ。操作する度に IP アドレスを打ち込むなど、トラブルの元でしかない。

という訳で、RHEL7 + NetworkManager で仮想インターフェイスが使えるかどうかは、私にとって大きな関心事だった。とりあえず早くに動くことだけは確認していたが、NetworkManager と仮想インターフェイスとの関係が良く理解できず、暫く様子を見ていた。そして最近になってようやく安心して使っていけそうだと判断した。

まず、enp0s18 を親とする仮想インターフェイス enp0s18:1 を作ってみる。

# cat /etc/sysconfig/network-scripts/ifcfg-enp0s18
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s18
UUID=4fe308d7-c49f-4232-ba9b-fb8f635ea38c
DEVICE=enp0s18
ONBOOT=yes
IPADDR=192.168.0.1
PREFIX=24
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no

# cat /etc/sysconfig/network-scripts/ifcfg-enp0s18:1
NAME=enp0s18:1
DEVICE=enp0s18:1
BOOTPROTO=none
IPADDR=192.168.0.2
PREFIX=24

この状態で、NetworkManager はどのように認識するのか。(予め enp0s18 は停止している)

# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)

# nmcli con reload

# nmcli con
NAME     UUID                                  TYPE            DEVICE
enp0s17  bd4f8279-8778-4032-86dc-900dce2a12ee  802-3-ethernet  enp0s17
enp0s18  4fe308d7-c49f-4232-ba9b-fb8f635ea38c  802-3-ethernet  --

NetworkManager は、親(enp0s18)だけを認識している。その内容は、

# nmcli con show enp0s18
connection.id:                          enp0s18
connection.uuid:                        4fe308d7-c49f-4232-ba9b-fb8f635ea38c
connection.interface-name:              enp0s18
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.timestamp:                   1467383289
connection.read-only:                   no
connection.permissions:
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.secondaries:
connection.gateway-ping-timeout:        0
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:
ipv4.method:                            manual
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:                         192.168.0.1/24, 192.168.0.2/24
ipv4.gateway:                           --
ipv4.routes:
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv6.method:                            auto
ipv6.dns:
ipv6.dns-search:
ipv6.addresses:
ipv6.gateway:                           --
ipv6.routes:
ipv6.route-metric:                      -1
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       0 (disabled)
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --

注目すべきは、ipv4.addresses に仮想インターフェイス(enp0s18:1)の IP アドレスも設定されていること。NetworkManager は仮想インターフェイスの情報を収集し、親インターフェイス側に集約するようだ。そして仮想インターフェイスの方は無かったことにされ、NetworkManager から仮想インターフェイスは見えなくなる。

# nmcli con show enp0s18:1 ; echo $?
Error: enp0s18:1 - no such connection profile.
10

この状態で enp0s18 を起動すると、両方の IP アドレスが起動する。

# ip addr show enp0s18
3: enp0s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:94:42:c7 brd ff:ff:ff:ff:ff:ff

# nmcli con up enp0s18
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/16)

# ip addr show enp0s18
3: enp0s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:94:42:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.255 scope global enp0s18
       valid_lft forever preferred_lft forever
    inet 192.168.0.2/24 brd 192.168.0.255 scope global secondary enp0s18:1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe94:42c7/64 scope link
       valid_lft forever preferred_lft forever

その際、仮想インターフェイスの「ONBOOT」や「ONPARENT」という設定は無視されるようだ。少なくとも試した限りでは、これらをどう設定しても、仮想インターフェイス側の IP アドレスは自動的に起動した。

そして前述の通り、NetworkManager から仮想インターフェイスは見えないので、当然、up / down することもできない。

# nmcli con down enp0s18:1 ; echo $?
Error: 'enp0s18:1' is not an active connection.
Error: no active connection provided.
10

# nmcli con up enp0s18:1 ; echo $?
Error: Connection 'enp0s18:1' does not exist.
10

しかし ifup / ifdown なら、それが可能。

# ip addr show enp0s18
3: enp0s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:94:42:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.255 scope global enp0s18
       valid_lft forever preferred_lft forever
    inet 192.168.0.2/24 brd 192.168.0.255 scope global secondary enp0s18:1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe94:42c7/64 scope link
       valid_lft forever preferred_lft forever

# ifdown enp0s18:1 ; echo $?
0

# ip addr show enp0s18
3: enp0s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:94:42:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.255 scope global enp0s18
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe94:42c7/64 scope link
       valid_lft forever preferred_lft forever

# ifup enp0s18:1 ; echo $?
0

# ip addr show enp0s18
3: enp0s18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:94:42:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.255 scope global enp0s18
       valid_lft forever preferred_lft forever
    inet 192.168.0.2/24 brd 192.168.0.255 scope global secondary enp0s18:1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe94:42c7/64 scope link
       valid_lft forever preferred_lft forever

ifup / ifdown は、NetworkManager が管理するインターフェイスについては NetworkManager に処理を丸投げするが、そうでない場合、従来同様に ifup / ifdown 自身が処理を行う。よって NetworkManager からは見えない仮想インターフェイスについても、ifup / ifdown なら扱うことができる。

・・・のはずなのだが、実は RHEL7.1 以前には不具合があって、仮想インターフェイスを ifup することができない。

# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.1 (Maipo)

# ifdown enp0s18:1 ; echo $?
0

# ifup enp0s18:1 ; echo $?
Error: no device found for connection 'enp0s18:1'.
4

正直この不具合のお陰で、ずっと NetworkManager と仮想インターフェイスとの関係に悩んでいたと言っていい。:-(

以上をまとめると、

  • RHEL7 でも仮想インターフェイスは使用できる。
    • ただし、「ONBOOT」「ONPARENT」設定は無視される。(常に自動起動する)
  • NetworkManager (nmcli)は仮想インターフェイスを操作できない。
  • ifup / ifdown は仮想インターフェイスを操作できる。
    • ただし、RHEL7.2 以上が必要。

個人的には、仮想インターフェイスはずっと残しておいて欲しい機能だ。きっと RHEL8 でも動いてくれる・・・よね?