繋がらなくなっちゃった!
問題文
問題文は以下の通りでした。
OSPFを用いて4つのルータ間で経路交換をしていたが、RT1とRT2の設定を書き換えたらRT4に対してR1から疎通ができなくなってしまった。原因を究明し、RT1・RT2の設定を直して疎通ができる状態に復旧してほしい。また、なぜ疎通ができなくなってしまったのかをまとめてほしい。
![Imgur](https://i.imgur.com/iynPBWq.png.webp)
前提条件
- 直接sshして設定できるのはRT1・RT2のみ
- OSPFを用いて経路を学習する
- エリアはバックボーン含めて最低3つ用意する
RT3のコンフィグ
interfaces {
ethernet eth0 {
address 192.168.2.2/24
hw-id 9c:a3:ba:30:9d:2c
}
ethernet eth1 {
address 192.168.3.1/24
hw-id 9c:a3:ba:30:12:7a
}
loopback lo {
}
}
protocols {
ospf {
area 0 {
network 192.168.2.0/24
}
area 2 {
network 192.168.3.0/24
}
parameters {
abr-type cisco
router-id 10.1.1.3
}
}
}
service {
}
system {
config-management {
commit-revisions 100
}
console {
device ttyS0 {
speed 115200
}
}
host-name RT3
login {
banner {
post-login "_____ _____ _______ _____ _____ \n|_ _/ ____|__ __/ ____|/ ____|\n | || | | | | (___ | | \n | || | | | \\___ \\| | \n_| || |____ | | ____) | |____ \n|_____\\_____| |_| |_____/ \\_____|"
}
user ictsc {
authentication {
encrypted-password ****************
plaintext-password ****************
public-keys ictsc {
key ****************
type ssh-rsa
}
}
}
user user {
authentication {
encrypted-password ****************
plaintext-password ****************
}
}
user vyos {
}
}
ntp {
server 0.pool.ntp.org {
}
server 1.pool.ntp.org {
}
server 2.pool.ntp.org {
}
}
syslog {
global {
facility all {
level info
}
facility protocols {
level debug
}
}
}
time-zone Asia/Tokyo
}
RT4のコンフィグ
interfaces {
ethernet eth0 {
address 192.168.3.2/24
hw-id 9c:a3:ba:30:c5:0e
}
loopback lo {
}
}
protocols {
ospf {
area 2 {
network 192.168.3.0/24
}
parameters {
abr-type cisco
router-id 10.1.1.4
}
}
}
service {
}
system {
config-management {
commit-revisions 100
}
console {
device ttyS0 {
speed 115200
}
}
host-name RT4
login {
banner {
post-login "_____ _____ _______ _____ _____ \n|_ _/ ____|__ __/ ____|/ ____|\n | || | | | | (___ | | \n | || | | | \\___ \\| | \n_| || |____ | | ____) | |____ \n|_____\\_____| |_| |_____/ \\_____|"
}
user ictsc {
authentication {
encrypted-password ****************
plaintext-password ****************
public-keys ictsc {
key ****************
type ssh-rsa
}
}
}
user user {
authentication {
encrypted-password ****************
plaintext-password ****************
}
}
user vyos {
}
}
ntp {
server 0.pool.ntp.org {
}
server 1.pool.ntp.org {
}
server 2.pool.ntp.org {
}
}
syslog {
global {
facility all {
level info
}
facility protocols {
level debug
}
}
}
time-zone Asia/Tokyo
}
初期状態とゴール
初期状態
RT1・RT2間、RT2・RT3間は疎通ができるが、RT4への疎通ができない。
終了状態
原因を究明し、RT1からRT4への疎通ができる。
解説
この障害が発生した原因は3つあります。
- 本来OSPFで経路交換をすべきeth1にpassive-interfaceが設定されてしまっている
- RT1とRT2でrouter-idが重複してしまっている
- RT1・RT2のエリア設定が不適切
passive-interfaceの削除・再設定
passive-interfaceがeth1に設定されている限りRT2へHelloパケットが送信されず、経路交換ができないのでこれを削除、もしくは再設定します。
以下eth0に再設定する場合の例
RT1#delete protocols ospf passive-interface eth1
RT1#set protocols ospf passive-interface eth0
router-idの再設定
重複してはいけないrouter-idがRT1、RT2ともに10.0.0.1で設定されてしまっていました。なので、これを重複しないように再設定します。
以下RT2のrouter-idを10.0.0.2に再設定する場合の例
RT2#set protocols ospf parameters router-id 10.1.1.2
エリア設定の変更
RT3とRT4のコンフィグを参照すると、RT3-RT4間である192.168.3.0のセグメントがエリア2になっており、RT2-RT3の192.168.2.0のセグメントをエリア0(バックボーン)とするような設定になっています。しかし、RT1とRT2のコンフィグを参照すると、RT1-RT2間の192.168.1.0のセグメントがエリア0となっていて、RT2-RT3間の192.168.2.0のセグメントがエリア1になるような設定になっています。
そこで、前提条件にあるエリアはバックボーン含めて最低3つ用意する
というものを考慮し、RT1、RT2のエリア設定を変更します。
以下RT1-RT2間(192.168.1.0)をエリア1、RT2-RT3間(192.168.2.0)をエリア0とする設定例
RT1#delete protocols ospf area 0
RT1#set protocols ospf area 1 network 192.168.1.0/24
RT2#delete protocols ospf area 0
RT2#delete protocols ospf area 1
RT2#set protocols ospf area 0 network 192.168.2.0/24
RT2#set protocols ospf area 1 network 192.168.1.0/24
解説は以上です。
採点基準
- RT1-RT4の疎通性を復旧: 50%
- トラブルが発生した原因上記3点を記述(部分点無し): 50%
解答について
みなさんよくできていたので、正答率は比較的高いものとなっていました。
あまりに問題の意図を汲み取って解答を送ってくださるので採点していてすごく嬉しかったです。
また、すごく丁寧な解答も多くとても採点がしやすかったです。ありがとうございました。
お詫び
問題文の前提条件にある直接sshして設定できるのはRT1・RT2のみ
という一文について、踏み台サーバから直接RT2へsshができるという誤解を招いてしまい、それに関する質問を複数受けました。ミスリードを招くような表現となってしまったことをこの場を借りて謝罪いたします。申し訳ございませんでした。
終わりに
みなさまのおかげで非常に楽しく採点ができました。限られた時間の中問題を解いてくださりありがとうございます。