در پست قبلی، مبحث “مفاهیم ACL“ را مرور کردیم. امروز، بر پیادهسازی ACL، تأیید و عیبیابی ACLهای IPv4 و IPv6 تمرکز میکنیم. ACLهای استاندارد IPv4، که در بازههای 1 تا 99 و 1300 تا 1999 شمارهگذاری شدهاند یا بهصورت نامگذاریشده هستند، بستهها را بر اساس آدرس مبدأ و ماسک فیلتر میکنند. این فهرستها میتوانند کل TCP/IP protocol suite را مجاز یا مسدود کنند. پیکربندی یک ACL شامل دو مرحله است:
- مرحله ۱: ایجاد ACL
- مرحله ۲: اعمال ACL
در ادامه، از توپولوژی ساده در شکل زیر استفاده میکنیم تا نحوهی پیادهسازی ACL های استاندارد و Extended در IPv4 را نشان دهیم.
توپولوژی پیادهسازی ACL در IPv4
ACL استاندارد شمارهگذاریشده IPv4: مجاز کردن یک شبکه خاص
برای جلوگیری از عبور ترافیکهایی که بخشی از شبکه داخلی (172.16.0.0/16) نیستند و خروج آنها از Gigabit Ethernet interfaces، یک ACL ایجاد کنید.
مرحله ۱: ایجاد ACL
از دستور access-list در حالت global configuration برای ایجاد یک ورودی در یک ACL استاندارد IPv4 استفاده کنید:
R1(config)# access-list 1 permit 172.16.0.0 0.0.255.255
این دستور، هر آدرسی که با 172.16.x.x شروع شود را تطبیق میدهد. میتوانید از گزینه remark برای اضافه کردن توضیحات به ACL استفاده کنید.
مرحله ۲: اعمال ACL
از دستور interface configuration برای انتخاب یک اینترفیس جهت اعمال ACL استفاده کنید. سپس، دستور ip access-group را در حالت interface configuration اجرا کنید تا ACL ایجادشده را برای یک جهت خاص (in یا out) فعال کنید:
R1(config)# interface gigabitethernet 0/0
R1(config-if)# ip access-group 1 out
R1(config)# interface gigabitethernet 0/1
R1(config-if)# ip access-group 1 out
این تنظیمات ACL 1 استاندارد را روی هر دو اینترفیس بهعنوان یک فیلتر خروجی فعال میکند.
این ACL فقط اجازه میدهد ترافیک از منبع 172.16.0.0 از طریق G0/0 و G0/1 ارسال شود. ترافیک از سایر شبکهها بهطور ضمنی مسدود خواهد شد.
ACL استاندارد شمارهگذاریشده IPv4: مسدود کردن یک میزبان خاص
برای جلوگیری از عبور ترافیکی که از میزبان 172.16.4.13 منشأ میگیرد و از G0/0 خارج میشود، یک ACL ایجاد کنید. مثال زیر نحوهی ایجاد و اعمال این ACL را نشان میدهد.
جلوگیری از عبور ترافیک منشأ گرفته از یک میزبان خاص
R1(config)# access-list 1 deny 172.16.4.13 0.0.0.0
R1(config)# access-list 1 permit 0.0.0.0 255.255.255.255
R1(config)# interface gigabitethernet 0/0
R1(config-if)# ip access-group 1 out
این ACL بهمنظور مسدود کردن ترافیک از آدرس خاص 172.16.4.13 و اجازهی عبور سایر ترافیکها از اینترفیس G0/0 طراحی شده است. دستور اول را میتوان با استفاده از کلیدواژه host بهصورت زیر نوشت:
R1(config)# access-list 1 deny host 172.16.4.13
در Cisco IOS Software Release 12.3 به بعد، میتوان از دستور زیر نیز استفاده کرد:
R1(config)# access-list 1 deny 172.16.4.13
دستور دوم را میتوان با کلیدواژه any جایگزین کرد تا تمام آدرسهای منبع مجاز شوند:
R1(config)# access-list 1 permit any
ACL استاندارد شمارهگذاریشده IPv4: مسدود کردن یک زیرشبکه خاص
برای جلوگیری از عبور ترافیک منشأ گرفته از زیرشبکه 172.16.4.0/24 از طریق اینترفیس G0/0، ACL را مطابق مثال زیر ایجاد و اعمال کنید.
جلوگیری از عبور ترافیک منشأ گرفته از یک زیرشبکه خاص
R1(config)# access-list 1 deny 172.16.4.0 0.0.0.255
R1(config)# access-list 1 permit any
R1(config)# interface g0/0
R1(config-if)# ip access-group 1 out
این ACL برای مسدود کردن ترافیک از زیرشبکه 172.16.4.0 طراحی شده است و به سایر ترافیکها اجازه عبور از G0/0 را میدهد.
ACL استاندارد شمارهگذاریشده IPv4: مسدود کردن دسترسی Telnet یا SSH به روتر
برای کنترل ورود و خروج ترافیک از روتر (نه از طریق روتر)، میتوان دسترسی Telnet و SSH را از طریق اعمال ACL روی پورتهای vty محدود کرد. محدودسازی دسترسی vty روشی مؤثر برای افزایش امنیت شبکه و تعیین آدرسهایی است که مجاز به دسترسی Telnet به فرآیند EXEC در روتر هستند. مثال زیر نحوهی ایجاد و اعمال ACL را نشان میدهد.
لیست کنترل دسترسی برای مجاز کردن یک میزبان بهعنوان تنها دسترسی از راه دور به R1
R1(config)# access-list 12 permit host 172.16.4.13
R1(config)# line vty 0 15
R1(config-line)# access-class 12 in
در این مثال، فقط میزبان 172.16.4.13 مجاز به دسترسی Telnet به R1 است و تمام آدرسهای IP دیگر بهصورت ضمنی مسدود میشوند.
پیکربندی ACLهای شمارهگذاریشده Extended در IPv4
برای کنترل دقیقتر فیلترینگ ترافیک، از ACLهای Extended در IPv4 استفاده کنید. این ACLها میتوانند نامگذاریشده یا شمارهگذاریشده باشند و در بازههای 100 تا 199 و 2000 تا 2699 تعریف شوند. ACLهای Extended آدرسهای IP مبدأ و مقصد را بررسی میکنند. علاوه بر این، در انتهای دستور ACL Extended ، میتوانید پروتکل و در صورت لزوم، برنامههای TCP یا UDP را برای فیلتر کردن دقیقتر مشخص کنید.
برای پیکربندی ACLهای شمارهگذاریشده Extended در IPv4 روی یک روتر Cisco، یک ACL Extended ایجاد کنید و آن را روی یک اینترفیس فعال کنید. فرمت دستور ACL Extended در IPv4 برای آزمون CCNA به شرح زیر است:
Router(config)# access-list access-list-number {permit | deny} protocol source source-wildcard [operator port] destination destination-wildcard [operator port] [established] [log]
پارامترهای دستور ACL Extended شمارهگذاریشده در IPv4
پارامتر دستور | توضیحات |
---|---|
access-list-number | شمارهای بین 100-199 یا 2000-2699 را مشخص میکند. |
**permit | deny** |
protocol | اگر مشخص شود، پروتکل TCP، UDP، ICMP، EIGRP، OSPF یا IP را فیلتر میکند. |
source و destination | آدرسهای IP مبدأ و مقصد را تعیین میکند. |
source-wildcard و destination-wildcard | ماسک Wildcard که مشخص میکند کدام بخشها باید مطابقت داشته باشند و کدام بخشها اهمیتی ندارند. |
operator [port | app_name] | عملگر می تواند lt (کمتر از)، gt (بزرگتر از)، eq (برابر با) یا neq (نه برابر) باشد. بسته به اینکه در ACL شماره پورت در کجا پیکربندی شده است، شماره پورت ارجاع شده می تواند پورت مبدا یا درگاه مقصد باشد. به عنوان جایگزینی برای شماره پورت، می توان از نام برنامه های شناخته شده مانند Telnet، FTP و SMTP استفاده کرد. |
established | فقط برای اتصالات ورودی TCP، ترافیک را در صورتی که یک نشست از قبل برقرار شده باشد، مجاز میکند. این نوع ترافیک دارای بیت تأیید (ACK) است. |
log | یک پیام ثبت در کنسول ارسال میکند. |
ACL Extended شمارهگذاریشده IPv4: مسدود کردن FTP از زیرشبکهها
یک ACL برای مسدود کردن ترافیک FTP که از زیرشبکه 172.16.4.0/24 منشأ گرفته و به زیرشبکه 172.16.3.0/24 ارسال میشود، ایجاد میکنیم. در زیر نحوهی ایجاد و اعمال این ACL را نشان میدهد.
جلوگیری از ترافیک FTP از زیرشبکههای خاص
R1(config)# access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21
R1(config)# access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 20
R1(config)# access-list 101 permit ip any any
R1(config)# interface g0/0
R1(config-if)# ip access-group 101 out
دستورات deny ترافیک FTP را که از 172.16.4.0 به 172.16.3.0 میرود، مسدود میکند.
- پورت 21: برای ایجاد نشست و مدیریت اتصال FTP استفاده میشود.
- پورت 20: برای انتقال دادههای FTP استفاده میشود.
- دستور permit اجازه میدهد سایر ترافیکهای IP از G0/0 عبور کنند.
ACL Extended شمارهگذاریشده IPv4: مسدود کردن فقط Telnet از زیرشبکه
برای مسدود کردن ترافیک Telnet که از زیرشبکه 172.16.4.0/24 منشأ گرفته و از طریق اینترفیس G0/0 خارج میشود، یک ACL ایجاد کنید.
جلوگیری از عبور ترافیک Telnet از یک زیرشبکه خاص
R1(config)# access-list 101 deny tcp 172.16.4.0 0.0.0.255 any eq 23
R1(config)# access-list 101 permit ip any any
R1(config)# interface g0/0
R1(config-if)# ip access-group 101 out
این ACL ترافیک Telnet را که از 172.16.4.0 منشأ گرفته و از G0/0 ارسال میشود، مسدود میکند.
تمامی ترافیکهای دیگر از هر مبدأ به هر مقصدی از طریق G0/0 مجاز خواهند بود.
پیکربندی ACLهای نامگذاریشده در IPv4
با استفاده از ACLهای نامگذاریشده، میتوان ACLهای استاندارد و Extended را با یک نام الفبایی (name) بهجای شمارههای عددی فعلی شناسایی کرد.
از آنجا که در ACLهای نامگذاریشده امکان حذف ورودیهای فردی بدون نیاز به پاک کردن و پیکربندی مجدد کل ACL وجود دارد، میتوانید ACL را ویرایش کنید. در نسخههای Cisco IOS 12.3 و جدیدتر، میتوان ورودیهای جداگانه را با استفاده از شماره ترتیب مشخص ویرایش کرد.
مراحل و نحوهی نوشتن ACL استاندارد نامگذاریشده
مراحل و سینتکس زیر برای ایجاد یک ACL استاندارد نامگذاریشده استفاده میشود:
مرحله ۱: نامگذاری ACL
از حالت global configuration، دستور ip access-list standard را اجرا کنید تا یک ACL استاندارد نامگذاریشده ایجاد شود. نام ACL باید یکتا باشد:
Router(config)# ip access-list standard name
مرحله ۲: ایجاد ACL
در حالت configuration مخصوص ACL استاندارد نامگذاریشده، از permit یا deny برای تعیین شرایط فیلترینگ بستهها استفاده کنید:
Router(config-std-nacl)# [sequence-number] {permit | deny} source source-wildcard
- اگر شماره ترتیب مشخص نشود، Cisco IOS بهطور خودکار مقدار آن را با افزایش 10 برای هر دستور اضافهشده تنظیم میکند.
مرحله ۳: اعمال ACL
از دستور ip access-group name برای فعال کردن ACL نامگذاریشده روی یک اینترفیس استفاده کنید:
Router(config-if)# ip access-group name {in | out}
ACL استاندارد نامگذاریشده: مسدود کردن یک میزبان خاص از یک زیرشبکه
برای توپولوژی نمایشدادهشده در شکل توپولوژی خودمان، یک ACL نامگذاریشده با نام TROUBLEMAKER ایجاد کنید که ترافیک میزبان 172.16.4.13 را از خروج از اینترفیس G0/0 مسدود کند.
جلوگیری از عبور ترافیک یک میزبان خاص با استفاده از ACL نامگذاریشده
R1(config)# ip access-list standard TROUBLEMAKER
R1(config-std-nacl)# deny host 172.16.4.13
R1(config-std-nacl)# permit 172.16.4.0 0.0.0.255
R1(config)# interface g0/0
R1(config-if)# ip access-group TROUBLEMAKER out
مراحل و نحوهی نوشتن ACL Extended نامگذاریشده
مراحل و سینتکس زیر برای ایجاد یک ACL Extended نامگذاریشده استفاده میشود:
مرحله ۱: نامگذاری ACL
از حالت global configuration، دستور ip access-list extended را اجرا کنید تا یک ACL Extended نامگذاریشده ایجاد شود:
Router(config)# ip access-list extended name
مرحله ۲: ایجاد ACL
در حالت configuration مخصوص ACL Extended نامگذاریشده، از permit یا deny برای تعیین شرایط فیلترینگ بستهها استفاده کنید:
Router(config-ext-nacl)# [sequence-number] {deny | permit} protocol source source-wildcard [operator port] destination destination-wildcard [operator port] [established] [log]
مرحله ۳: اعمال ACL
از دستور ip access-group name برای فعال کردن ACL Extended نامگذاریشده روی یک اینترفیس استفاده کنید:
Router(config-if)# ip access-group name {in | out}
افزودن توضیحات به ACLهای نامگذاریشده یا شمارهگذاریشده در IPv4
میتوانید به ACLها توضیحات (comments) اضافه کنید. برای این کار، از گزینهی remark در دستورات permit یا deny استفاده کنید.
توضیحات، عباراتی توصیفی هستند که درک و عیبیابی ACLها را آسانتر میکنند. مثال زیر نحوهی افزودن توضیح به یک ACL شمارهگذاریشده را نشان میدهد.
افزودن توضیحات به یک ACL شمارهگذاریشده
R1(config)# access-list 101 remark Permitting host to Telnet to Server
R1(config)# access-list 101 permit tcp host 172.16.4.13 host 172.16.3.10 eq telnet
افزودن توضیحات به یک ACL نامگذاریشده
R1(config)# ip access-list standard PREVENTION
R1(config-std-nacl)# remark To allow Jones subnet through
R1(config-std-nacl)# deny 172.16.4.0 0.0.0.255
بررسی ACLهای IPv4
پس از پیکربندی یک ACL، از دستورات show برای بررسی تنظیمات استفاده کنید. از دستور show access-lists برای نمایش محتوای تمام ACLها استفاده کنید. با وارد کردن نام یا شماره ACL در این دستور، میتوان یک ACL خاص را نمایش داد.
بررسی پیکربندی ACL
R1# show access-lists
Standard IP access list SALES
10 permit 10.3.4.1
20 permit 10.4.4.1
30 permit 10.5.5.1
40 deny 10.1.1.0, wildcard bits 0.0.0.255
50 permit any
Extended IP access list ENG
10 permit tcp host 10.22.2.1 any eq telnet (25 matches)
20 permit tcp host 10.33.3.1 any eq ftp
30 permit tcp host 10.33.3.1 any eq ftp-data
در خروجی دستور show access-lists مشاهده میشود که شمارههای ترتیب (sequence numbers) به مقدار 10 افزایش مییابند، زیرا مدیر شماره ترتیب خاصی تعیین نکرده است.
همچنین این دستور نشان میدهد که چند بار Cisco IOS یک بسته را با یک دستور تطبیق داده است—برای مثال، در بیانیه اول ACL نامگذاریشده ENG، تعداد 25 بار یک بسته با این قانون تطبیق داده شده است.
بررسی ACL روی یک اینترفیس خاص
دستور show ip interface اطلاعات مربوط به اینترفیسهای IP را نمایش میدهد و مشخص میکند که آیا ACLهای IP روی اینترفیس فعال شدهاند یا خیر. در مثال زیر، دستور show ip interface g0/0 اجرا شده است که نشان میدهد ACL IN در اینترفیس G0/0 پیکربندی شده است.
بررسی پیکربندی ACL روی یک اینترفیس خاص
R1# show ip interface g0/0
GigabitEthernet0/0 is up, line protocol is up
Internet address is 10.1.1.1/24
Broadcast address is 255.255.255.255
Address determined by setup command
MTU is 1500 bytes
Helper address is not set
Directed broadcast forwarding is disabled
Outgoing access list is not set
Inbound access list is 1
Proxy ARP is enabled
<output omitted>
بررسی ایجاد و اعمال ACL در تنظیمات در حال اجرا (Running Configuration)
در نهایت، میتوانید از دستور show running-config برای بررسی ایجاد و اعمال ACL استفاده کنید.
بررسی ایجاد و اعمال ACL در تنظیمات در حال اجرا
R1# show running-config
Building configuration...
!
<output omitted>
!
interface GigabitEthernet0/0
ip address 10.44.44.1 255.255.255.0
ip access-group ENG out
!
<output omitted>
!
interface Serial0/0/0
ip address 172.16.2.1 255.255.255.252
ip access-group SALES in
!
<output omitted>
!
ip access-list standard SALES
permit 10.3.4.1
permit 10.4.4.1
permit 10.5.5.1
deny 10.1.1.0 0.0.0.255
permit any
!
ip access-list extended ENG
permit tcp host 10.22.2.1 any eq telnet
permit tcp host 10.33.3.1 any eq ftp
permit tcp host 10.33.3.1 any eq ftp-data
!
<output omitted>
مقایسه ACLهای IPv4 و IPv6
ACLهای IPv4 و IPv6 تفاوتهای جزئی با یکدیگر دارند، همانطور که در جدول زیر نشان داده شده است.
مقایسه ACLهای IPv4 و IPv6
ویژگی | فقط در IPv4 | فقط در IPv6 | هر دو |
---|---|---|---|
مقایسه آدرسهای مبدأ و/یا مقصد | ✔ | ||
مقایسه آدرسهای میزبان یا زیربخشها/پیشوندها | ✔ | ||
اعمال ACL بهصورت جهتدار روی یک اینترفیس | ✔ | ||
مقایسه شماره پورتهای TCP یا UDP مبدأ و/یا مقصد | ✔ | ||
مقایسه کدهای ICMP | ✔ | ||
شامل دستور ضمنی deny در انتهای ACL | ✔ | ||
اعمال فقط روی بستههای IPv4 | ✔ | ||
اعمال فقط روی بستههای IPv6 | ✔ | ||
استفاده از شمارهها برای شناسایی ACL | ✔ | ||
استفاده از نامها برای شناسایی ACL | ✔ | ||
شامل دستور ضمنی permit در انتهای ACL | ✔ |
پیکربندی ACL در IPv6
مراحل اصلی پیکربندی ACLهای IPv6 مشابه ACLهای نامگذاریشده در IPv4 است:
- مرحله ۱: نامگذاری ACL
- مرحله ۲: ایجاد ACL
- مرحله ۳: اعمال ACL
مرحله ۱: نامگذاری ACL در IPv6
برای نامگذاری یک ACL در IPv6، دستور ipv6 access-list را در حالت global configuration اجرا کنید:
Router(config)# ipv6 access-list name
توجه: نحو (syntax) این دستور برای نامگذاری ACL در IPv6 در ACLهای استاندارد و Extended یکسان است. با این حال، ACLهای استاندارد و Extended در IPv6 از نظر عملکرد با ACLهای استاندارد و Extended در IPv4 تفاوت دارند.
مرحله ۲: ایجاد ACL در IPv6
یک ACL استاندارد در IPv6 شامل اطلاعات مربوط به آدرسهای مبدأ و مقصد است، اما شامل TCP، UDP یا ICMPv6 نمیشود. نحو (syntax) یک ACL استاندارد در IPv6 بهصورت زیر است:
Router(config-ipv6-acl)# {permit | deny} ipv6 {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [log]
ACLهای Extended در IPv6
ACLهای Extended در IPv6 میتوانند بسیاری از فیلدهای هدر بستههای IPv6، پیامهای TCP، UDP و ICMPv6 و هدرهای توسعهیافته IPv6 را شامل شوند. نحو (syntax) ACL Extended در IPv6 بهصورت زیر است:
Router(config-ipv6-acl)# {permit | deny} protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port]] [dscp value] [fragments] [routing-type [routing-value]] [log] [sequence number]
توضیح پارامترها:
- اگر
icmp
،tcp
یاudp
را بهعنوان پروتکل مشخص کنید، گزینههای اضافی برای فیلتر کردن بستهها در دسترس خواهند بود.icmp
: تعیین نوع خاصی از ICMPv6 برای فیلتر کردن.tcp
: امکان فیلتر کردن شش پرچم TCP (ACK, FIN, PSH, RST, SYN, URG).udp
: فیلتر کردن هدرهای توسعهیافته در IPv6 مانند IPsec.
مرحله ۳: اعمال ACL در IPv6
برای اعمال ACL در IPv6 روی یک اینترفیس، از نحو (syntax) زیر استفاده کنید:
Router(config-if)# ipv6 traffic-filter access-list-name {in | out}
برای اعمال ACL IPv6 روی خطوط vty (مشابه IPv4)، کافی است ipv6 را جایگزین کنید:
Router(config-line)# ipv6 access-class access-list-name
ACL استاندارد IPv6: مجاز کردن دسترسی از راه دور SSH
توپولوژی موجود در شکل زیر برای سناریوهای پیکربندی ACL در IPv6 استفاده شده است.
توپولوژی پیکربندی ACL در IPv6
مثال زیر نحوهی ایجاد و اعمال ACL در IPv6 را نشان میدهد که فقط به میزبان 2001:DB8:1:4::13 اجازه اتصال از راه دور به خطوط vty در R1 را میدهد.
فهرست دسترسی برای مجاز کردن تنها یک میزبان به R1
R1(config)# ipv6 access-list SSH-HOST
R1(config-ipv6-acl)# permit ipv6 host 2001:DB8:1:4::13 any
R1(config-ipv6-acl)# deny ipv6 any any
R1(config-ipv6-acl)# exit
R1(config)# line vty 0 4
R1(config-line)# ipv6 access-class SSH-HOST in
- دستور permit فقط به میزبان 2001:DB8:1:4::13 اجازه دسترسی میدهد.
- تمامی ترافیکهای دیگر IPv6 مسدود خواهند شد.
- این ACL در خطوط vty اعمال شده است با استفاده از دستور ipv6 access-class.
ACL Extended IPv6: مجاز کردن فقط ترافیک وب
مثال زیر نحوهی ایجاد و اعمال ACL در IPv6 را نشان میدهد که فقط ترافیک وب ورودی را از زیرشبکه 2001:DB8:1:4::/64 به مقصد 2001:DB8:1:3::/64 مجاز میکند.
فهرست دسترسی برای جلوگیری از ترافیک وب از زیرشبکههای خاص
R1(config)# ipv6 access-list WEB-ONLY
R1(config-ipv6-acl)# permit tcp 2001:DB8:1:4::/64 2001:DB8:1:3::/64 eq www
R1(config-ipv6-acl)# deny ipv6 2001:DB8:1:4::/64 2001:DB8:1:3::/64
R1(config-ipv6-acl)# permit ipv6 2001:DB8:1:4::/64 any
R1(config-ipv6-acl)# exit
R1(config)# interface g0/1
R1(config-if)# ipv6 traffic-filter WEB-ONLY in
- دستور permit اول: اجازه دسترسی به سرویسهای وب را از 2001:DB8:1:4::/64 به 2001:DB8:1:3::/64 میدهد.
- دستور deny: تمامی ترافیکهای دیگر از 2001:DB8:1:4::/64 به 2001:DB8:1:3::/64 را مسدود میکند.
- دستور permit آخر: سایر ترافیکهای ورودی از 2001:DB8:1:4::/64 به هر مقصدی را مجاز میکند.
بررسی ACLهای IPv6
همانند ACLهای IPv4، میتوان پیکربندی و اعمال ACLهای IPv6 را با استفاده از دستور show run بررسی کرد. (نگاه کنید به مثال 9-14)
بررسی ACLها در پیکربندی
R1# show run
Building configuration...
<some output omitted>
!
interface GigabitEthernet0/1
ipv6 traffic-filter WEB-ONLY in
ipv6 address FE80::1 link-local
ipv6 address 2001:DB8:1:4::1/64
!
ipv6 access-list WEB-ONLY
permit tcp 2001:DB8:1:4::/64 2001:DB8:1:3::/64 eq www
deny ipv6 2001:DB8:1:4::/64 2001:DB8:1:3::/64
permit ipv6 2001:DB8:1:4::/64 any
!
ipv6 access-list SSH-HOST
permit ipv6 host 2001:DB8:1:4::13 any
deny ipv6 any any
!
line vty 0 4
ipv6 access-class SSH-HOST in
login local
transport input ssh
!
R1#
بررسی تمام ACLهای پیکربندیشده
در بسیاری از موارد، پیکربندی روترهای عملیاتی طولانی و پیچیده است. در آزمون CCNA، ممکن است دسترسی به show run نداشته باشید. بنابراین، میتوان از دستور show access-lists استفاده کرد که تمام ACLهای IPv4 و IPv6 پیکربندیشده روی دستگاه را نمایش میدهد.
بررسی تمام ACLهای پیکربندیشده
R1# show access-lists
Standard IP access list SALES
10 permit 10.3.3.1
20 permit 10.4.4.1
30 permit 10.5.5.1
40 deny 10.1.1.0, wildcard bits 0.0.0.255
50 permit any
Extended IP access list ENG
10 permit tcp host 10.22.2.1 any eq telnet
20 permit tcp host 10.33.3.1 any eq ftp
30 permit tcp host 10.33.3.1 any eq ftp-data
IPv6 access-list SSH-HOST
permit ipv6 host 2001:DB8:1:4::13 any sequence 10
deny ipv6 any any sequence 20
IPv6 access-list WEB-ONLY
permit tcp 2001:DB8:1:4::/64 2001:DB8:1:3::/64 eq www sequence 10
deny ipv6 2001:DB8:1:4::/64 2001:DB8:1:3::/64 sequence 20
permit ipv6 2001:DB8:1:4::/64 any sequence 30
R1#
نکته: در Cisco IOS، شمارههای ترتیب (sequence numbers) در IPv6 ACLها در انتهای هر دستور اضافه میشوند، برخلاف IPv4 ACLها که شمارهها در ابتدای دستورات قرار میگیرند.
بررسی آمار (Match Statistics) برای ACLهای IPv6
نحوهی بررسی آمار مطابقت بستهها (Match Statistics) را برای ACLهای IPv6 نشان میدهد.
بررسی آمار تطبیق ACL در IPv6
R1# show ipv6 access-list
IPv6 access list SSH-HOST
permit ipv6 host 2001:DB8:1:4::13 any (1 match(es)) sequence 10
deny ipv6 any any (5 match(es)) sequence 20
IPv6 access list WEB-ONLY
permit tcp 2001:DB8:1:4::/64 2001:DB8:1:3::/64 eq www (5 match(es)) sequence 10
deny ipv6 2001:DB8:1:4::/64 2001:DB8:1:3::/64 (4 match(es)) sequence 20
permit ipv6 2001:DB8:1:4::/64 any (75 match(es)) sequence 30
توضیح:
- مقدار match(es) نشان میدهد چند بار بستهها با این ACL تطبیق داده شدهاند.
- شمارههای ترتیب (sequence numbers) در پایان هر خط مشخص شدهاند.
بررسی اعمال (Placement) ACL IPv6 روی یک اینترفیس
برای بررسی اعمال یک ACL IPv6 روی اینترفیس، از دستور show ipv6 interface استفاده کنید. این دستور نشان میدهد که ACL WEB-ONLY روی اینترفیس g0/1 اعمال شده است.
بررسی اعمال ACL IPv6 روی یک اینترفیس
R1# show ipv6 interface g0/1
GigabitEthernet0/1 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::1
No Virtual link-local address(es):
Global unicast address(es):
2001:DB8:1:4::1, subnet is 2001:DB8:1:4::/64
Joined group address(es):
FF02::1
FF02::2
FF02::1:FF00:1
MTU is 1500 bytes
ICMP error messages limited to one every 100 milliseconds
ICMP redirects are enabled
ICMP unreachables are sent
Input features: Access List
**Inbound access list: WEB-ONLY**
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds (using 30000)
ND advertised reachable time is 0 (unspecified)
ND advertised retransmit interval is 0 (unspecified)
ND router advertisements are sent every 200 seconds
ND router advertisements live for 1800 seconds
ND advertised default router preference is Medium
Hosts use stateless autoconfig for addresses
R1#
توضیح:
- مقدار Inbound access list: WEB-ONLY نشان میدهد که ACL WEB-ONLY روی اینترفیس g0/1 اعمال شده است.
- میتوان از این دستور برای تأیید اعمال هر ACL IPv6 روی هر اینترفیس استفاده کرد.
عیبیابی (Troubleshooting) ACLها
شبکهی شما ممکن است بهدرستی پیکربندی شده باشد، بهطوریکه تمام میزبانها آدرسدهی DHCP را دریافت کنند، جدولهای مسیریابی کاملاً پر شده باشند و لایهی فیزیکی بهطور کامل کار کند، اما ممکن است یک ACL در مسیر دادهها باعث ایجاد مشکل شود. عیبیابی مشکلات ناشی از یک ACL میتواند کار شما را دشوارتر کند.
ACLها ممکن است ابزارهای عیبیابی معمول مانند ping و traceroute را مسدود کنند، درحالیکه همچنان اجازهی عبور ترافیک عادی را بدهند. بنابراین، یک مدیر شبکه ممکن است نیاز به استفاده از ابزارهای دیگر برای یافتن مشکل داشته باشد.
مراحل عیبیابی ساختاریافته ACLها
اگر تشخیص دادهاید که مشکل مربوط به پیکربندی ACL است، میتوانید از سه مرحلهی زیر برای یافتن علت مشکل استفاده کنید:
مرحله ۱:
از آنجا که ACLها تا زمانی که اعمال نشوند، مشکلی ایجاد نمیکنند، باید تعیین کنید که کدام اینترفیسها تحت تأثیر ACLها قرار دارند. برای این کار، از دستورات show run یا show ip interface استفاده کنید.
مرحله ۲:
پیکربندی ACL را بررسی کنید. برای این کار، از دستورات show access-lists، show ip access-lists یا show run استفاده کنید.
مرحله ۳:
تحلیل کنید که کدام بستهها با ACL تطبیق پیدا میکنند. دستورات show access-lists و show ip access-lists کمک میکنند تا مشخص شود چند بار بستهها با یک بیانیه (statement) مطابقت داشتهاند.
خطاهای رایج در پیکربندی ACLها
برخی از اشتباهات متداول در پیکربندی ACLها شامل موارد زیر هستند:
- دستورات ACL بههمریخته هستند (ترتیب نادرست دارند).
- آدرسهای مبدأ و مقصد و/یا شمارههای پورت جابهجا شدهاند.
- ACL در جهت اشتباه اعمال شده است.
- خطاهای نحوی یا املایی باعث تأثیر نادرست یا عدم تأثیر ACL میشوند.
- ACLهای استاندارد خیلی نزدیک به مبدأ بهجای مقصد قرار گرفتهاند.