موقف
لا بد لي من إحضار اتصال VPN بين موقعين على الشبكة. في غرفة الخادم ، على ما يبدو ، كانت هناك بوابات أمان C-Terra Gateway الإصدار 4.2. المخطط بسيط. حتى أن البائع نشر برنامج تكوين موصى به. لكن ... البرنامج النصي للمورد يستخدم ثلاث واجهات للشبكة ، والبوابات الخاصة بي بها اثنتان فقط.
أقوم بإعداد القهوة ، وتذكر CCNA الخاصة بي ، وأحاول استخدام ما لدي - منافذ مجانية في المفاتيح المُدارة.
شبكتي
شبكتي عبارة عن موقعين منفصلين جغرافيًا في مجال بث واحد. مساحة العنوان: 10.10.205.0/24:
على يد اثنين من بوابتي الأمان C-Terra Gateway الإصدار 4.2 مع حزمة C-Terra L2.
حول
حزمة C-Terra L2 تسمح لك الحزمة بتبديل واجهة بوابة واحدة أو أكثر إلى وضع PROMISC. تعترض واجهة PROMISC إطارات ارتباط البيانات ، وتقوم C-Terra L2 بتغليفها في UDP.
ثم يتم تشفير حزم UDP (مغلفة في ESP). يؤدي هذا إلى إنشاء اتصال L2-over-L3 VPN. تم تثبيت C-Terra L2 مسبقًا على جميع بوابات الأمان ويتم تنشيطه بترخيص منفصل.
في السيناريو الموصى به ، توجد بوابات الأمان على حافة الشبكة ، ويتم تخصيص واجهة منفصلة للإدارة:
لتسهيل وصف الواجهات:
- Gi0 / 0 - واجهات PROMISC ؛
- Gi0 / 1 - واجهات L3 WAN ؛
- Gi0 / 2 - واجهات إدارة مخصصة. أفهم أنه يجب علي إدارة بوابة الأمان الثانية عبر نفق VPN.
القرار
انتهى فنجان القهوة الأول بينما كنت أقرأ في Habré حوالي 802.1Q - تذكرت CCNA. تم تبريد الكوب الثاني (سأقوم بتسخينه في الميكروويف) أثناء تبديل الجهاز ، كما هو موضح في الشكل:
أميز ثلاثة أنواع من حركة المرور:
- حركة المرور الرئيسية بين أجهزة R1 و R2. سأقوم بتعيينها على أنها بيانات مجمعة وأضعها في VLAN 205. يجب تشفير البيانات المجمعة قبل النقل بين المواقع ؛
- حركة إدارة البوابة - MGMT. سآخذها إلى VLAN 10. يجب تشفير حركة مرور MGMT إلى البوابة في الموقع البعيد ؛
- BULK DATA و MGMT بعد التشفير سأقوم بتعيينها كـ ESP DATA وأضعها في VLAN 100.
وفقًا لتقديراتي ، سيبدو نقل BULK DATA / ESP DATA على الشبكة كما يلي (تمثل الخطوط الخضراء حركة مرور غير مشفرة ، وحركة مرور مشفرة باللون الأحمر):
نقل MGMT للتحكم في البوابة في الموقع المحلي: نقل
MGMT / ESP DATA للتحكم في البوابة في الموقع البعيد:
5 خطوات للإعداد
الخطوة 1. التعامل مع BULK DATA
حددت شبكة VLAN 205 منفصلة لبيانات BULK DATA لهذا ، قمت بتعيين واجهة Gi0 / 2 لأجهزة SW1 و SW2 على وضع الوصول مع VLAN 205:
sw1(config)#
interface gi0/2
description BULK_TO_R1
switchport access vlan 205
no shutdown
sw2(config)#
interface gi0/2
description BULK_TO_R2
switchport access vlan 205
no shutdown
أقوم بعمل واجهات Gi0 / 0 من واجهات GW1 و GW2 PROMISC. لتمرير BULK DATA إلى واجهة PROMISC ، أقوم بتهيئة الجذع لواجهة PROMISC:
sw1(config)#
interface gi0/0
description LINK_TO_PROMISC_GW1
switchport mode trunk
switchport trunk allowed vlan 205
switchport trunk encapsulation dot1q
no shutdown
sw2(config)#
interface gi0/0
description LINK_TO_PROMISC_GW2
switchport mode trunk
switchport trunk allowed vlan 205
switchport trunk encapsulation dot1q
no shutdown
الخطوة 2. التعامل مع MGMT المحلي
وفقًا للخطة ، تحمل حركة مرور MGMT شبكة VLAN 10. مساحة العنوان لشبكة VLAN 10 هي 10.76.76.128/28.
على جهاز SW1 و SW2 ، أقوم بإنشاء واجهات افتراضية vlan10:
sw1(config)#
interface vlan10
ip address 10.76.76.129 255.255.255.240
no shutdown
sw2(config)#
interface vlan10
ip address 10.76.76.142 255.255.255.240
no shutdown
أقوم بإنشاء VLAN 10 أصلية VLAN حتى لا يتم تكوين واجهات 802.1Q على البوابة:
sw1(config)#
interface gi0/1
description LINK_TO_WAN_GW1
switchport mode trunk
switchport trunk allowed vlan 10
switchport trunk native vlan 10
switchport trunk encapsulation dot1q
no shutdown
sw2(config)#
interface gi0/1
description LINK_TO_WAN_GW2
switchport mode trunk
switchport trunk allowed vlan 10
switchport trunk native vlan 10
switchport trunk encapsulation dot1q
no shutdown
أقوم بتكوين واجهات Gi0 / 1 لبوابات الأمان:
GW1(config)#
interface gi0/1
ip address 10.76.76.137 255.255.255.240
no shutdown
GW2(config)#
interface gi0/1
ip address 10.76.76.138 255.255.255.240
no shutdown
الآن GW1 متاح عبر SSH من جهاز SW1:
sw1#ssh –l root 10.76.76.137
Password:
S-Terra Gate 4.2.18201 (amd64)
root@GW1~#
وبالمثل ، يمكن الوصول إلى GW2 عبر SSH من جهاز SW2:
sw2#ssh –l root 10.76.76.138
Password:
S-Terra Gate 4.2.18201 (amd64)
root@GW2~#
لطيفة ، سكب كوبًا آخر من القهوة.
الخطوة 3. التعامل مع MGMT للبوابة في الموقع
البعيد يجب أن تكون حركة مرور MGMT إلى البوابة في الموقع البعيد مشفرة. للقيام بذلك ، سأقوم برمي VLAN 10 عبر VPN. ستدخل كل حركة المرور التي يتم اعتراضها من واجهة PROMISC إلى نفق VPN. سأضيف إلى الجذع إلى واجهة PROMISC VLAN 10:
sw1(config)#
interface gi0/0
description LINK_TO_PROMISC_GW1
switchport trunk allowed vlan 10, 205
sw2(config)#
interface gi0/0
description LINK_TO_PROMISC_GW1
switchport trunk allowed vlan 10, 205
لا تضيع نصف ساعة في استكشاف الأخطاء وإصلاحها!
يجب ألا تحصل واجهة PROMISC على بيانات ESP ، لذلك من المهم استبعاد VLAN 100 من خطوط LINK_TO_PROMISC_GW1 و LINK_TO_PROMISC_GW2 في الخيارات التالية:
switchport trunk allowed vlan 1-99,101-4096
الخطوة 4. وصلت إلى ESP DATA
I حدد ESP DATA في VLAN 100 على بوابات GW1 و GW2. مساحة العنوان لـ VLAN 100: 192.168.10.0/30
للقيام بذلك ، على واجهة WAN Gi0 / 1 للبوابات GW1 و GW2 ، قمت بإنشاء واجهة 802.1Q Gi0 / 1.100.
ستنتمي حركة المرور الصادرة من هذه الواجهة إلى VLAN 100:
GW1(config)#
interface gi0/1.100
ip address 192.168.10.1 255.255.255.252
no shutdown
GW2(config)#
interface gi0/1.100
ip address 192.168.10.2 255.255.255.252
no shutdown
أسمح بمرور VLAN 100 إلى الخط الرئيسي LINK_TO_WAN_GW1 و LINK_TO_WAN_GW2:
sw1(config)#
interface gi0/1
description LINK_TO_WAN_GW1
switchport trunk allowed vlan 10,100
sw2(config)#
interface gi0/1
description LINK_TO_WAN_GW2
switchport trunk allowed vlan 10,100
يجب أن ينقل الارتباط بين الأجهزة SW1 و SW2 أيضًا حركة مرور VLAN 100 الموسومة:
sw1(config)#
interface gi0/3
description LINK_TO_SW2
switchport mode trunk
switchport trunk allowed vlan 100
switchport trunk encapsulation dot1q
no shutdown
sw2(config)#
interface gi0/3
description LINK_TO_SW1
switchport mode trunk
switchport trunk allowed vlan 100
switchport trunk encapsulation dot1q
no shutdown
الخطوة 5. تكوين C-Terra L2 و IPsec VPN باستخدام GOST
C-Terra L2 يتم تكوينه في نظام التشغيل باستخدام ملف التكوين /opt/VPNagent/etc/l2.conf. بالنسبة لـ GW1:
vif tap0
bridge br0
capture eth0
remote 192.168.10.2
mssfix 1400
passtos
حيث:
الالتقاط eth0 - حدد واجهة PROMISC ، 192.168.10.2 عن بُعد - عنوان IP لنظير IPsec (واجهة Gi0 / 1.100 لبوابة GW2).
بالنسبة لـ GW2:
vif tap0
bridge br0
capture eth0
remote 192.168.10.1
mssfix 1400
passtos
تكوين معلمات IKE / IPsec. بالنسبة لـ GW1:
ستستخدم Gateways أسماء المضيف كمعرفات ، وتعيين مفتاح محدد مسبقًا للمصادقة (تحتاج قواعد الاستخدام للمصادقة إلى استخدام الشهادات الرقمية ، وسوف أقوم بتغييرها لاحقًا):
GW1(config)#
crypto isakmp identity hostname
ip host GW2 192.168.10.2
crypto isakmp key KEY hostname GW2
تكوين معلمات اكتشاف الأقران الميت (DPD):
GW1(config)#
crypto isakmp keepalive 10 2
crypto isakmp keepalive retry-count 5
قمت بتعيين معلمات IPsec المرحلة الأولى:
GW1(config)#
crypto isakmp policy 1
encr gost
hash gost3411-256-tc26
auth pre-share
group vko2
قمت بتعيين معلمات IPsec المرحلة الثانية:
GW1(config)#
crypto ipsec transform-set TSET esp-gost28147-4m-imit
mode tunnel
نظرًا لأن الإطارات التي تم اعتراضها بواسطة واجهة PROMISC L2 مغلفة في UDP ، فإن قائمة الوصول التي تحدد حركة المرور للتشفير:
GW1(config)#
ip access-list extended LIST
permit udp host 192.168.10.1 host 192.168.10.2
أقوم بإنشاء خريطة تشفير وربطها بـ Gi0 / 1.100:
GW1(config)#
crypto map CMAP 1 ipsec-isakmp
match address LIST
set transform-set TSET
set peer 192.168.10.2
interface gi0/1.100
crypto map CMAP
أحدد المسار الافتراضي عبر عنوان IP الخاص بنظير IPsec:
GW1(config)#
ip route 0.0.0.0 0.0.0.0 192.168.10.2
تكوين بوابة GW2:
GW2(config)#
crypto isakmp identity hostname
ip host GW1 192.168.10.1
crypto isakmp key KEY hostname GW1
crypto isakmp keepalive 10 2
crypto isakmp keepalive retry-count 5
crypto isakmp policy 1
encr gost
hash gost3411-256-tc26
auth pre-share
group vko2
crypto ipsec transform-set TSET esp-gost28147-4m-imit
mode tunnel
ip access-list extended LIST
permit udp host 192.168.10.2 host 192.168.10.1
crypto map CMAP 1 ipsec-isakmp
match address LIST
set transform-set TSET
set peer 192.168.10.1
interface gi0/1.100
crypto map CMAP
ip route 0.0.0.0 0.0.0.0 192.168.10.1
حدث؟
من الجهاز R1 ، يتم تنفيذ الأمر ping إلى R2:
R1#ping 10.10.205.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.205.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 2/2/3 ms</code>
R2 ICMP. ? ARP R1 R2:
<source>R1#show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.10.205.1 - aabb.cc00.5020 ARPA GigabitEthernet0/2
Internet 10.10.205.2 54 aabb.cc00.6020 ARPA GigabitEthernet0/2
R2#show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.10.205.1 52 aabb.cc00.5020 ARPA GigabitEthernet0/2
Internet 10.10.205.2 - aabb.cc00.6020 ARPA GigabitEthernet0/2
تفترض أجهزة R1 و R2 أنها على نفس الشبكة الفرعية للبث.
تعتبر أجهزة SW1 و SW2 أنها متصلة ببعضها البعض بواسطة رابطين:
sw1#show cdp neighbors
Device ID Local Intrfce Holdtme Capability Platform Port ID
sw2 Gi0/0 146 R S I Linux Uni Gi0/0
sw2 Gi0/3 146 R S I Linux Uni Gi0/3
R1 Gi0/2 156 R B Linux Uni Gi0/2
sw2#show cdp neighbors
Device ID Local Intrfce Holdtme Capability Platform Port ID
sw1 Gi0/0 140 R S I Linux Uni Gi0/0
sw1 Gi0/3 140 R S I Linux Uni Gi0/3
R2 Gi0/2 156 R B Linux Uni Gi0/2
محاولة الاتصال بـ GW2 عبر SSH من جهاز SW1:
sw1#ssh –l root 10.76.76.138
Password:
S-Terra Gate 4.2.18201 (amd64)
root@GW2~#
الخلاصة: الموقعان 1 و 2 مرتبطان بشفافية في مجال بث واحد.
سأتحقق مما إذا كانت القناة تحتوي على تشفير: إحصائيات نفق IPsec على جهاز GW1:
root@GW1:~# sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded
ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 2 (192.168.10.1,500)-(192.168.10.2,500) active 31378 31502
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 2 (192.168.10.1,*)-(192.168.10.2,*) 17 ESP tunn 508224 27672
تم إنشاء نفق IPsec بين 192.168.10.1 و 192.168.10.2.
لقد تحققت من أن حركة مرور ESP فقط تنتقل بين أجهزة SW1 و SW2 ، دون احتساب STP. فيما يلي تفريغ حركة المرور من واجهة gi0 / 3 الخاصة بـ SW1:
في النهاية
شربت ثلاثة أكواب من القهوة - ثم لم أنم طوال الليل ، لكن لم أضطر إلى شراء أجهزة جديدة وتحديثها. ربما كان الأمر يستحق ذلك ، في الإصدار 4.3 ، أحضر البائع L2 إلى الذهن. أفكر في أخذ الإصدار 4.3 للاختبار.
مهندس مجهول
t.me/anonimous_engineer