nakayumcの技術ブログ

エンジニア1年目のブログです。(旧ブログも混在してますが、こっちが新しいです)

SDCCに参加してグローバルIPを取得した話

はじめに

最近SDCC(島根データセンター友の会)に加入しました。 加入すると、オープンネットワークに接続することで様々なことを行うことができ、 申請すればグローバルなIPアドレスを貰えるのでサーバーを公開することができます。

今回はCisco 1941を使用してSDCCへ接続し、BGPで経路情報を受け取るところまでまとめます。

参加方法

はじめにSDCCに参加できるかどうかを調べます。 BGPというプロトコルを使うので一般のご家庭にあるルーター(バッファローなど)では接続できません。 CiscoYAMAHAなどのBGPに対応したルーターを買ってください。

準備ができたらここからメールを送信して申し込みしましょう!

トンネルの接続する情報を取得

申し込みをして、申請書を提出するとSDDCの管理者から会員証が届きます。 その会員証に、自分のAS番号やアカウント情報、割当られたIPアドレスなどが書いてあり、その接続情報を使用して対向とトンネルを掘ります。

・どのトンネリングプロトコルを使うのか? ・接続に使用するIPアドレスはどれを使うのか?

など、接続に必要になる情報を相手と相談して決めます。

今回はグローバルIPv6アドレスを使用し、対向のルーターGREというトンネリングプロトコルを使用してトンネルを張り、BGPで経路情報を受け取ります。 ここまで決めればあとは設定するだけです!

トンネルの設定

実際に設定を入れる前に1度情報を整理します。

使用するトンネリングプロトコル GRE

トンネルインターフェイスIPアドレス

相手側 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 routeshow ipv6 routeコマンドで確認できます。

もしなにも落ちてこないという方は原因を探ってみましょう。

  1. トンネルが正しく張れているか確認する
  2. BGPのピアが上がっているか確認する
  3. フィルターの設定を見直す

トンネルが正しく張れているか確認する

まずは相手のトンネル用インターフェイスpingを送って反応があるか確認します。

今回は2001:XXXX:XXXX:XXX::1が相手のトンネル用インターフェイスIPアドレスなので、こことの疎通を確認します。

次に、相手のトンネル終端アドレスにpingを飛ばします。 2400:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:6D81pingを送ります。

もし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のピアを貼ってみてください。