ShirazOnline
نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: تبدیل سرور لینوکس به روتر شبیه سیسکو

  1. #1
    RezaBehroozi admin آواتار ها
    تاریخ عضویت
    Jan 1970
    محل سکونت
    Iran/Shiraz
    نوشته ها
    11,187
    تشکرها / پسندها

    تبدیل سرور لینوکس به روتر شبیه سیسکو

    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

    quagga یک نوع نرم افزار مسیریابی تحت لینوکس می باشد که از zebra منشعب شده و پروتکل های مسیریابی همچون RIPv1,RIPv2,OSPFv2,OSPFv3,BGP-4و +BGP-4را پشتیبانی میکند.(معرفی این پروتکل ها خارج از بحث ما میباشد برای شناخت بهتر به کتابهای CCNAو BCMSN شرکت سیسکو که از طریق سایت [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید] میتوانید تهیه کنید.)شیوه تنظیمات quagga شبیه به IOS شرکت سیسکو میباشد که همین عامل باعث جذب افراد آشنا به محصولات سیسکو که طیف وسیعی را تشکیل میدهند به این نرم افزار میشود.
    در فدورا و دبین از quagga بجای zebra استفاده میشود و همراه با cd و dvd های آنها عرضه میشود(من در اینجا سیستم را دبین در نظر گرفتم که تنها تفاوت با سیستم های دیگر در نصب میباشد که براحتی میتوانید این مسئله را حل کنید)
    مراحل نصب :
    کد:
    #apt-get install quagga

    فایل تنظیمات در etc/quagga/ ذخیره میشود که در فدورا طی نصب این فایل ها ساخته میشود ولی در دبین اینطور که من نصب کردم باید خودتان این فایل ها را بسازید.تنها 2 فایل در این دایرکتوری قرار دارد
    کد:
    daemons :
     
    # This file tells the quagga package which daemons to start.
     # Entries are in the format: <daemon>=(yes|no|priority)
     #   0, "no"  = disabled
     #   1, "yes" = highest priority
     #   2 .. 10  = lower priorities
     #
     zebra=no
     bgpd=no
     ospfd=no
     ospf6d=no
     ripd=no
     ripngd=no
     isisd=no
    همونطور که از اسمش معلومه سرویس های مختلف quagga رو فعال میکنه و در حالت پیش فرض همگی غیرفعالن که برای فعال کردنشون باید no رو به yes تبدیل کنیم
    کد:
     debian.conf :
      
    # If this option is set the /etc/init.d/quagga script automatically loads
      # the config via "vtysh -b" when the servers are started.
      #
     vtysh_enable=yes
     zebra_options=" --daemon -A 127.0.0.1"
     bgpd_options="  --daemon -A 127.0.0.1"
     ospfd_options=" --daemon -A 127.0.0.1"
     ospf6d_options="--daemon -A ::1"
     ripd_options="  --daemon -A 127.0.0.1"
     ripngd_options="--daemon -A ::1"
     isisd_options=" --daemon -A 127.0.0.1"
    برای پیکربندی quagga و سرویس ها مختلفتش مانند RIP, OSPF و ... میبایست از telnet برای اتصال البته با port های متفاوت استفاده کرد , همچنین تنظیمات این پروتکل ها دقیقا همانند مسیریابهای سیسکو میباشد.
    port های مورد استفاده را می توان از طریق فایل etc/services/ مشاهده کرد

    کد:
        behroozi:~# grep zebra /etc/services
         zebrasrv        2600/tcp                        # zebra service
         zebra            2601/tcp                        # zebra vty
         ripd              2602/tcp                         # ripd vty (zebra)
         ripngd          2603/tcp                          # ripngd vty (zebra)
         ospfd           2604/tcp                          # ospfd vty (zebra)
         bgpd            2605/tcp                         # bgpd vty (zebra)
         ospf6d          2606/tcp                         # ospf6d vty (zebra)
         isisd           2608/tcp                           # ISISd vty (zebra)
    اول از هر چیز باید مشخص کنیم چکار میخوایم انجام بدیم که من چون اکثر ما روتر سیسکو برای تست نداریم با روتر نرم افزاری ویندوز 2003 این کارو انجام میدم
    در ادامه ما با یک ارتباط rip دو شبکه مشخص شده در دیاگرام زیر را بهم وصل میکنیم



    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

    برای اینکار ابتدا میبایست در فایل daemons تغییراتی بدین شکل انجام بدهیم
    کد:
     zebra=yes
     bgpd=no
     ospfd=no
     ospf6d=no
     ripd=yes
     ripngd=no
     isisd=no
    الان باید فایل های zebra.conf و ripd.conf و بسازیم و تنظیمات اولیه را در آنها قرار بدهیم

    کد:
    #cp /usr/share/doc/quagga/examples/zebra.conf.sample /etc/quagga/zebra.conf
    حالا فایل ripd.conf
    کد:
    #cp /usr/share/doc/quagga/examples/ripd.conf.sample /etc/quagga/ripd.conf
    بعد از ساختن فایل تنظیمات ابتدایی سرویس quagga را دوباره راه اندازی میکنیم
    کد:
    behroozi:~# /etc/init.d/quagga restart
     Stopping Quagga daemons (prio:0): (waiting) .. ripd (waiting) .. zebra (bgpd) (ripngd) (ospfd) (ospf6d).
     Removing all routes made by zebra.
     Nothing to flush.
     Loading capability module if not yet done.
     Starting Quagga daemons (prio:10): zebra ripd.
     behroozi:~#
    به zebra برای انجام تنظیمات اولیه وصل میشویم
    کد:
    behroozi:~# telnet 127.0.0.1 2601
     Trying 127.0.0.1...
     Connected to 127.0.0.1.
     Escape character is '^]'.
     
     Hello, this is Quagga (version 0.98.3).
     Copyright 1996-2005 Kunihiro Ishiguro, et al.
     
     
     User Access Verification
     
     Password: (zebra)
     Router> en
     Password:  (zebra)
     Router#
    یک سری تنظیمات اولیه از قبیل تغییر پسورد و hostname همچنیم شما میتوانید ip هم از این طریق تغییر دهید
    کد:
    Router#conf t
     Router(config)# password reza
     Router(config)# enable password persianadmins
     behroozi(config)# hostname persianadmins.com
     persianadmins.com(config)#
     persianadmins.com(config)# service password-encryption
     persianadmins.com(config)# int eth0
     persianadmins.com(config-if)# ip address 192.168.0.1/24
     persianadmins.com(config-if)# exit
     persianadmins.com(config)# int eth1
     persianadmins.com(config-if)# ip address 192.168.1.1/24
     persianadmins.com(config-if)# exit
     persianadmins.com(config)# exit
     persianadmins.com# sh run
     
     Current configuration:
     !
     hostname persianadmins.com
     password 8 ETqePsm6sd5o6
     enable password 8 5B5WeM1SCnAag
     service password-encryption
     !
     interface eth0
      ip address 192.168.0.1/24
     !
     interface eth1
      ip address 192.168.1.1/24
     !
     interface lo
     !
     ipv6 forwarding
     !
     line vty
     !
     end
     persianadmins.com#
     persianadmins.com# write memory
     Configuration saved to /etc/quagga/zebra.conf
     persianadmins.com#
    با استفاده از service password-encryption مشاهده میکنید که پسورد از حالت plain-text بیرون آمده پس حتما از این دستور استفده کنید, 2 نکنته رو باید در تنظمیات بالا توجه کنید که با اضافه کردن ip از این طریق تغییری در ip قبلی بوجود نمیاد و این ip به آنها اضافه میشود...همچنین در انتها باید تنظمیات صورت گرفته را با write memory ذخیره کرد.
    کد:
    behroozi:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:5F:60:A2 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:55323 errors:0 dropped:0 overruns:0 frame:0 TX packets:35346 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6662562 (6.3 MiB) TX bytes:5157684 (4.9 MiB) Interrupt:18 Base address:0x1080
    eth1 Link encap:Ethernet HWaddr 00:0C:29:5F:60:AC inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:131 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:8244 (8.0 KiB) TX bytes:0 (0.0 b) Interrupt:19 Base address:0x1400

    همونطور که در بالا میبینید تغییرات اعمال شده است.
    قبل از تنظیم rip از workstation2 به workstation1 دستور ping رو میزنیم تا نتیجه رو با بعد مقایسه کنیم
    کد:
    workstation2:~# ping 192.168.2.2
     PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data.
     From 192.168.0.1 icmp_seq=1 Destination Host Unreachable
     From 192.168.0.1 icmp_seq=2 Destination Host Unreachable
     From 192.168.0.1 icmp_seq=3 Destination Host Unreachable
     From 192.168.0.1 icmp_seq=4 Destination Host Unreachable
    تنظیمات rip:
    کد:
    behroozi:~# telnet 127.0.0.1 2602
     Trying 127.0.0.1...
     Connected to 127.0.0.1.
     Escape character is '^]'.
     
     Hello, this is Quagga (version 0.98.3).
     Copyright 1996-2005 Kunihiro Ishiguro, et al.
     
     
     User Access Verification
     
     Password: (zebra)
     ripd> en
     ripd#
     ripd# conf t
     ripd(config)# password reza
     ripd(config)# enable password persianadmins
     ripd(config)#router rip
     ripd(config-router)# network 192.168.0.0/24
     ripd(config-router)# network 192.168.1.0/24
     ripd(config-router)# version 2
     ripd(config)#
     ripd# sh run
     
     Current configuration:
     !
     hostname ripd
     password reza
     enable password persianadmins
     log stdout
     !
     router rip
      version 2
      network 192.168.0.0/24
      network 192.168.1.0/24
     !
     line vty
     !
     end
     ripd#
     ripd# write memory
     Configuration saved to /etc/quagga/ripd.conf
     ripd#
    حالا باید سرویس رو دوباره راه اندازی کرد
    کد:
    #/etc/init.d/quagga restart
    نوبت به تنظیمات ویندوز میرسد که من به صورت تصویری اینجا میزارم














    حالا دوباره از workstation2 به workstation1 دستور ping رو اجرا میکنیم
    کد:
    workstation2:~# ping 192.168.2.2
     PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data.
     64 bytes from 192.168.2.2: icmp_seq=1 ttl=64 time=1.45 ms
     64 bytes from 192.168.2.2: icmp_seq=2 ttl=64 time=0.082 ms
     64 bytes from 192.168.2.2: icmp_seq=3 ttl=64 time=0.043 ms
     64 bytes from 192.168.2.2: icmp_seq=4 ttl=64 time=0.042 ms
     64 bytes from 192.168.2.2: icmp_seq=5 ttl=64 time=0.041 ms
     
    --- 192.168.2.2 ping statistics ---
     5 packets transmitted, 5 received, 0% packet loss, time 4034ms
     rtt min/avg/max/mdev = 0.041/0.332/1.454/0.561 ms
     workstation2:~#
    مشاهده میکنید که ارتباط برقرار شده ...همچنین برای دیدن جدول routing بدین ترتیب عمل میکنیم
    در لینوکس
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]



    در ویندوز





    توجه داشته باشید که مثال بالا بخش کوچکی از دستورات quagga رو به نمایش گذاشت که برای دیدن دستورات و عملکرد کامل اون میتوانید این [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید] را دانلود کنید
    تامین امنیت :
    شاید فکر کنید که هر کس میتونه با راه انداختن یک روتر و تنظیم اون به شبکه ما متصل بشه...برای جلوگیری از این کار فایروال رو بدین ترتیب تنظیم میکنیم
    از این اسکریپت استفاده میکنیم
    کد:
    #!/bin/bash
     I=/sbin/iptables
     #flush all rules
     $I –F
     #allow packets on the loopback interface
     $I -A INPUT -i lo -j ACCEPT
     #reject all zebra vtys
     $I -A INPUT -p tcp --dport 2601:2602 -i eth+ -j REJECT
     #allow the rip neighbors to connect to udp port 520
     $I –A INPUT –p udp –-dport 520 –s 192.168.0.2 –j ACCEPT
     #reject the rest of the world for the udp port 520
     $I –A INPUT –p udp –-dport 520 –j REJECT
    برای اینکه فقط از طریق localhost بتوان telnet کرد access-list بدین شکل مینویسیم
    کد:
    behroozi:~# telnet ۱۲۷.۰.۰.۱ ۲۶۰۱
         Trying ۱۲۷.۰.۰.۱…
         Connected to ۱۲۷.۰.۰.۱.
         Escape character is '^]'.
     
       Hello, this is Quagga (version ۰.۹۸.۳).
     
        Copyright ۱۹۹۶-۲۰۰۵ Kunihiro Ishiguro, et al.
     User Access Verification
     
     Password:
     persianadmins.com> en
     Password:
     persianadmins.com#
     persianadmins.com# conf t
     persianadmins.com(config)# access-list 1 permit host 127.0.0.1
     persianadmins.com(config)# access-list 1 deny any
     persianadmins.com(config)# line vty
     persianadmins.com(config-line)# access-class 1
     persianadmins.com(config-line)# exit
    برای تست تنظیمات بالا بوسیله telnet از کامپیوتری دیگر به پورت های 2601 و 520 متصل میشویم
    کد:
    C:\Documents and Settings\reza>telnet 192.168.0.1  2601
     Connecting To 192.168.0.1....Could not open connection to the host, on port 2601: Connect failed
     
    C:\Documents and Settings\reza>telnet 192.168.0.1  2602
     Connecting To 192.168.0.1....Could not open connection to the host, on port 2602: Connect failed
    همونطور که پیداست امکان ارتباط وجود نداره پس تنظیمات ما بدرستی اعمال شده است.
    نویسنده :

    رضا بهروزی
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]
    reza@behroozi.info
    منابع :
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]


    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    محل سکونت
    Advertising world
    نوشته ها
    Many
    mftmirdamad
     

  3. #2
    RezaBehroozi admin آواتار ها
    تاریخ عضویت
    Jan 1970
    محل سکونت
    Iran/Shiraz
    نوشته ها
    11,187
    تشکرها / پسندها

    پیش فرض مثال از سایت quagga

    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

    در مورد دوستانی که از فدورا استفاده میکنند باید بگم که من پارسال که نصب کردم برای راه اندازی سرویس مثلا rip بر خلاف debian که از طریق فایل daemons این کار انجام میشه باید با دستور
    service ripd start
    chkconfig ripd on
    این کار و انجام بدن…در نسخه های جدید اطلاعی ندارم در فدورا به چه ترتیب هست چونکه مثلا در حال حاضر فقط از طریق لوکال هاست میشود quaaga رو تنظیم کرد و احتیاجی به access-list برای امنیت نیست.
    [فقط اعضا می توانند لینک ها را مشاهده کنند برای ثبت نام اینجا را کلیک کنید]

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •