この度、Home NOC Operators Groupへの参加を果たしました。結構悪戦苦闘することになったので、備忘録を残します。
なお、ここにあるTipsを「そのまま」使ってもHome NOC Operators Groupへの接続は様々な事由によりできません。色々試行錯誤なり、事前調査なり、相応の好奇心、そして努力が必要であることを予め認識の上、やるならやってみてください。
Home NOC Operators Groupとは?
Home NOC Operators Groupとは、有志の若手エンジニアさんたちが自ら立ち上げた団体で、インターネットバックボーンに関わる設計・構築・運用技術の習熟を目的としています。併せて、非営利用途に限り、当該ネットワーク回線の貸出も行っており、このリソースを使用して自宅サーバの公開やインターネット経路としての使用も可能とのことです。
接続に至った理由・経緯
一番大きな理由はここ最近から続いてる病からの休職。それとIHANetへの接続です。先の記事でも書きましたが、今年入ってからいろいろなことがあり、会社を休んでいます。会社を休んでいる中、やっぱり技術習得も何もせずに居るのが不安でたまらないというのが正直あり、とは言いながらもサーバ・ストレージ技術習得は仕事に直結してしまうことから、副次的なITスキルを身に着けようとして、現在ネットワーク周りを独学してる状況です。
その一つの成果としてあげられるのがIHANetへの接続であり、そこでBGPの接続方法や、ルーティングフィルタの考え方など学ぶことができました。またそれと同時に、NGNの存在意義がやっと理解出来、NGNを何とか活用してもっとネットワークを楽しむことができないかと考えるようになりました。単なる閉域網ではなく、ちゃんと開けたネットワークとして、自分の知見を深めようとおもった時に頭に浮かんだのが、実は元同僚たちが立ち上げたこのHome NOC Operators Group(以下、HomeNOCさん)でした。
必要なこと
必要なこととしては以下のことが挙げられます。
- プライバシーポリシーへの同意
- 会員規約への同意
- 実験ネットワーク利用規約への同意
- RFC3021対応機器の準備(/31サブネットが切れ、かつ、疎通ができる機器)。我が家では以下のような傾向が確認できました。
- Cisco 1812Jでは可能でした。
- YAMAHA RTX-3000 (9.00.50)では設定はできたものの、疎通ができませんでした。
- H3C MSR20-20では設定ができませんでした。
- H3C S3610 では設定ができませんでした。
- NGNへの接続
- IPv6接続オプションの契約が必要
- ひかり電話契約がある場合はDHCP-PD配信でIPv6アドレスが得られる
- ひかり電話契約がない場合はRA配信でIPv6アドレスが得られる
- NGNはNTT東西で分かれている。NTT西日本NGNの場合、接続NOCは堂島NOCに限定される。
- (IPv4の場合)アドレス利用プランの定義
- JPNICの定めにより、「割り当て直後(3カ月以内)に25%以上、 かつ割り当て後1年以内に50%以上」を満たす必要があるとのことで、その利用プランをアドレス申請時に定義の上記載する必要があります。
- 非営利であることを明確にする
いずれにしても、きちんと申請時に審査は行われるので、きちんと準備しといたほうが良いと思います。
接続形態
大抵のプロバイダだと、PPPoEでの接続がまだまだ一般的なのかな?DS-Lite接続というのも最近はよく聞きますが、今回私はEtherIPを選択しました。L2フレームをIPパケットでカプセル化するやり方ですね。これをNGN内で通すことで、BGPピアを張ると言う構成に至りました。
接続までの順序
まず、Home NOCさん宛にメールで回線を使いたいこと、申請書がほしいことを申し出ます。今回私は、Home NOC Operators Group関係者に直接問い合わせをしたのですが、そういえば公式にこのアドレスで・・・・と言うのがないですね(-“-;)・・・・・いずれにしても知己を頼るという方法もありうるのかなと思うので、そこ経由で順次辿っていけばよいのかなぁと思います。
すると、以下の申請書がHome NOC担当者さんからやってきます。
- 利用申込書
- IPアドレス割当申請書
必要事項を記載して、返信をしましょう。IPアドレス割当申請には、特にIPv4に関してはアドレス使用率に関する考慮が必要ですので、それをお忘れなく。ちなみに、ちゃんと耐えうる機材を備えていればインターネットのフルルート受信も可能なようです。(私の機材では無理でしたので、デフォルトゲートウェイの配信をしてもらう方式になりました)
あと、IPv6の割当も可能です。今回私は見送っていますが、コレを機にTunnel Broker以外のIPv6アドレスを持ってみるというのもありと言えばありかもしれません。
さて、必要事項を記入して返信し、内容に問題がなければ、HomeNOCさんから「接続情報」がやってきます。どうやら、AS59105の配下にユーザごとのプライベートASを配置し、そこへBGPで経路伝搬をさせるという方式を取ってるように見受けられます。
それに対して、こちらからはNGNより払い出されたIPv6アドレスを返信します。こっからピア張りに向けた行動が始まります。今回取った構成は以下のとおりです。
EtherIPを構成するためにIX2015を、そしてHome NOCさん のASと接続するルーターは、ルーターではなく、L3スイッチであるH3C S3610を採用しました(というか、せざるを得ませんでした)。
まずはEtherIPの接続を行います。
この時のIX2015の設定例をあまり参考にならないかもしれないですが書いときます。
■NGNのSNTPを使って時刻同期する ntp server 2001:a7ff:102::c priority 3 ntp server 2001:a7ff:102::b priority 2 ntp server 2001:a7ff:102::a ■トンネルパフォーマンスの効率化 ip ufs-cache enable ipv6 ufs-cache enable ■NGNピア先のみ疎通を許可する ipv6 access-list ngn permit icmp src any dest any ipv6 access-list ngn permit ip src 2409:****:****:****::/64 dest any ■ブリッジの有効化 bridge irb enable ■NGN内DNSの参照を有効化 ipv6 name-server 2001:a7ff:5f01::a ipv6 name-server 2001:a7ff:5f01:1::a dns cache enable ■NGNインタフェースの設定。 interface FastEthernet0/0.0 no ip address ip filter ngn 10 in ipv6 enable ipv6 interface-identifier 00:00:00:00:00:00:00:02 ipv6 address autoconfig receive-default no shutdown ■Ether-IPでブリッジとして繋がるインタフェースはこちら interface FastEthernet0/1.0 no ip address bridge-group 1 no shutdown ■EtherIP用トンネル interface Tunnel0.0 description Homenoc tunnel mode ether-ip ipv6 tunnel destination 2409:***:***:****::**** tunnel source 2001:****:***:****::2 no ip address bridge-group 1 bridge ip tcp adjust-mss 1404 bridge ipv6 tcp adjust-mss 1384 no shutdown
EtherIPの接続が完了したら、続いてL3スイッチの設定を行い、ピア用IPとの疎通が取れるかどうかの確認をします。L3スイッチ側にIPを割り当て、ピア側のIPアドレスにpingを送り、応答が帰ってくるか確認をします。
今回L3スイッチではVRFを組んでいます。H3CスイッチのVRF(MCE)の組み方については当ブログのココにて言及しています。
■VLAN作成 vlan 786 name UplinkHomeNoc vlan 788 name EtherIPHomeNoc ■VRFの作成 ip vpn-instance vrf-mgmt route-distinguisher 64521:1 ip vpn-instance vrf-homenoc route-distinguisher 65010:1 ←自AS番号に合わせて構成してみた。 ■ACLの設定 acl number 3002 rule 1 permit tcp established rule 2 permit tcp destination ***.***.***.*** 0 destination-port eq bgp rule 3 permit icmp rule 4 deny tcp destination-port eq telnet rule 5 deny tcp destination-port eq 22 rule 6 deny ip destination ***.***.***.*** 0 : (以下略) ▼基本的な考え方(上から順) ・確立済みTCPセッションは通過する ・BGPパケットの疎通は許可する ・ICMPパケットの疎通は許可する ・当該ネットワーク上のあらゆる機器のTELNET接続は禁止する ・当該ネットワーク上のあらゆる機器のSSH接続は禁止する ・当該機器に対する接続は禁止する ■VLANインタフェースの作成 interface Vlan-interface786 ip binding vpn-instance vrf-homenoc ip address ***.***.***.*** ***.***.***.*** ←自ネットワークのIPを指定 packet-filter 3001 inbound # interface Vlan-interface788 ip binding vpn-instance vrf-homenoc ip address ***.***.***.* ***.***.***.*** ←ピア用IPを指定 packet-filter 3002 inbound ■ポートへVLAN IDの適用 interface Ethernet1/0/1←このポートにIX2015のブリッジポートを接続 port link-mode bridge port access vlan 788 interface Ethernet1/0/2 port link-mode bridge port access vlan 788 interface Ethernet1/0/3←このポートにVLAN786接続機器をつなぐ port link-mode bridge port access vlan 786 interface Ethernet1/0/4 port link-mode bridge port access vlan 786
メールに返信し、ピアの開放を要請します。続いて、L3スイッチの設定を行い、AS59105とのピアを張ります。
H3CでMCE(VRF)を使ってる場合、ちゃんとipv4-familyで対象となるvpn-instanceを指定しなければならないので要注意です。今回、含めるべき経路は配下に特にないため、directのみ配信する(つまりは払い出されたサブネットだけ)形とします。
■BGPの設定(vpn-instanceを指定して設定してるのがミソ) bgp 65010 router-id ***.***.***.*** ←自ネットワーク上のIPを指定 undo synchronization # ipv4-family vpn-instance vrf-homenoc peer ***.***.***.*** as-number 59105 ←ピア先IPを指定 network ***.***.***.*** ***.***.***.*** ←自ネットワークアドレスを記載 import-route direct
無事、経路が配信されれば、このS3610をデフォルトゲートウェイとして機器を接続すれば、それらの機器は外に抜けられるようになります。めでたしめでたし。ちなみにログにはこんなのが出ます。
%Sep 12 15:56:57:207 2017 RAIMUGI BGP/5/BGP_STATE_CHANGED: ***.***.***.*** state is changed from OPENCONFIRM to ESTABLISHED.
後はHomeNOCさんより提供されたグローバルセグメントに必要機器を配置していきます。
現在、私はこの経路をインターネットゲートウェイ+メールプロキシとして使っています。Mastodon(ステージング環境)もこのIPを使って運用している状況です。まだこのブログもMastodon(本番)も既存経路を使用していますが、そのうち乗り換えられるようにしようかなとおもっています。
IPv4アドレスの利用率ですが、現状数えてみたところ、50%を超える状態となっているので、取り敢えずは問題なさそうです。
注意事項
遭遇した注意事項等まとめます。
- ピア用アドレスは/31を使うため、コレに対応する機器が必要。
- 先述したとおりですが、HomeNOCさんからはピア張り用IPアドレスとして、/31アドレスを準備してきます。
- 普通に考えると「使用できるアドレスがないやん?」と思いきや、実はRFC3021でちゃんとP2P用途で通信できるネットワーク体系として定義がされています。
- ただ、RFC3021に準拠するとなると、ルーターの処理方式を/31とそれ以外で変えなければならないわけで、対応してない機器が古い機種を中心に結構多かったりしまして、実は私この地雷を踏みました。
- 私の知る限りCiscoは大丈夫そうですが、その他のメーカーは正直なんとも言えません。
- 私の場合、それを知らずに挑み、特にYAMAHAで地雷を踏んでかなり苦しんだんですが、HomeNOCさんから特例で/30でアドレスを払い出してもらえました。
- ・・・・・が、基本的には「有志で立ち上げた非営利団体」ということもありますので、こういうことは原則ユーザが団体に歩み寄るべきと考えます。きちんと/31に対応した機器を準備しましょう。
- 既にASを所有してBGPとかで遊んでる機器等は設定クリアしてから再定義した方がいい。
- 我が家にはC1812JがIHANet接続用に使われており、うまく/31アクセスができない際にコレを使用してHomeNOCさんに接続しようとしていました。が、以下の事由によりできませんでした。
- 既にIHANet用ASがbgp設定で適用されており、他AS設定は加えられない
- AS59105のみlocal-asを65010とし、接続を試みた所、経路受信「だけ」できた
- HomeNOCさん側設備では、AS-path 65010とIHANet用AS(64664)がつながって見えており、ASパスフィルタで弾かれた
- このあたりも、「有志で立ち上げた非営利団体」ということもありますので、こういうことは原則ユーザが団体に歩み寄るべきと考えます。また、あまり用途を兼務させると運用が辛くなるよということもあるので、ちゃんと専用用途でルーターは構成したほうが良いのかなと感じました。
- 我が家にはC1812JがIHANet接続用に使われており、うまく/31アクセスができない際にコレを使用してHomeNOCさんに接続しようとしていました。が、以下の事由によりできませんでした。
- H3Cスイッチのpacket-filter設定時、必要なルールは外部向けVLAN(当記事ではVLAN788)にすべてのルールを書こう。
- bgpのピアが確立した直後、実はガッツリTELNETによるブルートフォースアタックを喰らいました。
- 当初、VLAN786に対するパケットフィルタルールをinterface Vlan-interface 786配下に入れてましたが、コレが効いてなかった。
- 外部からアクセスが来た時、まずそのパケットを審査するのはピアを張ってるVLAN(当記事ではVLAN788)だったんですね。で、VLAN間の疎通はツーツーであるがゆえ、本来はinterface VLAN-interface 788配下に置かなければならなかったんですねー。コレは失敗したなぁと。
- packet-filterの設定を見直した結果、何とか抑止させることができました。
終わりに
正直、HomeNOC Operators Groupの関係各位には頭が上がらないぐらい色々ご対応頂きました。重ねて御礼申し上げます。
先述したように、実は私の元同僚さんがこの団体に数名関わってらっしゃるのですが、なんというか、その行動力には本当に度肝を抜かれます。私もエンタープライズ機器を設置して色々検証をしているクチだったので、そのつてで縁があったりしたのですが、なんというか、桁の違いを感じる程です。
この団体が立ち上がった当初、一度誘われたことがあったのですが、当時はまだ参加する自体に必要な知見が身についておらず、当時はお断りしてました。それがやっとここまでこれたのかなと思うと同時に、まだまだ不明な所も多く、ネットワークって本当に難しいなぁということを痛感させられます。
自分がこの先復帰した後、どういう位置づけで職務に当たるのかわからないんですが、取り敢えずこういう技術習得を経て、ある程度あらゆるエンジニアの会話についていける程度のスキルは備えておこうかなとおもっています。
追記:9/13(水)19:21
ちょっと色々なんだかんだあって、ほぼすべての経路をHomeNOCへ移動させました。そんなに帯域は食わない想定ですが、ちょっと大丈夫かなーとも思いつつ、実家帰省する予定が明日で、VPNの切り替えチャンスが結構貴重なので、この際ガッツリ切り替えようかなと。
そして、既存ネットワークに関しては解約手続きをしました。とは言え、月末までは稼働できるっぽいです。
解約後は、固定1IP契約のプロバイダを探して契約し、コストを下げようかなと思ってます。
Comments are closed