Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam.
mam sobie 2 dsle, wiec do rozdania mam 8 numerków ip :)
dajmy na to na eth2 mam siec 83.xx.xx.16/29
eth2 ma ip 83.xx.xx.18 ,alias eth2:0 ma 83.xx.xx.20.
teraz robie:
iptables -t nat -A PREROUTING -d 83.xx.xx.20 -j DNAT --to-destination 10.1.1.1
i
iptables -t nat -A POSTROUTING -s 10.1.1.1 -j SNAT --to-source 83.xx.xx.20
niby to dziala, ale jakos topornie ...
teraz moje pytanie - czy da rade zrobic klientowi po stronie LANu publiczny adres ip w bardziej cywilizowany sposób ?
Offline
tak
robisz sobie aliasa na interfejs lokalny z IP zewn ktory bedzie brama dla userow z zewn IP
jeszcze pytanie takie IP DSL'a jest z tej samej klasy co przydzielona pula IP?
Offline
nie działa :( ... ale tylko w obecnej konfiguracji :) , mam routing na 3 lacza i motyw jest taki ze z lokalnego interfejsu nie widac zewn. interfejsu... pogrzebie troche i powinno zatrybic :)
ale sam pomysl dobry :) THX
Offline
dla przykladu ja mam tak
ip route show 80.xy.xx.200 dev pvc0 scope link src 80.xy.xx.202 80.xx.xx.196 dev pvc1 scope link src 80.xx.xx.198 80.xy.xx.200/30 dev pvc0 proto kernel scope link src 80.xy.xx.202 80.xx.xx.196/30 dev pvc1 proto kernel scope link src 80.xx.xx.198 80.xz.xx.64/27 dev eth0 proto kernel scope link src 80.xz.xx.65 80.xz.xx.32/27 via 80.xz.xx.33 dev eth0 80.xz.xx.0/26 dev eth0 proto kernel scope link src 80.xz.xx.1 192.xx.xx.0/24 dev eth0 proto kernel scope link src 192.xx.xx.1 10.xx.xx.0/24 dev eth0 proto kernel scope link src 10.xx.xx.1 default nexthop via 80.xy.xx.201 dev pvc0 weight 1 nexthop via 80.xx.xx.197 dev pvc1 weight 2
gdzie
[b]80.xy.xx.201 80.xx.xx.197[/b] - interfejsy wyjsciowe na swiat
[b]80.xz.xx.64/27 80.xz.xx.0/26[/b] - ip zewn przeroutowane do sieci lokalnej
ip rule show 0: from all lookup local 32752: from 10.xx.xx.0/24 lookup polpak2 32753: from 192.xx.xx.0/24 lookup polpak2 32754: from 192.xx.xx.0/24 lookup polpak2 32755: from 80.xz.xz.64/27 lookup polpak1 32756: from 80.xz.xz.0/26 lookup polpak1 32757: from 80.xx.xx.198 lookup polpak2 32758: from 80.xy.xx.202 lookup polpak1 32759: from 10.xx.xx.0/24 lookup polpak2 32760: from 192.xx.xx.0/24 lookup polpak2 32761: from 192.xx.xx.0/24 lookup polpak2 32762: from 80.xz.xx.64/27 lookup polpak1 32763: from 80.xz.xx.0/26 lookup polpak1 32764: from 80.xx.xx.198 lookup polpak2 32765: from 80.xy.xx.202 lookup polpak1 32766: from all lookup main 32767: from all lookup default
poprostu nie dopisujesz do tablicy zevy userzy kozystali z innego wyjscia niz to do ktorego jest ip przydzielone.....
Offline
goliath:~# ip ro li 195.245.244.243 via 80.xx.xx.21 dev eth0 80.xx.xx.20/30 dev eth0 proto kernel scope link src 80.xx.xx.22 83.yy.yy.72/29 dev eth2 proto kernel scope link src 83.yy.yy.74 83.zz.zz.16/29 dev eth1 proto kernel scope link src 83.zz.zz.18 10.0.0.0/8 dev eth3 proto kernel scope link src 10.1.1.201 default equalize nexthop via 80.xx.xx.21 dev eth0 weight 1 nexthop via 83.yy.yy.17 dev eth1 weight 1 nexthop via 83.zz.zz.73 dev eth2 weight 1 goliath:~# ip ru li 0: from all lookup local 32763: from 83.zz.zzz.74 lookup zzz3 32764: from 83.yy.yy.18 lookup YYY2 32765: from 80.xx.xx.22 lookup XXX1 32766: from all lookup main 32767: from all lookup default
czyli w sumie tak samo
Offline
Hmm jak Ci dziala ten balansing jak nie dodales dla lokalnych interfejsow tras routingu
ip rule add from 10.0.0.0/8 table zzz3 ip rule add from 10.0.0.0/8 table yyy2 ip rule add from 10.0.0.0/8 table xxx2 ip route add 10.0.0.0/8 dev eth3 table zzz3 ip route add 10.0.0.0/8 dev eth3 table yyy2 ip route add 10.0.0.0/8 dev eth3 table xxx3
zakladajac ze kasa adresowa ktora chesz przydzielic miskom to
80.xx.xx.xx idaca przez lacze zzz3
ip rule add from 80.xx.xx.xx/xx table zzz3 ip route add 80.xx.xx.xx/xx dev eth3 table zzz3
i nie dopisujesz tych tras do inych podtablic routingu tylko do jednej czyli misie z zewn ip beda mogly wychodzic tylko rzez lacze zzz3
Offline
Load Balancing dziala dobrze, tylko z lokalnego IP nie mozna dosiegnoc zewnetrznego IP ... zadna to strata
//update
Biexi ... Twoje kombinejszons nie zadziałały u mnie :) ... wogole to dobrze ze dałem `shutdown -r 5 &` zanim zaczolem cokolwiek grzebac , bo po wpisaniu dodatkowych tras i daniu ip route flush cache ... moj debianek przestał do mnie gadac ... dobrze ze zaraz sie robótnoł :) i wrócił do normy ;]
Offline
generalnie jesl chesz zanatowac ip zenwetrzne na lan to musisz na stale dla twojego IP przydzielic trase routingu do tego interfejsu na ktrym ten ip jest routowany bo inaczje male prawdopodobnienstow ze bedzie CI on dzialal. Wiem testowalm to usiebie a mam dosc zlozona siec z duza ilsocia adresow ktore sa routowane za routery brzegowe co powoduje ze one musza isc przez lacze na ktre jest przyznan klasa adresowa.... a wszystko dlatego ze se ne zaznaczylam jednej fajeczki w podaniu o polpaka :]
tera sie zabieram za dynamiczny routing i zobaczymy jak to bedzie dzialac bo che troszeczke miec wieksza kontrol nad ruchem w sieci......
Offline
wszystko dziala :) wysłałem do RIPE wniosek o klase C dla mojego polpaka zadnych dodatkowychtras routingu dodawac nie musze bo już są :)
jakis nowy wynalazek zapodalem , jest jedna brama domyslna , przez pozostałe dwa DSLe leci www (tcp_outgoing_address w squidzie)
goliath:~# cat multipath.sh #!/bin/bash echo "Ładuję zmienne" IF0=eth3 IF1=eth0 IF2=eth1 IF3=eth2 IP1=80.51.227.22 IP2=83.16.45.18 IP3=83.16.45.74 P1=80.51.227.21 P2=83.16.45.17 P3=83.16.45.73 P0_NET=10.0.0.0/8 P1_NET=80.51.227.20/30 P2_NET=83.16.45.16/29 P3_NET=83.16.45.72/29 ip route add $P1_NET dev $IF1 src $IP1 table XXX1 ip route add $P2_NET dev $IF2 src $IP2 table YYY2 ip route add $P3_NET dev $IF3 src $IP3 table zzz3 ip route add $P1_NET dev $IF1 src $IP1 ip route add $P2_NET dev $IF2 src $IP2 ip route add $P3_NET dev $IF3 src $IP3 ip route add default via $P1 ip rule add from $IP3 table zzz3 ip rule add from $IP2 table YYY2 ip rule add from $IP1 table XXX1 ip route add $P0_NET dev $IF0 table XXX1 ip route add $P2_NET dev $IF2 table XXX1 ip route add 127.0.0.0/8 dev lo table XXX1 ip route add $P0_NET dev $IF0 table YYY2 ip route add $P1_NET dev $IF1 table YYY2 ip route add 127.0.0.0/8 dev lo table YYY2 ip route add $P0_NET dev $IF0 table zzz3 ip route add $P3_NET dev $IF3 table zzz3 ip route add 127.0.0.0/8 dev lo table zzz3 ip route add default via $P1 table XXX1 ip route add default via $P2 table YYY2 ip route add default via $P3 table zzz3 ip route flush cache
Offline
wszystko zalerzy od topologi sieci np bardzo uproszczony schemat moeje sieci
[ router IP zewn ] -- polpak 1 --- [pvc0] ------------ /-------[ z klasy POLPAK 2 ]------ uzytkownicy z zenw IP/lokalne Internet | server |[eth0]--------------------------- siec lan i ip zen POLPAK 1 -- polpak 2 --- [pvc1] ------------ | -------[ router zewn IP POLPAK 1] | |_____uzytkownicy zewn IP/lokalne | |________[router zewn IP] [ strefa DMZ servery ] |____uzytkown zewn IP/lokalne [ WWW FTP POCZTA ] [ IP zewn POLPAK 2 ]
i tera wiesz dlaczego moja tablica jest troche bardziej pojechana :]
a z mnnie ciarki przechodza jak pomysle ze se to wszsytko na dynamiczny routing bede musiala przerobic :]
Offline
Time (s) | Query |
---|---|
0.00015 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00106 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.191.238.6' WHERE u.id=1 |
0.00084 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.191.238.6', 1738279637) |
0.00053 | SELECT * FROM punbb_online WHERE logged<1738279337 |
0.00057 | SELECT topic_id FROM punbb_posts WHERE id=5579 |
0.00004 | SELECT id FROM punbb_posts WHERE topic_id=691 ORDER BY posted |
0.00052 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=691 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00082 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=691 ORDER BY p.id LIMIT 0,25 |
0.00087 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=691 |
Total query time: 0.00549 s |