赤鯖にVyos入れて最高のインターネッツを手に入れた

この記事は OIC ITCreate Club Advent Calendar 2017 5日目の記事ですが、投稿日は6日です。謹んでお詫びします。

表: https://adventar.org/calendars/2640
裏: https://adventar.org/calendars/2563

登場人物

  • Rad Beagle
  • Vyos
  • Netgear GS116E

あらすじ

  • EdgeRouter-Liteに飽き飽きとし、x86鯖にVyosを入れて爆速にする。

ことの始まり

界隈である程度有名だった通称「赤鯖」。前回はi7モデル・Core2Duoモデルが販売されていたが、今回はi5モデルが秋葉で売られたらしい。50台在庫は有ると書いているが心配なので、すぐに優秀な学生を派遣し、2台確保。翌日には売り切れていたようだ。

届いた

手元に届いたのは1月後のこと。東京に行った時に受け取った。

  • GigabitEther: 4
  • IPMI Ether: 1
  • USB: 2
  • D-Sub: 1
  • Serial: 1

という端子の充実ぶり。基板の表面実装には、USB1つ・6ポートのSATA・PCI Express2つ付いており、拡張性もかなり高い。

IPMIは、BIOS上から設定したIPアドレスにWebブラウザでアクセスすると操作できる。Javaサーブレット製のコンソールを開くと、ISOイメージマウントも行える。

ネットワーク切り替えついでに、手頃なスイッチGS116Eも買った。NetgearのVlan/QoSなどに対応したL2スイッチだ。ビジネス向けということもあり、かなり安定性が高いと評判を見かける。自宅のc2970g-24ts-eはアイドル時で消費電力が70W有る一方、この機種は最大で10W程度だ。

https://www.amazon.co.jp/gp/product/B00GQL3U2M

Netgearのスイッチは、Windowsにインストールするユーティリティソフト・WebUIの2種類の設定方法が提供されている。ユーティリティソフトのインストール画面を見てほしい。

闇過ぎる。操作画面を乗せるには刺激が強すぎるので、どうしても見たい人はググってFlash全盛期のUIを見て懐かしさに浸ってほしい。

 

赤鯖のCPU情報。ノート向けCPUにノート向けRAMを積んでいる。

 

構築

今回はこのような構成のネットワークを構築する。

  • 赤鯖にはWindows10を入れ、Hyper-Vを有効にする
  • Hyper-V上にVyosをインストールし、仮想スイッチでGS116E2本イーサーを接続する
  • GS116EはVLAN2を割り当てた3ポートを残し、残りの13ポートはVLAN1に設定する(すべてアクセス)
  • 対向はフレッツ・IIJ FiberAccess/NF・TransixによるDS-Lite
  • ひかり電話は契約しておらずIPv6のプレフィックスは/64のため、Vyosの外側・内側インタフェースをブリッジする

 

Netgear GS116E

WebUIの方が格段に使いやすいため、そちらを使う。(AdobeAirの方はVLAN設定を行うとするとエラーが出て神)

ポイントとなるのが、 ポートベースVLANを使用せず、全て802.1Qのアクセスポートを使用してVLANを構築する こと。前者で設定すると、異なるVLAN同士をブリッジでつなげた際に、MACアドレスの学習テーブルがぶっ壊れて、疎通・切断を繰り返すようになる模様。詳しくは調査していない。

1-13をVLAN1・14-16をVLAN2とした。

 

Vyos on Hyper-V

赤鯖にWindows10をインストールするにはコツが必要だった。ISO/USBのインストールディスクを挿入しても、インストーラーが途中までしか進まない。なので、他のマシンにディスクをマウントし、インストールを済ませてから赤鯖にディスクを挿入した。Hyper-Vに物理ディスクをアタッチし、これを行った。

VyosをHyper-Vにインストールした。RAM 512MB・CPU1コアで元気に動いてくれる。

