投稿

9月, 2016の投稿を表示しています

ActiveDirectoryとDNS64の問題

AD+NAT64は面倒? ADを導入していて、順次IPv6オンリーに変えていこうと考えた場合、移行期間にDNS64/NAT64を使いたいと考えるのは妥当な判断だと思う。
しかし全端末をいきなり切り替えられないケースもある。一部の端末はデュアルスタックで行きたいという事もあるはずだ。
NAT64は問題ない。NAT64を設置してルーター側が64:ff9b::/96をNAT64へルーティングしてやるだけ。
端末側がIPv4アドレスを64:ff9b::/96と解決したときだけ働けばいい。

問題はDNS64。ADではADサーバーのDNS参照が義務。つまりDNSの差し替えによる一部DNS64化ができない。
AD DNSのフォワーダーをDNS64へ向けると強制的に全端末がDNS64/NAT64環境へなってしまうわけだ。
これについて未だ上手い解決方法が浮かばない。
最高に強引な手段を考えると、別ドメインのADを建ててNAT64環境はそちらに参加するとか。あまりにもコストが見合わない。

これなんとか出来ないかなあ。

ひかり電話ルーターのDHCP-PD忘備録

イメージ
たまにIPv6を触ったりすると/56ってなんだっけとなるので忘備録としてメモ。

ひかり電話ルーターのDHCP-PDの仕組み

プロバイダからは1111:2222:3333:44::/56が来るHGWはここから1111:2222:3333:4400::/64を使用する
(HGW直下のネットワークは全部このアドレスを使用する)HGWにDHCP-PDルーターをぶら下げると順次番号をリース(赤枠) 1台目のDHCP-PD ここから1台目をぶら下げると1111:2222:3333:441::/60がもらえる。
このルーターは16個のセグメントに分けて使用できる(緑枠)。
1111:2222:3333:4410::/64 ~ 1111:2222:3333:441f::/64 2台目のDHCP-PD この状態で2台目をぶら下げると2台目のルーターには1111:2222:3333:442::/60がもらえる。
以下、最大15台まで割り振ってくれるはず。 注意点 プリフィクスは変動するかも リース時間によってこのアドレスは再取得される。この辺はDHCPと同じ。
気をつけないといけないのは、複数DHCP-PDルーターをぶら下げていて止めたり動かしたりする期間があるとリース切れでHGWが新たな番号を割り振ってしまう事がある。 この場合、自動構成していないものは正常動作しなくなる。
固定で割り当ててる端末は当然として、ファイヤウォール設定やらルーティングが厄介。
なるべくアドレスを使わないようにしたいけど難しいところもある。要注意。 回避策? うーん。色々面倒。
内部の疎通にはULAを使ってやれば回避?
ULAも全部手動だと面倒だからRAで同時に配って欲しいんだけど、意外と複数配れるルーターが少ない。
サーバー公開などしてる場合はFWの開放も難しい。
いっそ内部全部ULAにしてNAT66するというのは……IPv6としてなんか負けた気がする。
FWのアドレス指定がもっと柔軟になるように進化して欲しいところ。
※本当はHGWがDHCPのように固定配布できると良かったんだけど……。恐らくそこまで使うことを考えてないんだろうな。

FortiGate 60Dの実力は?

イメージ
その1その2その3 導入の顛末は別の方で書いてあるのでこちらではFortiGateの純粋な性能について書いてみようかと思います。
FWとしての性能は? FortiGateのウリの一つに専用ASICによる高速処理というのがあります(60Dクラスだとほとんど載ってませんが)。
実際にはどんなもんでしょうか? 試してみました。 テスト環境としては以下の状態でテストしました。
IPoEのIPv6回線FortiGate:トランスペアレントモード(透過FW)IIJmioのIPv6スピードテスト なるべく間に変なものがはいらない形で計測してみました。
計測した結果は263Mbps。なかなかに速いです。
これが現在の回線状態の限界なのか分からないので参考までにVyOS(ブリッジFW)で比較してみました。こちらは大体100Mbps前後。
ルーティング速度が自慢のVyOS(ブリッジですが)と較べて倍以上出ています。
スペック上では1.5GBまでいけるという話なのでこれが現在の回線限界なのでしょう。 流石に専用チップは速いです。 UTMにすると?一方でFortiGateはUTMとしても有名です。
こちらの機能をガッツリONにしてみたらどうなるでしょうか。 その結果は40Mbps。UTMは多種多様なパターンで解析しながら作業するので負荷の殆どがプログラム、つまりソフトウェア部分になります。
中の解析にソフトで処理する必要がある上に重たい解析をしているのでこの速度は納得です。色んな脅威をリアルタイムで排除している上に、後でどんな状況で使用していたか分析出来るのも魅力です。 ただ折角の専用ハードがほとんど生かせないというのも残念な点になります。
これらもどこまでやるかになるでしょうね。 IPv4の方でもテスト こちらは以下の条件です。
NAT/ルーターモードDS-Lite経由のIPv4Ooklaの筑波サーバー(softether) こちらも大体同じ傾向です。やはりUTM入れるとガッツリ不安定になります。
UTMによるパフォーマンス低下はポリシーによって選択できます。
例えば以下のようなケースを設定できます。

