皆様こんにちは。
さくらインターネット研究所の大久保です。
前回のエントリでは、7/4~7/6に開催されたJANOG30の会場ネットワークの概要を説明させていただきました。
▽ JANOG30会場ネットワーク~概要編
https://research.sakura.ad.jp/2012/07/18/janog30-network1/
本稿はその続編ということで、会場内の無線LANの設計、収容ルータとして使用したVyattaの設定についてご紹介させていただこうと思います。
無線LANの設計
JANOG30では、ホール(全700席程度)、ロビー(協賛社出展ブース)、参加者控室(2F)、スタッフ控室、発表者控室の全てのエリアで無線LANの提供を行いました(一部有線LANもあり)。
以下の図は物理的な配線経路を示すものですが、合計13個の無線APで全エリアをカバーしました(1Fのみ、オレンジのボックスが無線APです)。
なお、無線APは一式Ciscoさんにご提供いただきました。多岐にわたる柔軟な設定が可能で、多数のユーザが接続するような高負荷時でも安定して動作します。
会場全体に配置した多数の無線APの通信、制御を司るのが無線コントローラ(WLC)です。
WLCは非常に便利で、全ての無線APの出力、チャンネル等を一括で設定でき、ユーザの通信は、WLCと無線AP間でIPパケットでトンネルされるので、VLANはWLCにのみ通しておけば済みます。
提供エリアの中で、一番収容条件が厳しいのがホール内です。ユーザ数は合計400をターゲットに設計をしましたが、1APあたりに収容するユーザ数は60~80程度に抑える必要があると言われていますので、ホール内にはAPを7台用意しました。
ただし、利用できるチャンネル数はAP数ほど多くなく、2.4GHz帯(802.11b/g)は1ch,6ch,11chの合計3チャンネルしか使用できません。したがって、いくつかのAPは同じチャンネルを使用しなければならず、電波の干渉が発生します。さらに、参加者が持参するモバイルルータなどの電波が干渉するため、このような狭いエリアに多数のユーザが集まるような環境での無線LANの安定した提供は非常に難しいです。
今回は、7つのAPを以下のようなチャンネル配置にしてみました。
後で考えると、気を利かせて真ん中にAPを1台置いてみた(AP4)ものの、11chが有効活用できなくなったため、AP4は外してもよかったかもしれません。
なお、5GHz帯(802.11a)は比較的すいているので、チャンネルは自動設定としました。ただし、W53とW56は外部からのレーダーなどの電波を検出して自動的に停波する可能性があるため使用を控え、W52の4チャンネルのみを使用するようにしました。
参考: 5GHz帯(802.11a)のチャンネルについて
http://www.aterm.jp/function/guide4/wireless_cmx/list/iee-dual/m01_m12a.html
さらに、安定した通信を行うために、以下の対策を行いました。
- 低速度でのクライアントの接続を拒否する。今回は36Mbps以上のみを許可するようにした。
- 同じチャンネルを使用しているAP間の干渉を防ぐため、電波の出力レベルを最小とする。
- 2.4GHz帯と5GHz帯でSSIDを分離する(janog30,janog30-a)。5GHz帯を利用できる端末を持ったユーザを、そちらに誘導するため。
これらの対策を行った結果、会期中を通して「つながりにくい」といった意見は、特にありませんでした。
Vyattaの設定
JANOG30では、IPv4/IPv6デュアルスタックの標準提供ネットワーク(SSID:janog30,janog30-a)を、VMware ESXi 5.0上で動作させた仮想ルータ、Vyatta Core 6.4にて収容しました。
多数のユーザが接続する収容ルータとしては、以下の点が気になるところです。
- スループット
- IPv4 ARPテーブルサイズ / IPv6 NDPテーブルサイズ
- NATのセッション数
- DHCPのプールアドレス数
1.スループットについては、ホストサーバの性能向上や、準仮想化ドライバを用いることにより、NATをかけても数百Mbps程度は普通にさばけますので、心配はありませんでした。
2.3については、最近のVyattaでチューニングできるようになっており、以下の設定を投入しました。ARP,NDPテーブルについては事前に1,000クライアント、NATセッション数については10万セッションで問題なく動作することを確認しました。
system { conntrack { expect-table-size 2048 hash-size 16384 table-size 1048576 } ip { arp { table-size 8192 } } ipv6 { neighbor { table-size 8192 } } }
4.については、アドレスの不足が発生しないように/16のネットワークを割り当て、念のためプールアドレスが早めに使いまわされるように、以下のようにリースタイムを10分に短縮しました。Vyattaに載っているDHCPサーバの性能も気になるところですが、事前のテストで1,000クライアントで問題なく動作することを確認しました。
service { dhcp-server { disabled false shared-network-name janog30-public { authoritative disable subnet 172.16.0.0/16 { default-router 172.16.0.1 dns-server xx.xx.xx.xx dns-server xx.xx.xx.xx lease 600 start 172.16.1.1 { stop 172.16.255.254 } } } } }
Vyatta全体の設定を以下に添付しておきます。
※ Vyatta Core 6.4では、StatelessのDHCPv6サーバでDNSサーバの配布設定を正しく行えません。そのため、独自パッチをあてて設定しておりますのでご注意ください。
さらに次回へ続く
次回は実験ネットワーク(4rd,LISP)とフローコレクタの構成についてご紹介しようと思います。
Vyattaが動いたマシンのスペックはどの程度でしょうか?
(CPU, メモリ, NIC, マザーボード)