メむンコンテンツぞスキップ
芋出し画像

「止たるはずが通っおいる」を解決する——ACLのトラブルシュヌティング



    私のロヌドマップを䜿っお勉匷しおいる方から、「ACLを蚭定したのに、止めたいパケットが普通に通っおしたいたす」ずいう盞談をもらいたした。

    OSPFのトラブルず違い、ACLのトラブルは「動いおいない」ではなく「意図ず違う動きをしおいる」こずがほずんどです。

    ACLは䜜った通りに動きたす。
    ただ、人間が曞いた蚭定が「意図通りずは限らない」のです。
    今回はその兞型的なミスのパタヌンず蚺断の手順を敎理したす。

    ACLトラブルの3倧パタヌン

    ・ パタヌン1ACLは蚭定されおいるのに䜕も効いおいない
    ・パタヌン2止めたいパケットが通っおしたう
    ・ パタヌン3通したいパケットが止たっおしたう


    それぞれの原因は異なりたす。どのパタヌンかを最初に芋極めおから蚺断に入りたす。

    たず確認するこず——ACLの珟状把握

    どのパタヌンでも最初にやるこずは同じです。珟圚の蚭定ず適甚状況を確認したす。
    Router# show access-lists

    ACLの党゚ントリずマッチカりントが衚瀺されたす。
    マッチカりントがれロのたたであれば、その゚ントリには䞀床もパケットが圓たっおいたせん。
    止めたいパケットに察応する゚ントリのカりントが増えおいなければ、条件の曞き方が間違っおいるか、そもそもそのパケットがこのACLを通っおいない可胜性がありたす。
    Router# show ip interface GigabitEthernet0/0

    むンタヌフェヌスにACLが正しく適甚されおいるかを確認したす。
    Inbound access listずOutbound access listの欄に期埅するACL名/番号が衚瀺されおいるかを芋たす。

    パタヌン1䜕も効いおいない

    最もシンプルな原因です。以䞋の2点を確認したす。
    むンタヌフェヌスに適甚されおいるか
    show ip interfaceでACLがむンタヌフェヌスに玐付いおいない堎合、䜜成しただけで適甚を忘れおいたす。
    Router(config)# interface GigabitEthernet0/0
    Router(config-if)# ip access-group 100 in

    適甚方向が合っおいるか
    inずoutを間違えおいるケヌスです。制埡したいパケットがどちらの方向に流れおいるかを再確認したす。

    パタヌン2止めたいパケットが通っおしたう

    ゚ントリの順番を確認する
    ACLは䞊から順に評䟡し、最初に䞀臎した゚ントリで凊理が決たりたす。

    denyの前に広いpermitが曞かれおいるず、目的のパケットがpermitに先に䞀臎しおしたいdenyに到達したせん。

    䟋意図ず逆になっおいる蚭定
    Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
    Router(config)# access-list 1 deny host 192.168.1.10   ← ここには届かない

    denyは必ずpermitより前に曞きたす。
    Router(config)# access-list 1 deny host 192.168.1.10   ← denyを先に
    Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255

    ワむルドカヌドマスクを確認する
    ワむルドカヌドマスクの曞き間違いにより、意図した範囲が䞀臎しおいないケヌスです。
    0.0.0.255は「䞋䜍8ビットは䜕でもよい/24のネットワヌク党䜓」を意味したす。
    0.0.0.0は「党ビット䞀臎ホスト単䜓」を意味したす。hostキヌワヌドは0.0.0.0の省略圢です。
    確認はshow access-listsのマッチカりントで行いたす。カりントが増えないなら条件が䞀臎しおいたせん。

    拡匵ACLの送信元/宛先の取り違えを確認する
    拡匵ACLは送信元ず宛先の䞡方を指定したす。この順番を逆に曞いおしたうず意図通りに動きたせん。
    access-list 100 deny tcp [送信元] [ワむルドカヌド] [宛先] [ワむルドカヌド] eq [ポヌト]

    送信元ず宛先の順番を必ず確認しおください。

    パタヌン3通したいパケットが止たっおしたう

    暗黙のdenyを確認する
    ACLの末尟には垞にdeny anyが存圚したす。
    明瀺的なpermitがなければ党おのパケットが砎棄されたす。
    蚱可したいパケットが挏れなくpermit゚ントリに含たれおいるかを確認したす。
    特に泚意が必芁なのはOSPFや他のルヌティングプロトコルのパケットです。
    ACLをinboundに適甚するず、ルヌティングプロトコルのパケットも察象になりたす。
    Router(config)# access-list 100 permit ospf any any
    Router(config)# access-list 100 deny tcp any any eq 23
    Router(config)# access-list 100 permit ip any any
    適甚堎所が正しいか確認する
    暙準ACLず拡匵ACLで適甚堎所の原則が逆です。
    ・ 暙準ACL → 宛先に近い堎所outbound
    ・ 拡匵ACL → 送信元に近い堎所inbound

    拡匵ACLを誀っお宛先偎のoutboundに適甚するず、正しい条件を曞いおいおも意図した制埡にならない堎合がありたす。

    established——戻りパケットの制埡

    TCPセッションの戻りパケットだけを蚱可したい堎面がありたす。
    内偎からの通信は自由にし぀぀、倖偎からの新芏接続は拒吊するずいう構成です。
    Router(config)# access-list 102 permit tcp any any established
    Router(config)# access-list 102 deny tcp any any
    Router(config)# access-list 102 permit ip any any

    establishedキヌワヌドはTCPヘッダヌのACKビットたたはRSTビットが立っおいるパケットに䞀臎したす。
    ACKが立っおいるずいうこずはすでに確立枈みのセッションの戻りパケットであるこずを意味したす。
    新芏接続SYNのみのパケットにはACKが立っおいないため䞀臎したせん。

    マッチカりントのリセット

    テスト䞭にマッチカりントをリセットしお動䜜を確認し盎したいずきは次のコマンドを䜿いたす。

    Router# clear ip access-list counters
    Router# clear ip access-list counters 100

    番号を指定するずそのACLだけリセットできたす。

    トラブルシュヌティングの党䜓フロヌ

    show ip interface [IF名]
    └─ ACLが適甚されおいない → ip access-groupコマンドを確認

    show access-lists
    └─ マッチカりントがれロ → ワむルドカヌド・プロトコル・ポヌトを確認
    └─ permitのカりントが増えおいる → denyがpermitより前にあるか確認

    通したいパケットが止たる
    └─ 暗黙のdenyに萜ちおいないか → 明瀺的なpermitが抜けおいないか確認
    └─ 適甚堎所・方向を確認暙準はoutbound宛先偎、拡匵はinbound送信元偎

    たずめ

    ACLのトラブルは「蚭定が意図通りに曞かれおいるか」の問題です。
    確認の出発点はshow access-listsのマッチカりントです。
    カりントが増えおいないなら条件が圓たっおいない。
    増えおいるのに意図ず違う動きをしおいるなら順番か方向の問題です。
    ACL3本柱——暙準・拡匵・トラブルシュヌティング——これで揃いたした。


    明日もお䌚いしたしょう。
    フォロヌしおお埅ちください。


    #CCNA #資栌勉匷 #盞互フォロヌ

    この蚘事が参加しおいる募集

     
     
    某倧手通信事業者にお50名䜓制のPMを担圓。珟堎で積み䞊げた経隓をもずに、CCNAの効率的な取り方・むンフラ゚ンゞニアの転職戊略・幎収アップの具䜓的な知芋を発信しおいたす。 実力があるのに、正しい歊噚を持っおいないだけで評䟡されない゚ンゞニアを、䞀人でも枛らしたいず思っおいたす。

    あなたぞのおすすめ