LINUX.ORG.RU

Сообщения cheshirez

 

Падает скорость на гостевую машину XEN

Форум — Admin

Сервер держит роли http, OpenVPN и XEN-сервера, расположен в мире и имеет белый IP. Гостевая win2k3 распологается за NAT, доступ по RDP.
На внешнем канале 100Mbit/s duplex full, но на гостевой максимальная скорость на Мир - 11 Mbit/s на вход и 6 Mbit/s на выход, так же медленно работает через OpenVPN (подключен к серверу, к гостевой доступ тоже через NAT). При этом скорость работы с поднятой на сервере самбошарой 120 Мбит/с в обе стороны, что подразумевает проблему на стороне iptables

Ядро: 2.6.32-5-xen-amd64
Конфиг XEN для гостевой ОС:

kernel = '/usr/lib/xen-4.0/boot/hvmloader'
builder = 'hvm'
memory = '8192'
cpus = ''
vcpus = '6'
cpu_cap = '600'
device_model = '/usr/lib/xen-4.0/bin/qemu-dm'
# Disks
disk = [ 'phy:/dev/mapper/virt01,hda,w',
'phy:/dev/mapper/base,hdb,w' ]
# Hostname
name = 'virt01'
vmid = '2'
# Networking
vif = [ 'script=vif-nat,ip=10.0.0.1,mac=00:16:3E:00:01:01' ]
# Behaviour
boot='c'
vnc=1
vncdisplay=10
sdl=0

Собственно сам скрипт IPTABLES:

# Очистка таблицы NAT
iptables -t nat -F
# Проброс порта RDP
iptables -t nat -A PREROUTING -i tap0 -p tcp -m tcp --dport 139 -j DNAT --to-destination 10.0.0.128:139
iptables -t nat -A PREROUTING -i tap0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 10.0.0.1:3389
# Подменяем исходящий адрес c гостевой ОС на внешний
iptables -t nat -A POSTROUTING -s 10.0.0.1 -o xenbr0 -j SNAT --to-source XX.XX.XX.XX
iptables -t nat -A POSTROUTING -o tap0 -j SNAT --to-source 10.10.0.1
# Очистка таблицы MANGLE (там сейчас ничего нет, на случай если кое-приложение начнет мусорить)
iptables -t mangle -F
# Очистка таблицы
iptables -F
#Действия по-умолчанию
iptables -P INPUT DROP
iptables -P FORWARD DROP
#Правила INPUT
iptables -A INPUT -i xenbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 10.0.0.1/24 -j ACCEPT
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -p tcp -m conntrack --ctstate INVALID,NEW -m tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
# перед дропом пакета пишем в журнал
iptables -A INPUT -i xenbr0 -j LOG --log-prefix "BLOCKED packet from WAN: " --log-level 7
# FORWARD-правила
iptables -A FORWARD -p tcp -m tcp --dport 80 -j ACCEPT
#Пропускаем пакеты от гостевой ОС
iptables -A FORWARD -s 10.0.0.1/24 -j ACCEPT
iptables -A FORWARD -d 10.0.0.1/24 -j ACCEPT
# VPN - открываемся для внутренней сети
iptables -A INPUT -p udp -m udp --dport 33443 -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport 33443 -j ACCEPT
xenbr0 - на данный момент состоит только из одного физического интерфейса, смотрящий в мир.
tap0 - виртуальный интерфейс для OpenVPN (подсеть 10.10.0.0/24)
Сеть гостевой машины за NAT - 10.10.0.0/24. Установил т.к. при каждой перезагрузке изменяется название интерфейса vif, которое смотрит на него. Политика iptables такова, что напрямую к гостевой системе не обратиться, пока она сама не установит соединение. К ней доступен только RDP, изнутри для нее же доступ открыт везде.

Кроме возможных недосмотров в конфигах, также интересно узнать, что может приводить к подобным потерям в скорости сети?

 , ,

cheshirez
()

RSS подписка на новые темы