最初に、ブリッジを使用するにあたって、Hyper-V上で「MACアドレスのスプーフィング」を有効にしておく。これで、仮想NICに割り当てられていないMACアドレスのパケットを流せるようになる。

まず、雑にeth0/eth1/br0を作る。貧乏で/64しか貰えないので、eth0とeth1をブリッジする。

interfaces {
    bridge br0 {
        address xxxx:xxxx:xxxx:xxxx::1/64
        address 192.168.11.1/24
        aging 300
        dhcpv6-options {
            parameters-only
        }
        ipv6 {
            address {
                autoconf
            }
            disable-forwarding
            dup-addr-detect-transmits 1
        }
    }
    ethernet eth0 {
        bridge-group {
            bridge br0
        }
    }
    ethernet eth1 {
        bridge-group {
            bridge br0
        }
    }
}

次に、transixのDS-Liteを利用するため、トンネルデバイスを作成する。本来、DHCPv6で貰ったDNSで名前を引いた上でトンネルを作成するらしいが、ドメイン名でのトンネル作成に対応していないためこうしている。

RemoteIPはこちらで確認できる。http://www.mfeed.ad.jp/transix/ds-lite/

interfaces {
    tunnel tun0 {
        encapsulation ipip6
        local-ip xxxx:xxxx:xxxx:xxxx::1
        multicast disable
        remote-ip 2404:8e01::feed:100
    }
}
protocols {
    static {
        interface-route 0.0.0.0/0 {
            next-hop-interface tun0 {
            }
        }
    }
}

疎通を確認し、FWの設定を投入する。

IPv4のグローバルアドレスは存在しないため、FWの設定を現段階で行っていない。IPv6に関しては、ブリッジを使用しているため、ポートを指定してのルールが書けない。アドレスを指定してルールを記述する。

firewall {
    ipv6-name ipv6fw {
        default-action drop
        rule 100 {
            action accept
            protocol icmpv6
        }
        rule 110 {
            action accept
            description ds-lite
            protocol 4
        }
        rule 200 {
            action accept
            description out
            source {
                address xxxx:xxxx:xxxx:xxxx::0/64
            }
        }
        rule 210 {
            action accept
            destination {
                address xxxx:xxxx:xxxx:xxxx::0/64
            }
            state {
                established enable
                related enable
            }
        }
    }
}

 

リザルト

速度

改善前(EdgeRouter-Lite)

改善後

手元マシンのCPU負荷が100%近くになり、これ以上はHTTPSがボトルネックになり測定できない模様。日本の上位3%の速度らしい。VyosのCPUは1コアしか割り当てていないが、この時も5%程度しかCPUを使用していない。

EdgeRouter等のARMルーターはipip6等のトンネルに対してオフロードを持たないことが多く、かなりのリソースを消費し、200Mbpsも流すとWebUIすら表示できなかった。それに比べx86鯖は素の性能が高く、スループットが非常に良くなるという予想。

 

消費電力

  • アイドル: 25W
  • 負荷時: 50W

(ドライブにSSD使用)

 

課題点

ハイパーバイザーにWindowsのHyper-Vを選択したため、 Windows Updateでルーターが定期的に再起動 する。これに対し、フレッツ側の回線に対してもスイッチでポートを増やしているので、いずれEdgeRouterとのVRRPを行って冗長構成を持つことで回避したい。

ただ、Hyper-Vは自体は脳死で使えて非常に良いので、みんな使ってほしい。コンシューマOSでこれ使えるの凄い。

Continue Reading

技術書展3の合同誌を書きました

2017年10月22日(日)に秋葉で開催される技術書展に、自分も書いた合同誌が出ます。

Cassandraを基本的なアーキテクチャからデータモデルを学ぶ内容になっています。KVSを用いたスケーラブルなシステムの組み方が分かる気がします。

https://twitter.com/spring_raining/status/919949811217924096

