от Vladsun(9-09-2006)
рейтинг (13)
[ добре ]
[ зле ]
Вариант за отпечатване
Наскоро ми се наложи да реша следния проблем:
- получихме една /22 мрежа от ИП-та;
- трябваше да върнем 3 /24 мрежи на нашия доставчик;
- потребителите са със статично задаване на ИП
настройките;
- ИП-тата на нашите mail, www, dns и т.н. сървъри също
трябваше да бъдат сменени;
- срокът за изпълнение на горното беше една седмица (след
това заминавах на море :):) );
- невъзможно беше в този период да сменим настройките на
всички потребители;
Ето какво успях да сътворя:
Първата Ви работа е да смените TTL-а на зоните в DNS
сървъра с много малки стойности - прим. 10 сек. (благодаря,
В. Колев) за да може да се получи малко време за
разпространение на новите адреси. Това се прави със старите
зони и възможно най-рано преди смяната на ИП адресите (в
идеалния случай - времето от смяната на TTL до смяната с
новите зони да е по-голмо от стария TTL). След като смените
адресите можете спокойно да върнете TTL-а на зоните към
нормалните стойности.
След това "мапваме" старите мрежи към новите:
Примерен
код |
iptables -t nat -А POSTROUTING -o eth0
-s old_net/24 -j NETMAP --to new_net/24
iptables -t nat -А PREROUTING -i eth0 -d new_net/24 -j
NETMAP --to old_net/24 |
При мен eth0 е външният интерфейс, eth1
вътрешният.
Дотук всичко вече е решено и ще работи, но възниква
следният проблем:
- машините, на които са им сменени настройките с новите
ИП-та нямат достъп до интернет заради второто правило.
Избраният от мен вариант беше да се направи списък със
сменените ИП-та и те да се ACCEPT-ват в "-t nat,
PREROUTING, -i eth0" преди мапването. Т.е:
Примерен
код |
iptables -t nat -I PREROUTING -i eth0
-d new_ip1 -j ACCEPT
iptables -t nat -I PREROUTING -i eth0 -d new_ip2 -j
ACCEPT |
Много по добри резултати се получават, ако се използва
IPSET. Тогава:
Примерен
код |
ipset -N new_net_set ipmap --network
new_net/24
iptables -t nat -I PREROUTING -i eth0 -m set --set new_net_set dst -j
ACCEPT
ipset -A new_net_set new_ip1
ipset -A new_net_set new_ip2 |
Получиха се обаче оплаквания, че file transfer-a на
продукти като ICQ и IRC не работи. Все пак това временно
решение си свърши работата, докато се сменят настройките на
всички потребители.
ПП: Много внимавайте да няма таргет NOTRACK - скапва целия
NETMAP.
<< Съхранение на поверителна информация в БД | squid (малко упътване) >>
|