Назад | Перейти на главную страницу

OpenVZ Host - это исходный IP-адрес, а не реальные веб-пользователи?

Я испытываю что-то немного странное. Я запускаю OpenZV на сервере CentOS 5. Похоже, что в контейнерах исходный IP-адрес, который говорит, что веб-сервер Apache видит запрос, является IP-адресом хоста OpenVZ, а не фактическим IP-адресом пользователя. Любые предложения относительно того, почему это может происходить?

Это мой sysctl.conf:

# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

iptables-save вывод:

# Generated by iptables-save v1.3.5 on Sun Jan  3 15:23:59 2010
*nat
:PREROUTING ACCEPT [756200:49422664]
:POSTROUTING ACCEPT [903767:67426359]
:OUTPUT ACCEPT [369070:31874494]
-A POSTROUTING -m mark --mark 0x9 -j MASQUERADE 
COMMIT
# Completed on Sun Jan  3 15:23:59 2010
# Generated by iptables-save v1.3.5 on Sun Jan  3 15:23:59 2010
*mangle
:PREROUTING ACCEPT [12320704:7736523164]
:INPUT ACCEPT [384169:50094465]
:FORWARD ACCEPT [11926020:7685806944]
:OUTPUT ACCEPT [386465:36820058]
:POSTROUTING ACCEPT [12308944:7722398683]
-A PREROUTING -i eth0 -j MARK --set-mark 0x9 
COMMIT
# Completed on Sun Jan  3 15:23:59 2010
# Generated by iptables-save v1.3.5 on Sun Jan  3 15:23:59 2010
*filter
:INPUT ACCEPT [379753:49502640]
:FORWARD ACCEPT [11855492:7632198223]
:OUTPUT ACCEPT [386465:36820058]
:RH-Firewall-1-INPUT - [0:0]
COMMIT
# Completed on Sun Jan  3 15:23:59 2010

ip ro sh вывод:

68.168.248.39 dev venet0  scope link 
68.168.248.38 dev venet0  scope link 
68.168.248.37 dev venet0  scope link 
68.168.248.36 dev venet0  scope link 
68.168.248.35 dev venet0  scope link 
68.168.248.34 dev venet0  scope link 
68.168.248.33 dev venet0  scope link 
68.168.248.40 dev venet0  scope link 
208.89.162.96/27 dev eth0  proto kernel  scope link  src 208.89.162.114 
169.254.0.0/16 dev eth0  scope link 
default via 208.89.162.97 dev eth0 

http://wiki.openvz.org/Differences_between_venet_and_veth

Убедитесь, что вы используете мост Ethernet для гостей, а не на уровне хоста.

Похоже, что все сводилось к тому, что в iptables была ошибка. После того, как это было удалено, все работает как надо. Я не уверен, что это настройка CentOS по умолчанию или что-то еще, что было установлено в процессе. Итак, если вы испытываете этот пробег:

iptables -t nat -L
iptables -t mangle -L

И убедитесь, что все вычищено. Также убедитесь, что изменения отражены в / etc / sysconfig / iptables, чтобы они не повторялись при перезагрузке.

Можете ли вы сказать (и приложить вывод):

iptables-save
ip ro sh

на вашем хосте?

Что это за раздача?

Вы используете обратный NAT в свой контейнер или какой-то другой странный трюк?

Я сам вижу это на работе, потому что у нас работают балансировщики веб-нагрузки на основе Piranha, поэтому, когда запрос приходит с общедоступного IP-адреса, я NAT на свои веб-серверы вместо того, чтобы открывать их для Интернета.