هدف از Stateful NAT ایجاد یک گروه از دستگاههایی است که وظیفه NAT را به عهده دارند. مثلا دو روتر در لبه سازمان که وظیفه NAT را به عهده دارند را با ابزار Stateful NAT در یک گروه قرار می دهیم. فقط یکی از اعضاء گروه فعال بوده و به معنای واقعی عمل NAT را انجام می دهد

اما این عضو به ازاء هر session ای که عمل تغییر آدرس را انجام می دهد، اطلاعات flow  آن را در اختیار عضو دوم گروه قرار می دهد. عضو دوم گروه نیز با توجه به اطلاعات دریافتی، دقیقا جدول NAT عضو اول گروه را بازسازی می کند. بنابراین اگر به هر دلیلی دستگاه فعال و اصلی ناگهان از شبکه خارج شود، دستگاه دوم بدون آنکه session های جاری شبکه قطع شود، وظیفه دستگاه اول را دنبال خواهد کرد.

بنابراین کاربرد Stateful NAT در این است که اگر دو روتر در لبه شبکه سازمان وجود داشته باشد، در صورت خرابی یکی از روترها روتر دوم بتواند بدون قطعی session های جاری، وظیفه روتر اول را دنبال کند. دلیل نام گذاری Stateful NAT به این موضوع برمیگردد که روتر دوم وضعیت همه session هایی که از روتر اول عبور می کند را در اختیار دارد.

در شکل زیر نشان داده شده است که سازمان با دو روتر به اینترنت متصل است و یکی از آنها وظیفه مسیریابی و NAT ترافیک های ارسالی به اینترنت را به عهده دارد. همچنین در شکل نشان داده شده است که روتر اول با استفاده از بسته های اختصاصی SNAT که روی UDP سوار می شوند، روتر دوم را از flow های جاری شبکه و اطلاعات تغییر آدرس آگاه می کند.

 

Stateful NAT1

اگرچه ویژگی Stateful NAT مستقل از هر ویژگی دیگری از جمله مسیریابی است اما اگر به تعریف های ارائه شده دقت کنید متوجه می شوید که این ویژگی معمولا به تنهایی نمی تواند کارایی داشته باشد و با یکی شدن با ویژگی های دیگر از جمله مسیریابی می تواند موثر واقع شود.

  • مسیریابی Active/Standby: برای استفاده بهینه از عملکرد Stateful NAT، مسیریابی ترافیک باید به گونه ای طراحی شود که ترافیک به صورت پیش فرض از روتر اول خارج شود و در صورت خرابی روتر اول ترافیک به روتر دوم هدایت شود. یکی از روش های معمول در پیاده سازی این نوع مسیریابی استفاده از پروتکل HSRP است.
  • آدرس اینترنتی مستقل از ISP: اگر فرض کنید که دو روتر به دو ISP مختلف متصل هستند، در صورت جابجا شدن ترافیک از روتر اول به روتر دوم، معمولا آدرسی که ترافیک باید به آن NAT شود نیز باید تغییر کند تا ترافیک قابلیت برگشت داشته باشد. اما ویژگی Stateful NAT وقتی قابل استفاده است که آدرسی که ترافیک روی آن NAT می شود به ISP وابسته نباشد و تغییر نکند. برای ایجاد چنین شرایطی حتما باید از آدرس های مستقل از ISP استفاده کرد که با پروتکل BGP آن را به هر دو ISP و اینترنت یاد می دهد.

اگر شرایطی که گفته شد در شبکه سازمان ایجاد گردد، آنگاه شبکه سازمان قابلیت مسیریابی نامتقارن را نیز خواهد داشت. بدین معنی که اگر ترافیک از یک مسیر خارج شود و از مسیر دوم برگردد، روتر دوم می تواند مدیریت NAT ترافیک برگشتی را به عهده بگیرد. زیرا اطلاعات تغییر آدرس ترافیک ارسالی در روتر اول قبلا توسط Stateful NAT به روتر دوم کپی شده است.