PCなどの高速かつクライアントで対策できるような有線LAN環境
→FWのみモバイル端末でWi-Fi接続、しかもiPhoneなどの非力デバイス
→FW + UTM
さらにNAT64もこういったポリシー…

FortiGate 60DとAlaxala AX3640SでLAN構築チャレンジ その3

イメージ
その1その2FortiGate 60Dの実力は? ネットワーク構成 そんな訳で一段落したので構成を紹介。要件としては以下。

IPoE + DS-Lite一部PPPoE完全別利用セグメントが6つ必要(物理3、仮想3)管理用としてIPv6は全部通すIPv4は完全独立のセグメントも存在(NAT64も必要に応じて動かせるように)
実物はもっとややこしいので簡単にしてみました。
FWにはIPv4/IPv6両方かけたかったのでDMZにDS-Liteを置きました。
またVM側にある一部のサーバーがIPv4で公開しているのでPPPoEをSeil/x86で引っ張ってます。
この辺はルーターでアレコレやって一本化するのがいいんですが、ポリシールーティングとかでコネコネやるとこのVM周りを外す時に面倒になるんですよ。
なのでSeil含めたPPPoEのセグメントは別分けに。

図はIPv4ですが、IPv6は全域で通っています。
これはAX3640SのVLANでプロトコルVLANかけてます。マイナーだけどとても便利。
何故流行らないんだろうか、と思ってたら図を書く時に理解した。
IPv6とIPv4を一枚で書ききれない。VLANの基本は論理的な分割なんだろうけどその分割が図で書きにくいのでは理解しにくいのだろう。結局次のような補足説明が必要になる。
IPv6はDMZとLAN、IPv4はDMZ、LAN、PPPoE、その他とセグメント分割。
IPv4側は基本ルーティングしない独立で。
他にも色々あるんですが、基本構成はこんな感じ。
AX3640Sも色々いじってみたけど、結局VLANくらいしか使わなかったかな。
MLDスヌーピングとDHCP、必要に応じてルーティング。
L3スイッチとしては正しい使い方だと思います。
結局いくらでこれ出来たの? FortiGate 60Dが15k円、AX3640S-24Tが4k円でした。2万でUTM付きフルカスタマイズ出来るハード環境が揃った+勉強になったと思えば相当お得だったと思います。
続く

FortiGate 60DとAlaxala AX3640SでLAN構築チャレンジ その2

イメージ
その1その3FortiGate 60Dの実力は? FortiGate 60Dを探る とりあえず手順通りWEB-GUIで眺めてみる。
なるほど、わからん。

FortiGateはルーター型と透過型で使い分けが出来るようだ。
ルーターの方も想像以上に機能が豊富。
しかし逆にルーターに必要な機能が足りてなかったりするところも多々あって使い方が難しい。
性能面で考えるとFWに専念してもらうほうが軽いだろうし、ルーティングと切り離せるから管理も楽? コマンドも独特だから慣れがいるし。
DHCP-PDが使えない!! ルーターモードでDHCP-PD構成にしようとしたらどうやっても設定できない。
センスと能力と根性が足りないのかッ!?
仕方ないので一旦透過型にしてルーティングはAX3640Sにさせてみる事を考えてみる。
DHCP-PDサーバーの罠 AX3640SにあるDHCP-PDサーバー機能。これがあればルーターなんて要らなかったんや!!
……となるはずでした。
AX3640Sの理解度が足りないのか、それともスイッチだからそういう設計なのかわからないけどこちらも出来なかった。
理由は下記の通り。
一般的なルーターで言われるDHCP-PDとはDHCP-PDクライアント+DHCP-PDサーバーのセットだということ AX3640SにはDHCP-PDサーバーしかない。
DHCP-PDの仕様を調べてみた。

DHCP-PDクライアント機能でプリフィクスを頂くもらったプリフィクスでDHCP-PDサーバーとして運用
AX3640Sは1がないため、手動でIPv6アドレスを割り当てなければならない。
これは出来るとして、問題はルーティングの方だった。

一般的なDHCP-PDサーバーは以下の実装があるっぽい。

DHCP-PDサーバーはクライアントの要求時にその機器をルーティングテーブルに追加する(クライアントがルーター機能を持っていた場合)
これによりプリフィックス貰った段階で上位ルーターへの経路が自動的に確保されるようだ。
そしてひかり電話ルーター(HGW)はIPv6用の静的ルートの手動指定が出来ない。

→結論:AX3640SのDHCP-PDは使えなかった

RFCではアドレスの移譲しか定義されていないから、これが一般的かどうかは不明。
しかしひかり電話ルーター(HGW)ではこういう実装になってる。くそう。

FortiGate 60DとAlaxala AX3640SでLAN構築チャレンジ その1

