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 は仮想インターフェイスの情報を収集し、親インターフェイス側に集約するようだ。そして、仮想インターフェイスの方は無いことにされる。

# 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 は仮想インターフェイスを認識していないので、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 が従来通り処理を行う。

・・・のはずなのだが、実は 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」は設定できない。(常に自動起動する)
  • 仮想インターフェイスを ifup / ifdown したいなら、RHEL7.2 以上が必須。

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