منظور کتاب از بیان و معرفی پروتکل های HSRP و BGP در این بخش این است که بیان کند ویژگی Stateful NAT معمولا به همراه HSRP و BGP می تواند بیشترین کارایی را برای شما ایجاد کند. اما در عین حال فراموش نمی کنیم که Statful NAT یک ابزار کاملا مستقل است و این مدیر شبکه است که باید بتواند مهره ها را بدرستی در کنار هم بچیند. مدیر شبکه بدلیل همین نبوغ، مدیر شبکه شده است.

در ادامه دو سناریو مرتبط با Stateful NAT پیاده سازی می شود. سناریوی اول Stateful NAT را به همراه HSRP پیاده سازی می کند اما در سناریوی دوم پیاده سازی  Stateful NAT بدون HSRP نشان داده می شود.

Stateful NAT with HSRP

در این سناریو شبکه سازمان با دو روتر مرزی به اینترنت متصل است. در داخل LAN دو VLAN شماره 2 و شماره 3 وجود دارد. در VLAN 2، سرورها از جمله DHCP Server وجود دارند. در VLAN 3، دیگر کاربران شبکه قرار گرفته اند. آدرس روتر های مرزی در VLAN 2 به ترتیب 192.168.2.1 و 192.168.2.2 و در VLAN 3 به ترتیب 192.168.3.1 و 192.168.3.2 است. اما با پروتکل HSRP آدرس روتر فعال در VLAN 2 به 192.168.2.254 و در VLAN 3 به 192.168.3.254 تغییر داده شده است.

در طرف LAN کاربران از طریق DHCP آدرس IP دریافت می کنند. دلیل استفاده از DHCP در این سناریو این بود که نشان دهیم این پروتکل یعنی DHCP می تواند خود را با HSRP منطبق کند همانطور که NAT خود را با HSRP یکی خواهد کرد. وقتی کاربر درخواست IP خود را در شبکه broadcast می کند، هر دو روتر مرزی درخواست DHCP را دریافت می کنند اما از آنجایی که روتر دوم می داند که روتر فعال در مسیریابی HSRP نیست، درخواست DHCP را به سرور DHCP منتقل نمی کند و روتر اول که از فعال بودن خود در HSRP مطلع است، درخواست DHCP را به سرور DHCP انتقال می دهد. بدین ترتیب DHCP relay agent خود را با HSRP منطبق می کند. نهایتا سرور DHCP نیز از طریق روتر فعال پاسخ را به کاربر بر می گرداند. آدرس gateway در سرور DHCP آدرس 192.168.2.254 تعریف شده است که به روتر فعال در VLAN 2 اشاره می کند.

حال نگاهی نیز به بخش بیرونی سناریو بیندازیم. آدرس بیرونی که هر دو روتر سازمان ترافیک را به آن NAT می کنند، آدرس مستقل از ISP است که در اینجا محدوده آدرس 90.1.1.0/24 در نظر گرفته شده است. این آدرس روی هیچیک از اینترفیس های روتر تنظیم نشده است اما مسیر روترهای اینترنتی به این آدرس از طریق هر دو ISP امکان پذیر است. در محیط واقعی این بخش با پروتکل BGP پیاده سازی می شود اما در این سناریو روی روتر اینترنت دو مسیر static به این آدرس داده شده است که یکی از آنها distance بهتری نسبت به دیگری دارد و بنابراین به صورت پیش فرض ترافیک از مسیر سمت چپ به سازمان بر می گردد.

بنابراین مسیر رفت ترافیک با کمک پروتکل HSRP از روتر GW1 خارج می شود. مسیر برگشت ترافیک نیز با کمک پروتکل BGP کنترل می شود (که البته در اینجا به صورت static پیاده سازی شده است). از طرفی آدرسی که ترافیک روی آن NAT می شود نیز به هیچیک از ISP ها وابسته نیست. همه شرایط مهیا است تا NAT نیز به صورت Stateful روی دو روتر GW1 و GW2 تعریف شود تا کپی جدول NAT روتر GW1 روی روتر GW2 نیز ایجاد شود و در صورت قطعی روتر اول همه شرایط برای جابجا شدن ترافیک به روتر دوم مهیا باشد بدون آنکه session های جاری شبکه با اختلال مواجه شوند.

 HSRP

