はじめに
最近SDCC(島根データセンター友の会)に加入しました。 加入すると、オープンネットワークに接続することで様々なことを行うことができ、 申請すればグローバルなIPアドレスを貰えるのでサーバーを公開することができます。
今回はCisco 1941を使用してSDCCへ接続し、BGPで経路情報を受け取るところまでまとめます。
参加方法
はじめにSDCCに参加できるかどうかを調べます。 BGPというプロトコルを使うので一般のご家庭にあるルーター(バッファローなど)では接続できません。 CiscoやYAMAHAなどのBGPに対応したルーターを買ってください。
準備ができたらここからメールを送信して申し込みしましょう!
トンネルの接続する情報を取得
申し込みをして、申請書を提出するとSDDCの管理者から会員証が届きます。 その会員証に、自分のAS番号やアカウント情報、割当られたIPアドレスなどが書いてあり、その接続情報を使用して対向とトンネルを掘ります。
・どのトンネリングプロトコルを使うのか? ・接続に使用するIPアドレスはどれを使うのか?
など、接続に必要になる情報を相手と相談して決めます。
今回はグローバルIPv6アドレスを使用し、対向のルーターとGREというトンネリングプロトコルを使用してトンネルを張り、BGPで経路情報を受け取ります。 ここまで決めればあとは設定するだけです!
トンネルの設定
実際に設定を入れる前に1度情報を整理します。
使用するトンネリングプロトコル
GRE
相手側
IPv4 100.80.X.0
IPv6 2001:XXXX:XXXX:XXXX::1/127
自分側
IPv4 100.80.X.1
IPv6 2001:XXXX:XXXX:XXXX::0/127
トンネルインターフェイスのIPアドレス
相手側 2001:XXXX:XXXX::1
自分側 2407:XXXX:XXXX::0
トンネルの通信を流すときに使用するIPアドレス
自分側: 2400:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:6D81
相手側: 2408:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:A129
使用するルーティングプロトコル
BGP
AS番号
相手側 413XXXXX01
自分側 411XXXXX01
ルーターID
特に縛りは無かったのですが、設定しないと要らぬトラブルを招く恐れがあったので、トンネル用のIPv4アドレスをIDとして設定する事にしました。
100.80.XX.0
これで最低限のトンネルを張って経路を受け取れます。 設定は完璧である事を信じて設定を入れていきます!
トンネルの設定
interface Tunnel0 ip address 100.80.XX.0 255.255.255.254 ipv6 address 2001:XXXX:XXXX:400::/127 tunnel source 2400:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:6D81 tunnel mode gre ipv6 tunnel destination 2408:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:A129 exit
BGPの設定
router bgp 413XXXXX01 bgp router-id 100.80.XX.0 bgp log-neighbor-changes neighbor 2001:XXXX:XXXX:XXXX::1 remote-as 4100200001 neighbor 2001:XXXX:XXXX:XXXX::1 update-source Tunnel0 neighbor 2001:XXXX:XXXX:XXXX::1 version 4 neighbor 100.80.XX.1 remote-as 4100200001 neighbor 100.80.XX.1 update-source Tunnel0 neighbor 100.80.XX.1 version 4 address-family ipv4 no neighbor 2001:XXXX:XXXX:XXXX::1 activate neighbor 100.80.XX.1 activate exit-address-family address-family ipv6 neighbor 2001:XXXX:XXXX:XXX::1 activate exit-address-family exit
設定を入れたら経路が落ちてくるのをを待ちましょう。
経路が落ちてきているかどうかどうかは
show ip route
、show ipv6 route
コマンドで確認できます。
もしなにも落ちてこないという方は原因を探ってみましょう。
- トンネルが正しく張れているか確認する
- BGPのピアが上がっているか確認する
- フィルターの設定を見直す
トンネルが正しく張れているか確認する
まずは相手のトンネル用インターフェイスへpingを送って反応があるか確認します。
今回は2001:XXXX:XXXX:XXX::1
が相手のトンネル用インターフェイスのIPアドレスなので、こことの疎通を確認します。
次に、相手のトンネル終端アドレスにpingを飛ばします。
2400:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:6D81
へpingを送ります。
もしpingが通らないようでしたら原因を探しましょう。
BGPのピアが上がらなくて沼にはまった
私は、neighbor 100.80.XX.1 dont-capability-negotiate
というコマンドがシスコのルータが自動で入力されてしまい、AS番号が正しく相手に送れていない問題がありあました。
no neighbor 100.80.XX.1 dont-capability-negotiate
コマンドを入力したらピアが上げることができました!!
なかなかこういうことやるひとがいないので・・・あまり情報が・・・ないです...
サーバーを接続して通信してみる
SDCCから割り当てされたIPアドレスを使用して、実際に外部と通信してみます。
G0/0にv4とv6アドレスを割当て、G0/1にL2SWをかましてサーバを接続し、IPを割り当てて通信してみましょう。
設定が正しくできていれば実際にインターネットに出ることができ、実際にインターネットから通信を受け取る事ができるようになります。
あとがき
ここまでできれば後はサーバーを用意したりして遊べるようになっているはずです。
もしやる事が無くなってしまったら、ほかのSDCC加入者の方とBGPのピアを貼ってみてください。