gabaman

Hozzászólások

10 bejegyzés megtekintése - 11-20 / 2,173
  • Szerző
    Bejegyzés
  • gabaman
    Felhasználó

      Ha nem automata terheléselosztás kell, akkor készítesz külön ACL csoportot és annak alapján osztod el a terhelést. De ekkor pontosan meg kell nevezni melyik címek vagy domain alapú tartományok alapján merre menjenek. A három proxys módszer egyszerűbb (szerintem), egy szerveren is kivitelezhető. Elegánsabb, de nehezebb módszer ha a Debian szerver csatolójára ráteszel még egy IP aliast, majd a két IP-t forrás címént felhasználva továbbítod a megfelelő irányba.

      Pl. HAProxy esetén ilyen a konfig (csak a lényegi részt vázolom):
      defaults
      default_backend DSL

      backend DSL
      option http_proxy
      source 10.0.0.10

      backend berelt
      option http_proxy
      source 10.0.0.11

      frontend vedett
      acl intranet hdr(host) -i host1.ceg.hu
      acl kedvenc1 hdr_end(host) -i linuxforum.hu
      http-request allow if intranet
      http-request allow if kedvenc1
      http-request deny
      use_backend berelt

      Mindez után ha a forrás IP a 10.0.0.10, akkor továbbítod a csomagokat a DSL router felé az iptables segítségével, ha meg *.11, akkor meg bérelt vonal felé. Lehet hogy ez sem jó, ezért nem írok több konkrétumot feleslegesen. A védelem itt hiányzik, de most sem ez az elsődleges.

      gabaman
      Felhasználó

        Mivel a host és az összes guest egy alhálózatban van, megadhatod ugyanazokat a gateway és DNS beállításokat, amit a hostnak megadtál. Ha gagyi a router, akkor a gateway legyen a host IP címe, a hoston meg kell egy NAT forward.

        gabaman
        Felhasználó
          jonnlenin wrote:
          – „A meglévő két szervert már nem nagyon piszkálnám…”- akár piszkálhatjuk is, de nekem egyszerűbbnek tünt egy külön, harmadik gépet beállítani. az a baj, hogy a Squiddet nem bírom rávenni a mutatványra.

          Szerintem olvasd át amiket írtam, mert néhány dolgot nagyon összekeversz. A Squid nem azért van, hogy a terhelést kiegyenlítse, nem erre való (mivel „csak” egy általános és robosztus proxy, viszont jól dokumentált). Ráadásul nem véletlenül kizárólag proxykról beszéltem és nem gépekről/szerverekről. Akár egy gépen is futhatnak megfelelő védelem mellett. Sőt, akár egy web proxy is elég lenne kettő helyett a megfelelő beállításokkal, de ez eléggé specifikus . A javaslatom egy terheléselosztó (load balancer) proxy és két web/anonymous/transparent proxyból áll. Ez utóbbi feladata hogy a HTTP HOST mezőben levő címet – újból – feloldja és oda továbbítsa a tartalmat. Nem a HAProxy az egyetlen ami képes megfelelően szétosztani a forgalmat, de messze ez a legáltalánosabban használt célszoftver.

          jonnlenin wrote:
          – „Az egyik router már proxys”- ez sajnos adott.A bérelt vonalon lévő ISP kapcsolatspecifikus.

          Itt is súlyos tévedés lehet, vagy kevered a proxy és a vhost funkciókat, vagy egy hardveres (specifikus) VPN proxyt nézel általános szoftveres proxynak. Ugyanis most a proxy címére érkező HTTP forgalmat kell újból továbbítani (és kezelni) a fejléc újraértelmezésével. Ezt a funkciót tiltani vagy korlátozni szokták biztonsági okokból, ezért kell itt is korlátozni a bejövő kapcsolatokat a harmadik proxyra (hogy ne legyen átjáróház rossz emberek számára). Nem kizárt, hogy mégis támogatja a rounter/proxy-d a fentieket, ekkor én tévedtem nagyot (az általad megadott infóból nem lehet kihámozni ide vonatkozó dolgokat). Minderre nem lenne szükség, aha a harmadik proxy képes lenne gateway protokoll támogatására. A router típusának ismeretében lehetne fizetős szoftvereket találni, de ha nem vagy a forgalom akkor olcsóbb a plusz PC vásárlása.

          jonnlenin wrote:
          – „a kliensektől jövő hívott oldal címe! és/vagy a portok alapján irányítsam”- Vannak olyan címek, amiknek mindenképpen a bérelt vonalra kell kimennie, mert a hívott oldal zárt rendszerben van, ami csakis ezen keresztül érhető el.Sima UPC-s, T-online-s stb vonalról nem.

          A vél , végül is az, hogy azokat a hívásokat amikhez nem szükséges a bérelt vonal, azt kiterheljük a T-online DSL-jére.

          A HAProxy képes egyedi továbbításra is (lásd ACL rész). De ha csak annyi kell, hogy a megadott címek menjenek a bérelt vonal felé, a többi meg az ADSL felé, akkor nincs szükség proxyra. Kézzel feloldod a domain neveket, az IP-k alapján egy linux gateway (iptables) meg szortírozza. Bár ehhez is át kell alakítani egy kicsit a hálózat elrendezését. Vagy csak a routereknél kell beírni a megfelelő tiltásokat az IP-k alapján. Ha meg szükségtelen a terheléselosztás de nem stabilak az IP címek a DNS-ben, akkor elég önmagában a HAProxy. Ha meg (…), akkor (…).

          jonnlenin wrote:
          Azért nagyon örülök , hogy valaki végre kezdi megérteni a problémát.

          Inkább a „torpedó” nevű játék fórumos adaptációja zajlik. 🙂 Ez is egy olyan tipikus feladat, ahol nagyon sok megoldás létezik, de hogy melyik a célszerűbb és optimálisabb az a részletektől függ.

          gabaman
          Felhasználó

            Mivel a probléma felvetésének módja erős fejfájást okoz, előre is elnézést kérek a válasz miatt.

            Nem kívánok a Cisco nevében beszélni, de közel lehetetlen amit szeretnél (mivel megoldásokat szállítanak ők is és nem vágyakat elégítenek ki). Ugyanis a kívánt layer4 (vagy layer7 – szemlélet és implementáció kérdése) routing nem nagyon valósítható meg, ha a
            – „A meglévő két szervert már nem nagyon piszkálnám…”
            – „Az egyik router már proxys”
            – „a kliensektől jövő hívott oldal címe! és/vagy a portok alapján irányítsam”
            feltételek bármelyikét meg kívánod tartani. (A második azért problémás, mert a proxy nem egy szoftver neve, hanem egy szolgáltatás. Ráadásul két proxy szoftver ritkán tudja ugyanazt ugyanúgy.)

            Az _amit_ szeretnél megoldható, de _ahogy_ szeretnéd hogy megvalósuljon az már agyament dolog. Ha a két „router” egy-egy PC, akkor három proxy segítségével megoldható a következő módon:
            – a két router-en levő proxy csak a harmadik proxytól fogad kapcsolatot, ajánlott proxy: squid (a cache hasznos lehet, de csak opció),
            – a harmadik proxy egy HA-Proxy, ahol meg van adva a következő három (és a többi) konfig opció:
            balance roundrobin
            server s1
            server s2

            – a klienseknél a default gateway (windows: átjáró) a harmadik proxy IP címe
            – a harmadik proxy mehet akár az egyik router-en is, ha a squid nem az alapértelmezett portokat portot használja (pl. 8080 és 8443)
            – külön-külön kell megadni a 80-as és a 443-as portokra vonatkozó szabályokat.

            Így a hálózati késleltetés (latency) megnő és csak a HTTP forgalom kerül továbbításra, de a kliensek számára transzparens, és közel optimális a sávszélesség kihasználtság több aktív kliens esetén (az URL és port mágiához hasonlítva).

            Hogy miért kell három proxy? Mert a HA-Proxy nem ismer egyetlen egy gateway protokollt sem, csak IP-re továbbít. Ha ilyesmi kell, akkor az már hardveresen megy és nem két forint. Például BGP/CEF/RIP alapú megolgások. Régen a Linux Virtual Server (KTCPVS) is tudott valami hasonlót,.de már nem fejlesztik.

            http://www.squid-cache.org/
            http://haproxy.1wt.eu/
            http://kb.linuxvirtualserver.org/wiki/KTCPVS

            Hozzászólás: vmware server telepités #2200816
            gabaman
            Felhasználó

              A vmware konfig rossz, az új kernelek esetén máshol keresi az utsrelease.h fájlt.

              Megoldások:
              http://resalxh.wordpress.com/2010/06/01/vmware-server-2-0-2-on-fedora-13/
              http://communities.vmware.com/message/1517078

              Hozzászólás: iptables – portforward #2200758
              gabaman
              Felhasználó

                A vhost alapú forgalomirányítás user-space layer-4, a többi (session, file típus kezelés, GET/POST manipuláció, stb.) már layer-7. De minderre magadtól is rájöhettél volna, ha utánanézel mi is a korábban emlegetett OSI modell.

                Hozzászólás: iptables – portforward #2200755
                gabaman
                Felhasználó

                  Eszembe jutott erről egy vicc: egy faluban néhány turista megkérdez egy helyi paraszt bácsit, milyen távol van a következő falú. A válasz: légvonalban 2 km, de tudok egy rövidebb utat az erdőn át.

                  Az RFC2616 hivatkozik: (http://www.ietf.org/rfc/rfc2616.txt, Hypertext Transfer Protocol — HTTP/1.1)

                  4.1 Message Types

                  HTTP messages consist of requests from client to server and responses
                  from server to client.

                  HTTP-message = Request | Response ; HTTP/1.1 messages

                  Request (section 5) and Response (section 6) messages use the generic
                  message format of RFC 822 [9] for transferring entities (the payload
                  of the message).

                  az RFC822-re ami ezt állítja: (http://www.ietf.org/rfc/rfc822.txt, STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES)

                  4.1. SYNTAX

                  Note: Due to an artifact of the notational conventions, the syn-
                  tax indicates that, when present, some fields, must be in
                  a particular order. Header fields are NOT required to
                  occur in any particular order, except that the message
                  body must occur AFTER the headers.

                  Ez kb. 0,5 perc google keresés eredménye. Azaz a „Host:” mező bárhol lehet a HTTP fejlécben, akár egy 10MB-os POST mező után is. Mivel így – az IP protokoll méretét nem számolva – a 6990. csomagban kezdődik a „Host” mező (MTU: 1500), nem sok értelme van a kernelben implementálni a HTTP-t. Ráadásul ott az epoll, ami sebesség szempontjából is értelmetlenné teszi a kernel szintű implementációt. De gyakran az akarat felülírja a tényeket és a józan észt…

                  Hozzászólás: iptables – portforward #2200751
                  gabaman
                  Felhasználó
                    vvaassyy wrote:
                    Nem ertem mi rosszat mondtam….

                    Ezt írtam: „a szelekció nem TCP/IP, hanem HTTP (layer 4) szinten van”, mire a válaszod: „jobb lett volna valami kernel szintu forward a http fejlec alapjan”. Természetesen még mindig nem érted mi a probléma. Egy közhely szerint „aki repülni akar, előbb tanuljon meg járni”. Azaz nem tudod mi az OSI modell, de reverse proxy-t építesz több webszerver számra. Innentől kezdve felesleges részleteznem a speciális repülést.

                    vvaassyy wrote:
                    szerintem remek hogy segitettél, kár elrontani undoksággal a végét.

                    Szó sincs undokságról, mivel semmi személyeskedés nincs abban amit írtam. Továbbra is fenntartom, teljesen feleslegesen írtam részleteket, semmi értelme sincs. Kizárólag magamat hibáztatom. Neked – jogosan – csak annyit problémád lehet, hogy nem az alapoktól kezdtem el a válaszom írását. Ha egyszer leírtam, már nem törlöm ki. Egyszerűen rosszul mértem fel mi a segítség és mi a túl sok felesleges locsogás.

                    Hozzászólás: iptables – portforward #2200747
                    gabaman
                    Felhasználó

                      Bar jobb lett volna valami kernel szintu forward a http fejlec alapjan

                      OMG. Bárcsak ne írtad volna, már megbántam hogy válaszoltam. Elnézést kérek, amiért feleslegesen terheltelek.

                      Hozzászólás: iptables – portforward #2200745
                      gabaman
                      Felhasználó

                        Lényegében igen, így van. Viszont ez nem teljes értékű port forward, mivel a szelekció nem TCP/IP, hanem HTTP (layer 4) szinten van. Azaz nem bitazons, hanem tartalomazonos módon továbbít (akár extra mezőket is be lehet szúrni). Amit szeretnél elérni, azt kizárólag olyan módszerrel lehet kivitelezni, ami értelmezni tudja a HTTP fejlécet. Viszont az Apache nem egy „buta port forward” dolgot művel, hanem egy fejléc szűrés után képes szinte bármire. Neked egy egyszerű domain szintű átirányítás kell (értelmezve amit eddig írtál), viszont lehetőség van alkönyvtári szintű vagy kiterjesztés szerinti átirányításra is. Sőt, terhelésmegosztás (server level load balancing) is megoldható. Mivel proxy-ként csak a HTTP kéréseket szelektálja és a válaszokat továbbítja visszirányban, teljesen lényegtelen hogy milyen webszerver szolgálja ki a kéréseket. Egy lényeges hátránya van, nagyobb a teljesítmény igénye mint a kernel szintű port forwardnak, mivel a HTTP fejléc szöveges (a TCP bináris és fix méretű) és az összes aktív kapcsolat a tűzfal/proxy-n is nyitott lesz. Viszont ha egy nagyobb gép megfelelően nagy memóriával, akkor akár egy cache-t is lehetne rá tenni a képeknek és az egyéb statikus tartalomnak. Szóval egy 386-os szintű gép kevés lesz (a kernel szintű TCP port forward esetén azért elvisz egy 10MBit/s forgalmat), de egy lényegesen gyorsabb gépet is hasznossá lehet tenni a gyorstárazás segítségével. Lehet esetleg célszoftvert is feltenni az Apache/lighthttpd helyett, de például. a HAProxy esetén ágyúval lövöldöznél verébre.

                      10 bejegyzés megtekintése - 11-20 / 2,173