Воскресенье, 25 Январь 2009
xen: маскируемся по макам
Посвещается одному ISP который сделал фильтрацию по mac адресу на своем catalyst.
Есть сервер на котором стоит задача сделать кучу xen доменов. Есть два адреса (1.2.3.4/24 для dom0 и 1.2.4.3/24 для dom1) и фильтрация по mac.
Техническая подержка ISP предлагала использовать все что угодно кроме bridge, говорили про NAT (очень не хочется) и routing (тут я не смог понять как они хотели, да и они, сами, не знали, что они хотят и как). А раз не хочет помогать нам техническая поддержка, будем помогать себе сами.
И так, задача: сделать выход в интернет и возможность наблюдать из интернета как dom0 так и dom1, используя для этого bridge и mac-nat (ip nat ну очень не хотелось). Спасибо отдельное Никите, который обратил мое внимание что eth0 на самом деле это bridge. Ну а теперь, собственно, волшебные команды:
ebtables -t nat -A PREROUTING -p IPv4 -d DOM0_MAC -i peth0 --ip-dst DOMU_IP -j dnat --to-dst DOMU_MAC --dnat-target ACCEPT
ebtables -t nat -A PREROUTING -p ARP -d DOM0_MAC -i peth0 --arp-ip-dst DOMU_IP -j dnat --to-dst DOMU_MAC --dnat-target ACCEPT
ebtables -t nat -A POSTROUTING -p IPv4 -s DOMU_MAC -o peth0 --ip-src DOMU_IP -j snat --to-src DOM0_MAC --snat-target ACCEPT
ebtables -t nat -A POSTROUTING -p ARP -s DOMU_MAC -o peth0 --arp-ip-src DOMU_IP -j snat --to-src DOM0_MAC --snat-target ACCEPT
Осталось подумать, как сделать более менее размазано по доменам.
Комментарии
Форма комментирования для «xen: маскируемся по макам»