Quagga

A Unix/Linux szerverek üzemeltetése wikiből
A lap korábbi változatát látod, amilyen Teki (vitalap | szerkesztései) 2010. november 8., 23:13-kor történt szerkesztése után volt.

A Quagga egy routing szoftver csomag, amely a Unix/Linux rendszerekhez lett kialakítva. TCP/IP alapú routing szolgáltatást tesz elérhetővé és szinte az összes fontosabb routing protokollt támogatja (RIP,OSPF,BGP). Az IPv4 routing mellett az IPv6 protokollokat is támogatja. Az aktuális verzió letölthető itt: [1]


Tartalomjegyzék

1 Története

2005-ig a GNU Zebra látta el a routing feladatokat, majd ezután vette át és fejlesztette tovább a Quagga. A régebbi verzió itt érhető el: [2]. A mai napig találnak hibákat, amelyeket folyamatosan javítanak. Érdekesség, hogy már a 2005-ös Zebra is támogatta az IPv6 routingot.


2 Működése

A Quagga átvette a Zebra működését, amiatt egyeznek meg a régebben használt nevek.

+----+  +----+  +-----+  +-----+
|bgpd|  |ripd|  |ospfd|  |zebra|
+----+  +----+  +-----+  +-----+
                            |
+---------------------------|--+
|                           v  |
|  UNIX Kernel  routing table  |
|                              |
+------------------------------+

    Quagga System Architecture


A zebra kommunikál a kernellel tehát ő a kernel routing manager, ezáltal frissülnek az adatok a routing táblában. Emellett fut a használt routing protokollnak megfelelő daemon(szoftver) amely kommunikál a zebrával. A könnyebb konfigurálhatóság érdekében létrehoztak egy terminált is amelyet telnettel érhetünk el. Minden daemon-hoz tartozik egy konfig file amellyel beállíthatjuk a megfelelő kezdő paramétereket, valamint futás közben a terminál segítségével változtathatunk a működésén.


3 Beállítása

A zebra-t a következő paranccsal indíthatjuk el(a -d kapcsolóval háttérben fut):zebra -g "group name" -u "user name"
Beállítható hogy melyik user neve alatt fusson a program.
A szolgáltatást a nevével és ugyanazzal a kapcsolókkal,mint a zebránál,indíthatjuk.
pl. ospfd -d -g root -u root
A terminált a következő paranccsal érhetjük el:
telnet localhost "szolgáltatás neve"

Szolgáltatás neve    Port
zebrasrv             2600/tcp          # zebra service
zebra                2601/tcp          # zebra vty
ripd                 2602/tcp          # RIPd vty
ripngd               2603/tcp          # RIPngd vty
ospfd                2604/tcp          # OSPFd vty
bgpd                 2605/tcp          # BGPd vty
ospf6d               2606/tcp          # OSPF6d vty
ospfapi              2607/tcp          # ospfapi
isisd                2608/tcp          # ISISd vty

A szolgáltatás elindításakor a kezdő konfig file alapján indul el, amelyet a /usr/local/etc könyvtárba kell elhelyezni. Telepítéskor található itt néhány példafájl is.
zebra.conf.sample:

! -*- zebra -*-
!
! zebra sample configuration file
!
! $Id: zebra.conf.sample,v 1.1 2002/12/13 20:15:30 paul Exp $
!
hostname Router
password zebra
enable password zebra
!
! Interface's description.
!
!interface lo
! description test of desc.
!
!interface sit0
! multicast

!
! Static default route sample.
!
!ip route 0.0.0.0/0 203.181.89.241
!

!log file zebra.log

A terminálba belépéskor a password utána megadott szót kéri. Ekkor csak az aktuálisan futó beállításokat és értékeket kérhetjük le a show parancs kiegészítésével. Enable módba kell átlépni, hogy a konfigurációt megváltoztathassuk. Ezt az enable paranccsal érhetjük el és itt az enable password után beírt szót kell megadnunk. Ekkor a következő beállítások állnak majd a rendelkezésünkre:

  clear      Reset functions
  configure  Configuration from vty interface
  copy       Copy configuration
  debug      Debugging functions (see also 'undebug')
  disable    Turn off privileged mode command
  echo       Echo a message back to the vty
  end        End current mode and change to enable mode.
  exit       Exit current mode and down to previous mode
  help       Description of the interactive help system
  list       Print command list
  logmsg     Send a message to enabled logging destinations
  no         Negate a command or set its defaults
  quit       Exit current mode and down to previous mode
  show       Show running system information
  terminal   Set terminal line parameters
  who        Display who is on vty
  write      Write running configuration to memory, network, or terminal

