- الرئيسية
- الشبكات متعددة السحابات
- Customer Edge diagnostics
- Reaching a Customer Edge
- وحدة تحكم الموقع
وحدة تحكم الموقع
تم الالتقاط في 2026-07-28 من إحدى عقد CE في هذا النشر. يسجّل sitecli/capture-manifest.json
أي عقدة، ويعيد scripts/capture-sitecli.sh --check التحقق من سطح الأوامر
مقابل CE حي.
كل Customer Edge يقدّم وحدة تحكم الموقع من F5 على https://<sli-ip>:65500. في هذا
النشر تكون عادةً المسار الأول الذي يُجرَّب.
هي الأقل مطالبةً منك: لا مفتاح SSH لتوزيعه، ولا مضيف انتقال لصيانته، ولا عنوان IP عام على
العقدة، ولا استبدال للجهاز الافتراضي لتمكينها. من يُسمح له بالاتصال يصبح قرار Azure
RBAC. وهي لا تحتاج إلى أن يكون الموقع مسجَّلاً: تم التقاط هذه الصفحة أول مرة
بينما كانت المواقع الثلاثة جميعها تُبلّغ عن site_state: FAILED، وأُعيد التحقق منها دون تغيير مقابل
العقد نفسها بعد أن أصبحت ONLINE.
المشكلة أن وحدة تحكم الموقع تستجيب فقط على عنوان العقدة الداخلي (SLI)، الذي لا يمكن الوصول إليه إلا من داخل VNet. يسدّ Azure Bastion هذه الفجوة دون وضع أي شيء آخر على الشبكة.
قبل أن تبدأ
Section titled “قبل أن تبدأ”-
سجّل الدخول إلى Azure وأضف امتداد Bastion. الأنفاق ميزة خاصة بالعميل الأصلي والامتداد غير مثبت افتراضيًا.
Terminal window az loginaz extension add --name bastion -
احصل على دور Reader على الجهاز الافتراضي لـ CE، وواجهة الشبكة الخاصة به، ومضيف Bastion. هذا متطلب موثّق من Microsoft وهو غير مُتحقَّق منه هنا — كل تشغيل في هذا النشر جرى بصفة مالك الاشتراك، لذا لم يُثبت أن أي دور أدنى كافٍ أو غير كافٍ.
-
تأكد من أن Bastion منشور وقادر. لا تدعم فئة Basic SKU الأنفاق ولا الاتصال المستند إلى IP، لذا فإن
StandardوTrueهنا كلاهما أساسيان.Terminal window az network bastion list -g "$(terraform output -raw resource_group_name)" \--query "[].{name:name, sku:sku.name, tunneling:enableTunneling}" -o tableName Sku Tunneling----------------- -------- -----------mcn-ce-ha-bastion Standard True
افتح النفق
Section titled “افتح النفق”خذ القيم من terraform output بدلًا من كتابتها — فمعرّف المورد ليس
شيئًا يُجمَّع يدويًا.
-
اقرأ اسم مضيف Bastion، ومجموعة الموارد، ومعرّف مورد الجهاز الافتراضي لـ CE المستهدف.
Terminal window cd terraformBASTION=$(terraform output -raw bastion_name)RG=$(terraform output -raw resource_group_name)VM_ID=$(terraform output -json ce_vm_ids | jq -r '.eastus01')mcn-ce-ha-bastionrg-mcn-ce-ha-<deployer>/subscriptions/…/providers/Microsoft.Compute/virtualMachines/f5-xc-ce-vm-01 -
ابدأ النفق. يُبقي المنفذ مفتوحًا حتى يتم إيقافه، لذا شغّله في الخلفية أو استخدم طرفية ثانية.
Terminal window az network bastion tunnel \--name "$BASTION" \--resource-group "$RG" \--target-resource-id "$VM_ID" \--resource-port 65500 \--port 65500 &WARNING: Opening tunnel on port: 65500WARNING: Tunnel is ready, connect on port 65500WARNING: Ctrl + C to closeجميع الأسطر الثلاثة مسبوقة بـ
WARNING:. هذا هو Azure CLI يكتب التقدّم إلى stderr، وليس مشكلة. انتظر ظهورTunnel is readyقبل الاتصال. -
تأكد من أن المستمع محلي، على loopback:
Terminal window lsof -nP -iTCP:65500 -sTCP:LISTENCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEPython 41648 you 7u IPv4 … 0t0 TCP 127.0.0.1:65500 (LISTEN) -
افتح وحدة التحكم. النفق يجعلها محلية، لذا فالعنوان هو
localhost— وليس عنوان العقدة.Terminal window open https://localhost:65500/ # macOSxdg-open https://localhost:65500/ # Linux -
أوقف النفق عند الانتهاء —
Ctrl-C، أوkill %1إن كنت قد شغّلته في الخلفية. تركه مفتوحًا يحتفظ بالمنفذ المحلي 65500 وبجلسة Bastion.
ما الذي ستراه
Section titled “ما الذي ستراه”مربع حوار لبيانات الاعتماد، وليس صفحة تسجيل دخول. تستخدم وحدة التحكم مصادقة HTTP Basic، لذا يعرض المتصفح مطالبته الخاصة باسم المستخدم وكلمة المرور. لا يوجد نموذج للنظر إليه:
curl -skI https://localhost:65500/HTTP/1.1 401 UnauthorizedWWW-Authenticate: Basic realm="Volterra Site Console"Content-Type: text/html; charset=utf-8Content-Length: 0الاستجابة 401 بذلك النطاق تعني أن وحدة التحكم تعمل بشكل صحيح. هذا ما يُفترض أن يحصل عليه الطلب
غير المصادق عليه — وتقديم بيانات اعتماد admin إلى نفس عنوان URL يُرجع
200، وهي الطريقة التي تؤكد بها بيانات الاعتماد قبل فتح المتصفح:
curl -sk -u admin -o /dev/null -w '%{http_code}\n' https://localhost:65500/Enter host password for user 'admin':200استخدام -u admin بدون نقطتين يجعل curl يطالب بكلمة المرور بدلًا من أخذها من
سطر الأوامر، حيث ستنتهي في سجل الأوامر وفي قائمة العمليات.
تحذير بشأن الشهادة، لثلاثة أسباب في آن واحد. بفحص الشهادة مباشرة:
openssl s_client -connect localhost:65500 -servername localhost </dev/null 2>/dev/null \ | openssl x509 -noout -subject -issuer -datessubject=C=US, ST=California, L=Santa Clara, O=Volterra, OU=Volterra Edge Services, CN=site-local.volterra.ioissuer=C=US, ST=California, L=Santa Clara, O=Volterra, OU=Volterra Edge Services, CN=site-local.volterra.ionotBefore=Oct 25 04:51:31 2024 GMTnotAfter=Oct 25 04:51:31 2025 GMTالموضوع مطابق للمُصدِر، إذن فهي موقّعة ذاتيًا. الاسم هو site-local.volterra.io بينما
أنت تتصل بـ localhost، لذا لن يتطابق. وفي الإصدار الذي يعمل عليه هذا النشر،
انتهت صلاحية الشهادة في 25 أكتوبر 2025 — الجهاز يأتي بها، ولا شيء
في هذا المستودع يجدّدها.
توقّع تحذيرًا صريحًا من المتصفح، وتوقّعه في كل مرة. سطر الموضوع أعلاه هو الجزء المفيد: به تتأكد أنك وصلت إلى الجهاز وليس إلى شيء آخر يستمع على المنفذ المحلي 65500.
بيانات اعتماد المسؤول
Section titled “بيانات اعتماد المسؤول”سجّل الدخول باسم admin. هذا التوثيق لا ينشر كلمة المرور، ولا ينبغي له.
سببان يجعلان عدم نشرها أهم هنا مما قد يبدو:
- هذا التوثيق عام. طباعة كلمة مرور وحدة التحكم الحالية للأسطول ستحوّل “امتلاك دور Reader على Bastion” إلى وصول كامل للجهاز لأي شخص يقرأ الصفحة.
- كلمة المرور المنشورة في التوثيق تصبح خاطئة في اللحظة التي يدوّرها فيها أحدهم، وخاطئة بأكثر الطرق تضليلًا — إذ يستنتج القارئ أن وصوله معطّل بدلًا من أن الصفحة قديمة.
بمجرد تدويرها، احصل عليها من حيث يحتفظ فريقك بالأسرار التشغيلية.
لماذا يجب أن يستهدف النفق معرّف المورد
Section titled “لماذا يجب أن يستهدف النفق معرّف المورد”--target-resource-id مطلوب. استهداف عنوان العقدة بدلًا من ذلك مرفوض —
أيًا كان العنوان الذي تستخدمه، لذا لم يُطبع هنا عنوان حقيقي عن قصد:
az network bastion tunnel --name "$BASTION" -g "$RG" \ --target-ip-address <any-sli-address> --resource-port 65500 --port 65501ERROR: Custom ports are not allowed. Allowed ports for Tunnel with IP connect is 22, 3389.السبب ليس أن الاتصال المستند إلى IP معطّل — ففي هذا Bastion قيمة
ip_connect_enabled هي true. لا تدعم Microsoft المنافذ المخصصة عبر اتصالات العميل الأصلي
المستندة إلى IP بغض النظر عن ذلك الإعداد
(وثائق Azure)، و65500 هو
منفذ مخصص. فحص تكوين Bastion هنا لا يقود إلى شيء؛ استخدم معرّف
المورد.
عندما لا يعمل
Section titled “عندما لا يعمل”| العَرَض | السبب | الحل |
|---|---|---|
ERROR: Custom ports are not allowed. Allowed ports for Tunnel with IP connect is 22, 3389. | استُخدم --target-ip-address | استخدم --target-resource-id |
ERROR: Defined port is currently unavailable | نفق آخر يحتفظ بالفعل بذلك المنفذ المحلي | أوقف النفق الآخر، أو مرّر قيمة --port مختلفة؛ ويبقى --resource-port عند 65500 |
terraform output -raw bastion_name يساوي null أو فارغ | Bastion غير منشور | اضبط enable_bastion = true ونفّذ apply |
| النفق يبدأ لكن معرّف المورد فارغ | استخدم مرشّح jq اسم الجهاز الافتراضي بدلًا من مفتاح الموقع | استخدم المفاتيح eastus01/02/03 |
401 Unauthorized، النطاق Volterra Site Console | ليس خطأً — طلب غير مصادق عليه | قدّم بيانات اعتماد admin |
| المتصفح يرفض الشهادة | موقّعة ذاتيًا، وعدم تطابق الاسم، ومنتهية الصلاحية منذ أكتوبر 2025 | متوقّع؛ تأكد أن الموضوع هو CN=site-local.volterra.io وتابع |
المسارات الأخرى
Section titled “المسارات الأخرى”ONLINE.