Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SONiCトラブルシューティング

 SONiCトラブルシューティング

SONiCを使っていて遭遇する典型的なトラブルについて、チェックポイントや対処方法を紹介します。

Masaru OKI

June 28, 2019
Tweet

More Decks by Masaru OKI

Other Decks in Technology

Transcript

  1. コンソールの反応がない、あるいは文字化け • チェックポイント ◦ ケーブルのピン配線は正しいか ◦ スイッチのコンソールポートに接続しているか ◦ PC側で正しくシリアル通信できるか ▪

    よく言われること : USBシリアルはFTDIのを使おう ◦ 速度やビットなどのパラメータは一致しているか ▪ たいていは115200bps, 8bit, parity none, CDなしフロー制御なし ▪ 一度化けると合わせても化けっぱなしなので端末側を一度リセットする 3
  2. SONiCが起動しない • チェックポイント ◦ BIOSは起動しているか ◦ GRUB Menuは出ているか ◦ GRUB

    MenuにSONiCの項目はあるか ◦ 起動中に詰まる場合、対応機種か確認 ▪ PlatformはONIEが渡してくる。ONIEを更新すると状況が改善するかもしれない 4
  3. ログインできない • コンソール・ssh共通 ◦ デフォルトは admin YourPaSsWoRd ◦ 自前ビルドする場合変更できるので、変更していないか確認 •

    sshの場合 ◦ アップデートすると host keyが置き換わるのでエラーになることがある ◦ ssh-keygen -R ホスト名かIPアドレス を実行し、保存済み host keyを消すと入れるようになる 5
  4. 起動できない • チェックポイント ◦ libvirtが必要。 ◦ KVMの動作環境が必要。動かすことができるかチェックする。 ▪ 必要に応じてsonic.xmlを編集し、適切な typeに変更する方法もある。

    ◦ sonic.xmlの中には、sonic-vs.imgの置いてあるパスが記述されている。 ▪ パスが不一致だと起動できない。テキストエディタで編集してパスを合わせる。 7
  5. showコマンドが(Pythonの)エラー • Config DBにデータが入っている前提のコマンドがある。 ◦ たとえば”PORT”がいっさいない場合 show interfaces statusはエラーになる。 ◦

    現在のSONiCはサンプルコンフィグが初期インストールされるはずだが …… • Config設定不足でなく、まるっきり空になっているケースもある。 ◦ config_db.jsonにフォーマットエラーがあるまま起動すると Config DBが空になる。 ▪ カッコの閉じ忘れ、カンマの書き忘れなど ◦ あるいはconfig_db.json自体がからっぽの場合も Config DBは空になる。 ◦ config_db.jsonを編集した場合はいきなりリブートせず、まず config reloadを実行する。 ▪ エラーが見つかったら修正する。 10
  6. インタフェースは見える? 見えない? • 正しく動いていればshow interfaces statusで下記のように表示される。 • SONiCでサポートされていないスイッチだと表示は空になる。 admin@sonic:~$ show

    interfaces status Interface Lanes Speed MTU Alias Vlan Oper Admin Type Asym PFC ----------- ----------- ------- ----- ------------- ------ ------ ------- --------------- ---------- Ethernet0 1,2,3,4 100G 9100 hundredGigE1 routed down up QSFP28 or later N/A Ethernet4 5,6,7,8 100G 9100 hundredGigE2 routed down up QSFP28 or later N/A Ethernet8 9,10,11,12 N/A 9100 hundredGigE3 routed down up N/A N/A Ethernet12 13,14,15,16 N/A 9100 hundredGigE4 routed down up N/A N/A Ethernet16 17,18,19,20 N/A 9100 hundredGigE5 routed down up N/A N/A admin@sonic:~$ show interfaces status Interface Lanes Speed MTU Alias Vlan Oper Admin Type Asym PFC ----------- ----------- ------- ----- ------------- ------ ------ ------- --------------- ---------- admin@sonic:~$ 13
  7. パケットが通らない? • チェックポイント ◦ show interfaces statusで、oper upしているか確認する。 ▪ upしていない場合、トランシーバー関連の問題。

    • show interfaces transceiver presenceで認識されてるか確認。 ◦ Not presentの場合、見えていない。 ◦ きちんと挿せているか物理確認。 • 対向機器とFECの設定が合っているか確認。 ◦ 合っていなければ合わせる。 ◦ portconfigコマンドで設定できる。 ◦ show interface countersでインタフェースごとの drop数やエラー数が確認できる 14
  8. ログ show loggingコマンドでsyslog出力を参照できる。 admin@sonic-edgecore:~$ show logging |grep ntp|tail Nov 9

    18:36:02.571028 sonic-edgecore NOTICE kernel: [11944.923827] audit: type=1400 audit(1478716562.566:17): apparmor="DENIED" operation="open" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/ntpd" name="bin" pid=7108 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 Nov 9 18:36:02.571031 sonic-edgecore NOTICE kernel: [11944.923841] audit: type=1400 audit(1478716562.566:18): apparmor="DENIED" operation="open" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/ntpd" name="usr/sbin" pid=7108 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 Nov 9 18:36:02.571034 sonic-edgecore NOTICE kernel: [11944.923854] audit: type=1400 audit(1478716562.566:19): apparmor="DENIED" operation="open" info="Failed name lookup - disconnected path" error=-13 profile="/usr/sbin/ntpd" name="usr/bin" pid=7108 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 Nov 9 18:36:02.571667 sonic-edgecore INFO ntpd[7111]: proto: precision = 0.115 usec (-23) Nov 9 18:36:02.572138 sonic-edgecore WARNING ntpd[7111]: restrict 0.0.0.0: KOD does nothing without LIMITED. Nov 9 18:36:02.572543 sonic-edgecore WARNING ntpd[7111]: restrict ::: KOD does nothing without LIMITED. Nov 9 18:36:02.573206 sonic-edgecore INFO ntpd[7111]: Listen normally on 0 lo 127.0.0.1:123 Nov 9 18:36:02.573630 sonic-edgecore INFO ntpd[7111]: Listen normally on 1 eth0 10.207.14.20:123 Nov 9 18:36:02.574039 sonic-edgecore INFO ntpd[7111]: Listen normally on 2 lo [::1]:123 Nov 9 18:36:02.574476 sonic-edgecore INFO ntpd[7111]: Listening on routing socket on fd #19 for interface updates 17
  9. debugコマンド BGP関連のデバッグに利用できる。 admin@sonic:~$ debug bgp --help Usage: debug bgp [OPTIONS]

    COMMAND [ARGS]... debug bgp on Options: -?, -h, --help Show this message and exit. Commands: default* events debug bgp events on updates debug bgp events on admin@sonic:~$ 18
  10. ひとりでできる最終手段? • sudo -sできるので、Linuxのroot権限でできる範囲でやり放題。 • docker execで各コンテナ内に入って中身を確認する。 ◦ docker exec

    -it syncd bash ◦ docker exec -it bgp bash ◦ など • ソースコードが公開されているので追跡する。 ◦ https://github.com/Azure/sonic-buildimage/ 19
  11. 外部の情報の活用 • githubのissueやpull requestに同様の問題の記載がないか調べる • Google groupsで同じように困っている人がいないか探す • Google groupsに投稿する

    ◦ 返答がないこともある。めげない、怒らない ◦ 内容によってはメーカーのサポートに連絡しろと言われたりもする • SONiC公式のトラブルシューティングガイド https://github.com/Azure/SONiC/wiki/Troubleshooting-Guide 20