سناریوی مربوط به Stateful NAT with HSRP

روند پیاده سازی و رفع اشکال این سناریو در ادامه نشان داده شده است. ابتدا روش فعال سازی HSRP در VLAN 3 نشان داده شده است. پروتکل HSRP در VLAN 2 نیز فعال گردیده است که آن نیز در ذیل نشان داده نشده است. پروتکل HSRP در VLAN کاربران به شیوه ای پیاده سازی شده است که اگر لینک اینترنتی روتر GW1 قطع شود، روتر فعال به GW2 عوض شده و ترافیک به GW2 هدایت خواهد شد. برای پیاده سازی این بخش از ابزار track استفاده شده است.

!!! GW1

interface FastEthernet0/0.3

 encapsulation dot1Q 3

 ip address 192.168.3.1 255.255.255.0

 standby 2 ip 192.168.3.254

 standby 2 priority 105

 standby 2 preempt

 standby 2 track 1 decrement 15

!

!!! GW2

interface FastEthernet0/0.3

 encapsulation dot1Q 3

 ip address 192.168.3.2 255.255.255.0

 standby 2 ip 192.168.3.254

 standby 2 priority 95

 standby 2 preempt

!

GW1#sh standby brief

                     P indicates configured to preempt.

                     |

Interface   Grp  Pri P State   Active          Standby         Virtual IP

Fa0/0.2     1    105 P Active  local           192.168.2.2     192.168.2.254

Fa0/0.3     2    105 P Active  local           192.168.3.2     192.168.3.254

!

فعال سازی و مانیتورینگ HSRP

در مرحله دوم روی روتر های GW1 و GW2 ویژگی DHCP relay agent فعال شده است تا درخواست های DHCP از طرف کاربران به سرور DHCP انتقال داده شود. البته این ویژگی به شیوه ای پیاده سازی شده است تا خود را به HSRP منطبق کند. بنابراین فقط درخواست های دریافتی روی روتر فعال به سرور DHCP انتقال داده می شود. در دستور ip helper-address آدرس سرور DHCP داده می شود که در این سناریو 192.168.2.10 است. برای انطباق helper-address با HSRP ابتدا نام LAN-ZONE برای پروتکل HSRP در نظر گرفته شده است. سپس در ادامه دستور helper-address با کمک گزینه redundancy آن را به پروتکل HSRP با نام LAN-ZONE متصل نموده ایم.

!!! GW1

interface FastEthernet0/0.3

 ip helper-address 192.168.2.10 redundancy LAN-ZONE

 standby 2 name LAN-ZONE

!

!!! GW2

interface FastEthernet0/0.3

 ip helper-address 192.168.2.10 redundancy LAN-ZONE

 standby 2 name LAN-ZONE

!

GW1#show ip helper-address

Interface                  Helper-Address  VPN VRG Name             VRG State

FastEthernet0/0.3          192.168.2.10    0   LAN-ZONE             Active

!

GW2#sh ip helper-address

Interface                  Helper-Address  VPN VRG Name             VRG State

FastEthernet0/0.3          192.168.2.10    0   LAN-ZONE             Standby

پیاده سازی DHCP relay agent منطبق بر HSRP

