کلاینت های AnyConnect روی زیرشبکه اشتباه بالا می آیند، یا سرور DHCP از دادن هر چیزی خودداری می کند، در حالی که سیاست گروه در نگاه اول درست به نظر می رسد. در ASA دو فیلد در دو جا وجود دارد که هر دو شبیه «آدرس ها از کجا می آیند» به گوش می رسند، و تنظیم فیلد اشتباه دقیقاً همین را تولید می کند. پروفایل اتصال نام سرور DHCP را می گوید؛ سیاست گروه زیرشبکه ای را نام می برد که آن سرور باید از آن انتخاب کند. هیچ کدام استخر نمی سازند.

سه شیء، سه پرسش

ابتدا مدل تخصیص را از استخر جدا کنید، چون دو مدل پیکربندی مشترک ندارند. اگر ASA خودش آدرس ها را پخش می کند، یک استخر محلی تعریف می کنید و سیاست گروه را به آن اشاره می دهید. اگر سرور DHCP بیرونی آن ها را پخش می کند، پروفایل اتصال آن سرور را نام می برد و سیاست گروه یک اشارهٔ scope می دهد. قاطی کردن این دو دلیل معمول ظاهر نشدن آدرس است.

IntentObjects involved
ASA allocates from its own poolip local pool plus the group policy's address-pool
External DHCP allocatesdhcp-server on the tunnel group, dhcp-network-scope on the group policy

پیش از تغییر هر مقدار، مقادیر مؤثر را بخوانید

خط حذف شده با none صریح یکسان نیست. پیکربندی در حال اجرا نشان می دهد چه نوشته اید؛ show run all group-policy نشان می دهد سیاست واقعاً به چه چیزی حل می شود، از جمله پیش فرض های ارث بری شده. پیش از تصمیم به اشتباه بودن scope هر دو را بررسی کنید، چون سیاست گروهی که از سیاست پیش فرض ارث می برد می تواند مقداری بدهد که هرگز در فهرست کوتاه دیده نمی شود.

show running-config group-policy RemoteStaff
show run all group-policy RemoteStaff
show running-config tunnel-group RemoteStaff
group-policy RemoteStaff attributes
 dhcp-network-scope ?

خروجی ? ارزش خواندن روی نسخهٔ نصب شدهٔ شما را دارد، چون مقادیر پذیرفته شده و متن راهنمایشان بین نسخه ها تفاوت می کند. مرجع Cisco ASA 9.24 برای سیاست گروه این ویژگی را نشانی قابل مسیریابی روی زیرشبکهٔ موردنظر، بیرون از استخر تخصیص، با ترجیح نشانی رابط توصیف می کند. این محدودهٔ استخر نیست و شمارهٔ شبکه هم نیست.

scope را روی یک نشانی بگذارید، نه یک محدوده

فرض کنید استخری که می خواهید سرور استفاده کند 10.50.30.50 تا 10.50.30.200 روی یک /24 است و رابط ASA در آن بخش 10.50.30.1 است. مقدار scope برابر 10.50.30.1 است. نوشتن 10.50.30.0 شکست می خورد چون شمارهٔ شبکه است، و نوشتن محدوده شکست می خورد چون ویژگی یک نشانی می گیرد. اگر نشانی انتخابی نشانی رابط نباشد، به یک مسیر ایستا نیاز دارد تا پاسخ سرور DHCP به آن برسد.

group-policy RemoteStaff attributes
 dhcp-network-scope 10.50.30.1

این قطعه فقط یک کار می کند. سرور DHCP را پیکربندی نمی کند، آنجا استخر نمی سازد، و پروفایل دسترسی از راه دور ناقص را به یک پروفایل کارا تبدیل نمی کند. رفتار مستندشده در اینجا فقط IPv4 است؛ انتظار نداشته باشید DHCPv6 یا واگذاری پیشوند را هدایت کند.

آن را با یک نقطهٔ بازگشت تغییر دهید

ابتدا snapshot بگیرید تا بازگشت یک فرمان باشد نه بازسازی. پیکربندی مربوطه را پیش از ویرایش در فایلی ذخیره کنید و بدانید no روی نسخهٔ شما چه چیزی را بازمی گرداند: ویژگی را به مقدار پیش فرض یا ارث بری شدهٔ آن برمی گرداند، که ممکن است none باشد نه سیاست بالای آن.

copy running-config flash:pre-dhcp-scope.cfg
conf t
 group-policy RemoteStaff attributes
  no dhcp-network-scope
  dhcp-network-scope 10.50.30.1
 end
write memory

حذف ویژگی یک گام تشخیصی هم هست. بدون scope تعریف شده، سرور DHCP در استخرهای خودش دنبال نشانی تخصیص نیافته می گردد، بنابراین کلاینت ممکن است جای غیرمنتظره ای فرود بیاید اما دست کم وصل می شود. این نتیجه می گوید مسیر درخواست کار می کند و انتخاب استخر است که شکست می خورد.

نشانی، مسیر و مجوزها را بررسی کنید

تخصیص را از جدول نشست ها بخوانید نه از پنجرهٔ کلاینت، سپس تأیید کنید که نشانی به سمت تونل قابل مسیریابی است و فیلترهای سیاست گروه ترافیکی را که انتظار دارید مجاز می دانند. تصمیم تخصیص، تصمیم مسیریابی نیست، و کلاینتی که نشانی را از استخر درست می گیرد باز هم می تواند در هر درخواست شکست بخورد.

show vpn-sessiondb detail anyconnect filter name testuser
show ip local pool
show route | include 10.50.30
ping 10.50.30.61 source inside

اگر نشست نشانی موردنظر شما را نشان می دهد اما ترافیک می میرد، scope به عنوان مظنون تمام شده است. مسیر بازگشت، تنظیمات split-tunnel یا فیلترهای سیاست گروه، و اینکه آیا scope مربوط به DHCP روی بخشی است که ASA واقعاً به آن مسیریابی می کند را ببینید.

مقالات مرتبط