イメージ
その2その3FortiGate 60Dの実力は? 前置き 久々に勉強がてら色々とチャレンジしてみました。
失敗やトラブル込みで日記風に書いていこうと思っています。
最終的にどうなるかは不明ですが、それまでお付き合い頂けたらと思います。

もうやめて、Hyper-Vのライフはゼロよ!! Hyper-Vは便利。仮想環境でテストやり放題。
テスト環境で発展させすぎていつの間にかハードなネットワーク環境が出来てました。
しかも既に本番稼働してて外せない状況に。ルーターだけで数個近くのVMが常時稼働とか色々面倒。
特にWindows Updateがかかるごとにネットワークが止まります。
さらに起動時にVMの起動順まで気をつけないとネットワークが動かない。
そして何より常時起動しているからサーバーのメモリを圧迫してる事態になってしまってて、本来のVMを動かす環境がなくなってしまっていました。
これはイカンですよ?

ネットワークをハード化する という訳でネットワークをハード化して逃します。なかなかの本末転倒っぷりなのですが。
しかも仮想で色々自由な拡張を繰り返したのでハード化するのに大変です。
条件をまとめると、以下の感じです。

セグメント分割5つ以上IPv6対応
普通に考えるとルーターを買えばいいわけですね。
そしてVLANで切ることを考えると5ポート以上必要になります。
→RTX1210一択
いやこの答えは簡単で確実なものですが、面白みとコストが足りません。よって冒険します。
IPoE環境なので思い切ってFW+L3スイッチという形でチャレンジしてみることにしました。
勉強も兼ねてますので安く抑えるために中古で考えます。

FWは?CiscoかFortiGateが候補。
Ciscoはたまたま出物がなかったのでFortiGate 60Dを選択。
ハードウェアUTMも使えれば儲けものというつもりで。

L3スイッチは?Dell PowerConnect 2448かAlaxala AX3640S辺りが候補に上がりました。
最終的にはAX3640Sにしました。
理由はAlaxalaの方はDHCP-PDサーバーが使えるという点です。
しかしL3スイッチはうるさいんだろうなあ……。

続く

DNS64/NAT64してみた

イメージ
NAT64を構成する DS-Liteでデュアルスタック快適環境を実現したはいいのですが、両方管理するのがいい加減面倒になりました。
時代も時代ですのでいっちょDNS64/NAT64でIPv6オンリーをしてみたらどうかと思いやってみました。
ネットワーク構成 ネットワークは右図のようになっています。
家庭用レベルで見るとやたら複雑です。
しかしクライアントはIPv6だけでいけるからシンプルになってます。
IPv6側 IPv6側のアドレスはシンプルにルーターからRA+DHCPv6で配られます。自分の環境はひかり電話ルーターなのでDHCP-PDを使って再分配しています。
VyOSがDHCP-PDをサポートしてないのでここではSeilを使用しました。
IPv4側 ダミーのアドレス(64:ff9b::/96)をNAT64に流してプライベートなIPv4に変換します。
その後のIPv4パケットをDS-Liteのトンネリングしてインターネットへ。 NAT64 今回の目玉。Ubuntu 1604 + Joolでやってみました。
導入はこちらの方が非常に分かりやすく書かれていたのでほぼ悩むことなく導入できました。感謝です。
導入後、自動起動させるために以下の作業を追加で行っています。 /etc/modulesに一行追加
echo "jool" >> /etc/modules/etc/modprobe.d/にjool.confを追加
echo "options jool pool6=64:ff9b::/96 pool4=(ローカルIPv4アドレス)" > /etc/modprobe.d/jool.conf DNS64 最初はunboundで構築していたのですが、Google Public DNSがDNS64やってくれてるのでそっちを利用してみました。楽ちんです。 DNS64/NAT64によるIPv6オンリー環境は問題ない? 一般的なアプリは問題ないですね。問題が出たのはIPv4専用ソフトとP2Pでしょうか。仕組み上当然ですが。
特に難敵なのがSkype。IPv4専用でかつP2Pソフトという。 P2Pではノード情報をアドレスとして通信内に盛り込む関係上、ソフト側が対応してくれないとほぼ無理でしょうね。
SkypeはSkype for Business…

カスタムメイド3D2用プラグインを作りました

イメージ
CM3D2用のプラグイン DeOutline / FaceToCam を制作 やっとCM3D2を遊べる感じになったので触ってみてます。
とあるところからHMDをお借りして感動していたところなのですが、現状でいくつか不満点が出たのでプラグインを作ってみました。
輪郭線除去プラグイン(VR対応) CM3D2.DeOutline.Plugin.dll 入れると輪郭線が消えます。それだけです。
CM3D2.OutlineSwitch.Plugin.dllの劣化版です。
違いは2点。
VR対応切り替えスイッチなしdownload いつでもこっち向いてプラグイン(VR対応) CM3D2.FaceToCamSwitcher.Plugin.dll キーを押すだけでメイドさんがいつでもこっちを向いてくれるプラグインです。
VRでは色々な視点で動かせるので必要なときこっち向いてくれるといいなあってことで作りました。
download
C#なので簡単にできていいですね。