مرحله بعدی اصلی ترین مرحله پیاده سازی Stateful NAT است. پیاده سازی Stateful NAT نسبت به NAT معمولی در موارد زیر متفاوت است

  • جلوی دستور نهایی ip nat از کلمه mapping-id استفاده می شود. بدین معنی که به ازاء هر رکوردی که در جدول NAT ایجاد می شود، یک mapping-id با شماره ای که در دستور NAT آمده است، اضافه می شود. دستورات nat مختلف می توانند mapping-id های متفاوتی داشته باشند.
  • برای تعیین اعضاء گروه NAT از دستور ip nat stateful id استفاده می شود که در آن به هر یک از اعضاء گروه NAT یک شماره منحصربفرد اختصاص داده می شود. در مثال ما به روتر GW1 شماره 1 و به روتر GW2 شماره 2 نسبت داده می شود. در ذیل پیکربندی روتر GW2 نشان داده نشده است اما تنها تفاوت روتر GW1 با روتر GW2 در این شماره است.
  • دستور redundancy پروتکل HSRP را به عنوان روش ایجاد افزونگی در NAT معرفی می کند. شماره mapping-id در دستور redundancy تعیین می کند که کدام یک از رکوردهای ایجاد شده در جدول NAT به دیگر اعضاء گروه NAT توزیع می شود

با فعال کردن Stateful NAT در دو روتر GW1 و GW2، خروجی کنسول در روتر GW2 نشان می دهد که جدول NAT آن با جدول NAT روتر GW1، که در پروتکل HSRP فعال است، یکی شده است.

!!! GW1

interface FastEthernet0/0.3

 ip nat inside

!

interface Serial1/0

 ip nat outside

!

ip access-list standard LAN

 permit 192.168.3.0 0.0.0.255

!

ip nat pool NATPOOL 90.1.1.1 90.1.1.1 prefix-length 24

!

ip nat Stateful id 1

  redundancy LAN-ZONE

   mapping-id 12

   protocol   udp

!

ip nat inside source list LAN pool NATPOOL mapping-id 12 overload

!

GW2(config-ipnat-snat-red)#$list LAN pool NATPOOL mapping-id 12 overload

*Dec 31 23:56:58.587: %SNAT-5-PROCESS: Id 2, System starts converging

*Dec 31 23:57:00.307: SNAT (Receive): CONVERGENCE Message from Router-Id: 1 for                                                       Router-Id: 0's entries

GW2(config-ipnat-snat-red)#$list LAN pool NATPOOL mapping-id 12 overload

*Dec 31 23:57:00.311: %SNAT-5-PROCESS: Id 2, System fully converged

GW2(config-ipnat-snat-red)#$list LAN pool NATPOOL mapping-id 12 overload

*Dec 31 23:57:02.279: %SNAT-5-PROCESS: Id 2, System starts converging

GW2(config-ipnat-snat-red)#$list LAN pool NATPOOL mapping-id 12 overload

GW2(config)#

*Dec 31 23:57:03.867: %SNAT-5-PROCESS: Id 2, System fully converged

پیاده سازی Stateful NAT

دستور show ip nat distributed versbose در دو روتر GW1 و GW2 نشان می دهد که روتر GW1 نقش ACTIVE و روتر GW2 نقش STANDBY را در Stateful NAT گرفته اند که کاملا بر پروتکل HSRP منطبق است

!!! GW1

GW1#sh ip snat distributed verbose

Stateful NAT Connected Peers

SNAT: Mode IP-REDUNDANCY :: ACTIVE

    : State READY

    : Local Address 192.168.3.1

    : Local NAT id 1

    : Peer Address 192.168.3.2

    : Peer NAT id 2

    : Mapping List 12

    : InMsgs 103, OutMsgs 0, tcb 0xB8898888, listener 0x0

!
GW2#sh ip snat distributed verbose

Stateful NAT Connected Peers

SNAT: Mode IP-REDUNDANCY :: STANDBY

    : State READY

    : Local Address 192.168.3.2

    : Local NAT id 2

    : Peer Address 192.168.3.1

    : Peer NAT id 1

    : Mapping List 12

    : InMsgs 113, OutMsgs 0, tcb 0xB8898888, listener 0x0

مانیتورینگ Stateful NAT