A ! és a # jel a kommentet jelzi az utána lévő írást a sor végéig nem veszi figyelembe. A zebra konfigurációjában kell felsorolnunk, hogy mely interfészek routingolását szeretnénk használni a szoftver által.
ospfd.conf.sample:

! -*- ospf -*-
!
! OSPFd sample configuration file
!
!
hostname ospfd
password zebra
!enable password please-set-at-here
!
!router ospf
!  network 192.168.1.0/24 area 0
!
log stdout

4 Példa megoldás

Egy OSPF hálózat kialakítása.
Quagga.jpg
A PC1 zebra.conf file-ja:

hostname PC1
password yoli
enable password yoli
! 
interface eth0
!
line vty
!

A PC1 ospfd.conf file-ja:

!
hostname PC1
password yoli
enable password yoli
log stdout
! 
interface eth0
! 
router ospf
 router-id 0.0.0.1
 area 0.0.0.1 range 192.168.0.0/16
!
 interface eth0 area 0.0.0.1
! 
line vty
!

A PC2 zebra.conf file-ja:

hostname PC2
password yoli
enable password yoli
! 
interface eth0
!
line vty
!

A PC2 ospfd.conf file-ja:

!
hostname PC2
password yoli
enable password yoli
log stdout
! 
interface eth0
! 
router ospf
 router-id 0.0.0.2
 area 0.0.0.1 range 192.168.0.0/16
!
 interface eth0 area 0.0.0.1
! 
line vty
!

A PC3 zebra.conf file-ja:

hostname PC3
password yoli
enable password yoli
! 
interface eth0
!
line vty
!

A PC3 ospfd.conf file-ja:

!
hostname PC3
password yoli
enable password yoli
log stdout
! 
interface eth0
! 
router ospf
 router-id 0.0.0.3
 area 0.0.0.1 range 192.168.0.0/16
!
 interface eth0 area 0.0.0.1
!
line vty
!

A PC4 zebra.conf file-ja:

hostname PC4
password yoli
enable password yoli
! 
interface eth0
!
line vty
!

A PC4 ospfd.conf file-ja:

!
hostname PC4
password yoli
enable password yoli
log stdout
! 
interface eth0
! 
router ospf
 router-id 0.0.0.4
 area 0.0.0.1 range 192.168.0.0/16
!
 interface eth0 area 0.0.0.1
! 
line vty
!

A Router1 zebra.conf file-ja:

hostname Router1
password yoli
enable password yoli
! 
interface eth0
!
line vty
!

A Router1 ospfd.conf file-ja:

!
hostname Router1
password yoli
enable password yoli
log stdout
! 
interface eth0
! 
router ospf
 router-id 0.0.0.11
 area 0.0.0.1 range 192.168.0.0/16
!
 interface eth0 area 0.0.0.1
!
line vty
!

A Router2 zebra.conf file-ja:

hostname Router2
password yoli
enable password yoli
! 
interface eth0
!
line vty
!

A Router2 ospfd.conf file-ja:

!
hostname Router2
password yoli
enable password yoli
log stdout
! 
interface eth0
! 
router ospf
 router-id 0.0.0.12
 area 0.0.0.1 range 192.168.0.0/16
!
 interface eth0 area 0.0.0.1
!
line vty
!

A Router3 zebra.conf file-ja:

hostname Router3
password yoli
enable password yoli
! 
interface eth0
!
line vty
!

A Router3 ospfd.conf file-ja:

!
hostname Router3
password yoli
enable password yoli
log stdout
! 
interface eth0
! 
router ospf
 router-id 0.0.0.13
 area 0.0.0.1 range 192.168.0.0/16
!
 interface eth0 area 0.0.0.1
! 
line vty
!

A Router4 zebra.conf file-ja:

hostname Router4
password yoli
enable password yoli
! 
interface eth0
!
line vty
!

A Router4 ospfd.conf file-ja:

!
hostname Router4
password yoli
enable password yoli
log stdout
! 
interface eth0
! 
router ospf
 router-id 0.0.0.14
 area 0.0.0.1 range 192.168.0.0/16
!
 interface eth0 area 0.0.0.1
! 
line vty
!

A Router5 zebra.conf file-ja:

hostname Router5
password yoli
enable password yoli
! 
interface eth0
!
line vty
!

A Router5 ospfd.conf file-ja:

!
hostname Router5
password yoli
enable password yoli
log stdout
! 
interface eth0
ip ospf cost 1
! 
router ospf
 router-id 0.0.0.15
 area 0.0.0.1 range 192.168.0.0/16
!
 interface eth0 area 0.0.0.1
 passive-interface eth1
! 
line vty
!

Készítő: Teki

Személyes eszközök