m-vychytavky: hiding traffic

14.02.2006 15:43 | blackhole

case study:
majme server ktory ma dve a viac sietoviek a dve a viac ip adries.
majme software, ktory vie pocuvat na viac ip adresach.

co musime spravit
- rozdelit ip adresy na jednotlive sietovky podla toho ako nam to vyhovuje (obycajne to budete chciet rozdelit rovnomerne)
- nakonfigurovat source routing, pretoze za normalnych okolnosti linux aj ked ma nakonfigurovanu nejaku secondary ipecku na inom interfejsi ako cez ktory ma defaultroutu, tak zial pouzije ten, na ktomo je defaultrouta. to znamena, ze traffic by sice prichadzal trebars cez eth1, ale odchadzal by cez eth0 (cez ktoru je default gw) aj napriek tomu, ze zdrojova IPcka toho trafficu by bola assignovana na eth1..
- dalo by sa to riesit aj bondingom (dat viac eth interfejsov dokopy, ale tu by sa traffic rozdeloval len na jednotlive sietovky a nie na ip adresy - aj ked teraz ma napada, ze ak by na bondingovom zariadeni bolo assignovanych viac ip, tak by to MOZNO fungovalo :) )

taakze majme:

eth0, ktore ma adresy:

/sbin/ifconfig eth0 10.1.2.1 broadcast 10.1.2.255 netmask 255.255.255.0
/sbin/ifconfig eth0:0 10.1.2.2 broadcast 10.1.2.255 netmask 255.255.255.0
/sbin/ifconfig eth0:1 10.1.2.3 broadcast 10.1.2.255 netmask 255.255.255.0

eth1, ktore ma adresy:

/sbin/ifconfig eth1 10.1.2.10 broadcast 10.1.2.255 netmask 255.255.255.0
/sbin/ifconfig eth1:0 10.1.2.20 broadcast 10.1.2.255 netmask 255.255.255.0
/sbin/ifconfig eth1:1 10.1.2.30 broadcast 10.1.2.255 netmask 255.255.255.0

obe sietovky su v jednom subnete, ale myslim ze neni dovod aby to nechodilo a v roznych subnetoch (este nenapadnejsie riesenie ;) )

este by sme mohli nejak zriesit aj default gw, nech sa neodpilime:

/sbin/route add default gw 10.1.2.254 dev eth0

doteraz pohodka, klasika, nasledovne uz nebude klasika, ale nebude to nic komplikovane:
musime vytvorit zaznam v /etc/iproute2/rt_tables (nezabudol som povedat ze treba mat iproute2 nasinstalovane? :) )
tento zaznam sa vytvara len raz, nie po kazdom boote (je to bezny konfig fajl, nic dynamicke)
echo "10 eth1table" >> /etc/iproute2/rt_tables

potom po kazdom boote musime vytvorit alternativnu routovaciu tabulku pre adresy na eth1:

/sbin/ip rule add from 10.1.2.10 table eth1table prio 220
/sbin/ip rule add from 10.1.2.20 table eth1table prio 220
/sbin/ip rule add from 10.1.2.30 table eth1table prio 220
/sbin/ip route add default via 10.1.2.254 dev eth1 table eth1table proto static

takze uz staci dapisat zopar Acok do DNSka pre host na ktory sa maju klienti konektovat, napr v djbdns:

=fbi.sk:10.1.2.1:86400
=fbi.sk:10.1.2.2:86400
=fbi.sk:10.1.2.3:86400
=fbi.sk:10.1.2.10:86400
=fbi.sk:10.1.2.20:86400
=fbi.sk:10.1.2.30:86400

a fijuuuu

    • machr 15.02.2006 | 09:41
      Avatar blackhole   Návštevník

      maniac je machr pise same dobre clanky.

    • pjekne 15.02.2006 | 21:16
      Avatar blackhole   Návštevník
      a proc ne aj na kyberiu? tu ti nemozem dat K:-)
      • vsetky tieto clanky najdes 16.02.2006 | 13:36
        Avatar blackhole   Návštevník

        vsetky tieto clanky najdes aj na kyberke vo fore Vychytavky :)