در این درس و درس بعدی قصد داریم دو تا از کاربردهای گزینه rotary را در دستورات وابسته به NAT یاد بگیریم. در این درس همچنین کاربرد دستور ip nat destination را نیز در NAT خواهیم آموخت.

یکی از کاربردهای NAT وقتی است که چند سرور فیزیکی، سرویس یکسانی ارائه می دهند و همه آنها با یک آدرس در اینترنت قرار می گیرند. کاربرد NAT در این بخش این است که دسترسی از اینترنت به آن آدرس را بین سرورها تقسیم می کنیم. می توان به نوعی گفت که یک load balancer ضعیف راه اندازی می کنید. این Load balancer ضعیف است زیرا حداقل ویژگی های یک load balancer را ندارد. اینکه اگر سروری از دسترس خارج می شود، خودش آن را تشخیص داده و درخواست سرویس را به آن سرور ارسال نکند.

در این سناریو قصد داریم هر سه سرور PC1، PC2 و PC3 را با آدرس 12.1.1.10 روی اینترنت قرار دهیم و از NAT بخواهیم درخواست های به مقصد این آدرس را بین این سه سرور تقسیم کند. 

load balancer1

کاربرد ابزار NAT در پیاده سازی load-balancer

برای پیاده سازی این شیوه، یک مجموعه آدرس شامل آدرس های PC1، PC2 و PC3 را با قابلیت rotary ایجاد می کنیم (در این مثال آدرس PC1 تا PC3 به 192.168.1.10 تا 192.168.1.12 تغییر داده شده است). بدین معنی که بعد از اتمام آدرس دوباره از ابتدا شروع کن و مرتبا این مجموعه آدرس را تکرار کن. سپس با دستور ip nat inside destination از روتر می خواهیم که آدرس مقصد ترافیک ورودی از اینترنت را وقتی که از اینترفیس inside خارج می شود به این مجموعه آدرس تغییر دهد. در هر بار تغییر، از آدرس متفاوتی از مجموعه استفاده می کند و با تمام شدن آدرس های مجموعه مجددا از شروع مجموعه آدرس ها را انتخاب می کند.

شیوه پیاده سازی در ذیل نشان داده شده است. مشاهده می کنید که علا.ه بر موارد فوق برای آدرس 12.1.1.10 نیز alias تعریف شده است. قائدتا روتر باید برای این آدرس به صورت اتوماتیک alias ایجاد کند و به آدرس های به مقصد این آدرس پاسخ دهد ولی این اتفاق نمی افتد و اجبارا به صورت دستی نوشته شده است.

!!! GW

interface Ethernet0/0

 ip nat inside

!

interface Ethernet0/1

 ip nat outside

!

ip nat pool SERVER-POOL 192.168.1.10 192.168.1.12 netmask 255.255.255.0 type rotary

!

ip access-list standard VIP-ADDRESS

 permit 12.1.1.10

!

ip nat inside destination list VIP-ADDRESS pool SERVER-POOL

!

GW(config)#do sh ip alias

Address Type             IP Address      Port

Interface                12.1.1.2

Interface                12.1.2.2

Interface                192.168.1.1

!

GW(config)#ip alias 12.1.1.10 23

پیاده سازی load-balancer با ابزار NAT و کاربرد rotary و ip nat inside destination

در ذیل نشان داده شده است که با اتصال های متوالی از اینترنت به آدرس 12.1.1.10 روی پورت 23، به سرورهای مختلفی وصل می شویم. در انتها نیز خروجی دستور show ip nat translation نشان داده شده است. خروجی نشان می دهد که آدرس 12.1.1.10 به سه آدرس 192.168.1.10، 192.168.1.11 و 192.168.1.12 نگاشت شده است و وجه تمایزی بین آنها نیست.

Internet#telnet 12.1.1.10

Trying 12.1.1.10 ... Open

User Access Verification

Password:

PC1>exi

[Connection to 12.1.1.10 closed by foreign host]

Internet#telnet 12.1.1.10

Trying 12.1.1.10 ... Open

User Access Verification

Password:

PC2>exi

[Connection to 12.1.1.10 closed by foreign host]

Internet#telnet 12.1.1.10

Trying 12.1.1.10 ... Open

User Access Verification

Password:

PC3>exi

!

GW#sh ip nat translations

Pro Inside global      Inside local       Outside local      Outside global

tcp 12.1.1.10:23       192.168.1.10:23    13.1.1.2:16973     13.1.1.2:16973

tcp 12.1.1.10:23       192.168.1.11:23    13.1.1.2:59980     13.1.1.2:59980

tcp 12.1.1.10:23       192.168.1.12:23    13.1.1.2:21829     13.1.1.2:21829

تایید عملکرد load-balancer

نهایتا دقت کنید که این نوع NAT دو طرفه نیست و سرور قادر به ارتباط با اینترنت نیست. برای ارتباط سرور با اینترنت لازم است تا Source NAT به صورت جداگانه نوشته شود.

PC1#ping 13.1.1.2

Type escape sequence to abort.

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

.....

Success rate is 0 percent (0/5)

PC1#

!

ip access-list standard INSIDE

 permit 192.168.1.0 0.0.0.255

!

ip nat inside source list INSIDE interface Ethernet0/1 overload

!
PC1#ping 13.1.1.2

Type escape sequence to abort.

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

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/8 ms

تکمبل پروسه راه اندازی load-balancer

نوشتن دیدگاه


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