自分の中では旬なので許してください。

Continue Reading

KVMスイッチを仮想マシンで実現する

仮想化のKVMではなく、鯖に繋ぐKVMです。vmware-kvmで仮想マシンを起動すると、フルスクリーンで起動されます。そして、指定したキー(標準はPause/Break)を押すと一瞬でホストマシンに切り替わります。いまいち何言ってるかわからないと思うので、試すほうが早いと思います。

Continue Reading

DNSを手で再帰問い合わせ(nslookup)

nslookupをset norecurseしてやれば再帰問い合わせが無効になります。

.

再帰問い合わせを無効にして、ルートサーバに接続します。ルートサーバは13個あり、IPアドレスのリストはWikipedia等からも参照できます。

PS C:\> nslookup.exe
既定のサーバー: setup.netvolante.jp
Address: 192.168.11.1
 
> set type=a
> set norecurse
> server 202.12.27.33
既定のサーバー: [202.12.27.33]
Address: 202.12.27.33

ここのブログのドメインを聞きます。

Continue Reading

WindowsのnslookupでPTR見よう

PS C:\> nslookup.exe - 54.64.30.14
既定のサーバー: UnKnown
Address: 54.64.30.14

> set type=ptr
> 17.17.17.172.in-addr.arpa
サーバー: UnKnown
Address: 54.64.30.14

17.17.17.172.in-addr.arpa name = id.is.upt.password.is.xtwe
17.17.172.in-addr.arpa nameserver = 17.17.172.in-addr.arpa
17.17.172.in-addr.arpa internet address = 54.64.30.14
Continue Reading

beatmaniaIIDX入門!弐寺をやり始めたいあなたへ(最新作PENDUAL対応!)

最近音ゲーをやり始めたあなた
1年位やっていて何か大きな筐体に惹かれるあなた

BeatmaniaIIDXをやってみたいけど敷居が高そう…

えっ…? 始めるのが怖い!?

バッカお前・・・・・・俺がついてるだろ

他のKONAMI音ゲーをやってる人がIIDXを始めるという事を前提に話を進めます

Continue Reading

都市銀行SSLについての調査

現時点で本当に安全なネットバンキングを提供するにあたって求められることは以下のとおりです。

  • 経路全てにおいてのSSL導入
  • 安全な証明書署名
  • 安全な交渉プロトコル
  • 安全な共通鍵暗号アルゴリズム
  • 安全な鍵交換アルゴリズム
  • 安全なメッセージ認証

ということで、日本の都市銀行のSSLについて調査しました。

銀行名 ポータルサイトSSL 証明書署名アルゴリズム 接続暗号種類 メッセージ認証・鍵交換
みずほ銀行 ×httpへリダイレクト ○EV SSL SHA1 △TLS 1.0, RC4_128 △SHA1, RSA
三菱東京UFJ銀行 ×CN不一致(a248.e.akamai.net) ○EV SSL SHA1 ○TLS 1.0, AES_256 ◎SHA1, DHE_RSA
三井住友銀行 ×404NotFound ○EV SSL SHA1 △TLS 1.0, RC4_128 △SHA1, RSA
りそな銀行 ×404NotFound ○EV SSL SHA1 ◎TLS 1.2, AES_128_CBC △SHA1, RSA
twitter ◎全ページSSL ◎EV SSL SHA256 ◎TLS 1.2, AES_128_GCM ◎ECDHE_RSA

ポータルサイトSSLは、検索した時に出てくるサイトが既にDNS毒入れ等で違う相手だった場合脅威になるのでSSLの方が好ましいです。それについての記述です。ほとんど銀行サイトまるごとSSLとかしてるのは見ないです。

鍵交換にDHE使ってないっていう何も学んでない企業も多いです。

Twitterが一番セキュリティしっかりしてるって笑える。

2014-07-20現在 Chrome36からの接続結果です。

Continue Reading
Close Menu