برای اطمینان از عملکرد صحیح DHCP relay agent و Statful NAT پروتکل DHCP Client را روی HOST فعال می کنیم تا به صورت اتوماتیک از طریق سرور DHCP آدرس دریافت کند. سپس از روی HOST اینترنت را یکبار ping و یکبار telnet می کنیم. همه این پروسه ها تا اینجا با موفقیت سپری می شود. اما موفقیت اصلی وقتی است که جدول NAT در هر دو روتر GW1 و GW2 یکسان می شوند، علی رغم اینکه ترافیک از روتر GW1 خارج می شود. بنابراین روتر GW1 که در HSRP نقش Active را به عهده دارد، کپی جدول NAT را به روتر GW2 توزیع می کند. انتظار می رود در صورت قطعی روتر GW1 ارتباطات جاری بدون قطعی به کار خود ادامه دهند. البته مشروط بر اینکه مسیر در حداقل زمان ممکن جابجا شود که این وظیفه پروتکل HSRP است.

!!! HOST

interface FastEthernet0/0

 ip address dhcp

!

HOST#ping 1.1.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 64/150/300 ms

!

HOST#telnet 1.1.1.1

Trying 1.1.1.1 ... Open

Password required, but none set

[Connection to 1.1.1.1 closed by foreign host]

!

GW1#sh ip nat translations

Pro Inside global      Inside local       Outside local      Outside global

icmp 90.1.1.1:3        192.168.3.3:3      1.1.1.1:3          1.1.1.1:3

tcp 90.1.1.1:39620     192.168.3.3:39620  1.1.1.1:23         1.1.1.1:23

!

GW2#sh ip nat translations

Pro Inside global      Inside local       Outside local      Outside global

icmp 90.1.1.1:3        192.168.3.3:3      1.1.1.1:3          1.1.1.1:3

tcp 90.1.1.1:39620     192.168.3.3:39620  1.1.1.1:23         1.1.1.1:23

!

GW2#sh ip snat peer 192.168.3.1

Show NAT Entries created by peer: 192.168.3.1

Pro Inside global      Inside local       Outside local      Outside global

icmp 90.1.1.1:3        192.168.3.3:3      1.1.1.1:3          1.1.1.1:3

tcp 90.1.1.1:39620     192.168.3.3:39620  1.1.1.1:23         1.1.1.1:23

تست اولیه Stateful NAT

برای اطمینان کامل از عملکرد صحیح HSRP و Stateful NAT اینترفیس بیرونی روتر GW1 را عمدا قطع می کنیم. بلافاصله مشاهده می شود که هم DHCP relay agent و هم Stateful NAT فعال از روتر GW1 به روتر GW2 جابجا می گردد.

GW1(config)#interface serial 1/0

GW1(config-if)#shutdown

!

GW2#

*Jan  1 00:16:39.335: %HSRP-5-STATECHANGE: FastEthernet0/0.3 Grp 2 state Standby -> Active

*Jan  1 00:16:39.347: %SNAT-5-PROCESS: Id 2, System starts converging

*Jan  1 00:16:39.359: %SNAT-5-PROCESS: Id 2, System fully converged

GW2#

*Jan  1 00:16:39.607: SNAT (Receive): CONVERGENCE Message from Router-Id: 1 for Router-Id: 0's entries

!

GW2#show ip helper-address

Interface                  Helper-Address  VPN VRG Name             VRG State

FastEthernet0/0.3          192.168.2.10    0   LAN-ZONE             Active

!

GW2#sh ip snat distributed verbose

Stateful NAT Connected Peers

SNAT: Mode IP-REDUNDANCY :: ACTIVE

    : State READY

    : Local Address 192.168.3.2

    : Local NAT id 2

    : Peer Address 192.168.3.1

    : Peer NAT id 1

    : Mapping List 12

    : InMsgs 8, OutMsgs 0, tcb 0xB8898888, listener 0x0

جابجایی DHCP relay agent و Stateful NAT در صورت جابجایی روتر active در پروتکل HSRP

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید