Добрый день! При ознакомлении с установкой OpenVZ на CENTOS 5.2 возникло масса вопросов, которые я хотел бы уточнить. 1) Вопросы про ядро. Использовал как пример http://www.howtoforge.com/installing-and-using-openvz-on-cen tos5.2 Конфигурация железа такая CPU Intel Q9450 4 ядра, 12Mb кеш RAM 8Gb Ставил ядро ovzkernel-PAE.i686 так как у меня больше 4 Gb памяти. uname -a выдает: Linux host-46-129 2.6.18-92.1.18.el5.028stab060.8PAE #1 SMP Mon Feb 9 22:32:30 MSK 2009 i686 i686 i386 GNU/Linux То ли ядро для такой конфигурации? Так как в /boot/grub/menu.lst я не увидел упамянания о ovzkernel-PAE.i686 nuz-2.6.18-92.1.18.el5.028stab060.8PAE# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/mapper/ddf1_4c5349202020202080862925000000003714e fbe00000a28 default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-92.1.18.el5.028stab060.8PAE) root (hd0,0) kernel /vmlinuz-2.6.18-92.1.18.el5.028stab060.8PAE ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.18-92.1.18.el5.028stab060.8PAE.img title CentOS (2.6.18-128.1.6.el5PAE) root (hd0,0) kernel /vmlinuz-2.6.18-128.1.6.el5PAE ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.18-128.1.6.el5PAE.img title CentOS (2.6.18-128.el5PAE) root (hd0,0) kernel /vmlinuz-2.6.18-128.el5PAE ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.18-128.el5PAE.img Что делать с 4-мя ядрами на CPU, SMP? как его включит? В логах пишет: ********************************************************** * This system has more than 8 Gigabyte of memory. * * It is recommended to install enterprise kernel version * ********************************************************** 2) Вопросы про Сеть sysctl.conf В статье приведен пример sysctl.conf net.ipv4.ip_forward = 1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.conf.all.rp_filter = 1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.forwarding=1 У меня он выглядит вот так: # Kernel sysctl configuration file for Red Hat Linux # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Controls IP packet forwarding net.ipv4.ip_forward = 0 # Controls source route verification net.ipv4.conf.default.rp_filter = 1 # Do not accept source routing net.ipv4.conf.default.accept_source_route = 0 # Controls the System Request debugging functionality of the kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to the core filename # Useful for debugging multi-threaded applications kernel.core_uses_pid = 1 # Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1 # Controls the maximum size of a message, in bytes kernel.msgmnb = 65536 # Controls the default maxmimum size of a mesage queue kernel.msgmax = 65536 # Controls the maximum shared segment size, in bytes kernel.shmmax = 4294967295 # Controls the maximum number of shared memory segments, in pages kernel.shmall = 268435456 Могу ли я его просто довести до вида как в примере? Ситуация усугубляема тем, что если я совершу ошибку, то потеряю доступ к серверу, так как сижу по ssh. 3) Вопрос по DNS Почему-то на VPS не резольвятся имена DNS Хотя все отконфигурировал, и в конфиге есть строка NAMESERVER="213.248.1.6" Прошу прощения если у меня слушком много очевидных вопросов.
Здравствуйте, 1. Quote: То ли ядро для такой конфигурации? Так как в /boot/grub/menu.lst я не увидел упамянания о ovzkernel-PAE.i686 Да, все правильно. В menu.lst - данное ядро представлено записью "vmlinuz-2.6.18-92.1.18.el5.028stab060.8PAE". 2. Quote: Что делать с 4-мя ядрами на CPU, SMP? как его включит? Это smp ядро. Включать ничего не нужно. Всё должно обнаружиться автоматически. Проверьте вывод "cat /proc/cpuinfo". 3. Quote: В логах пишет: Не знаю, кто конкретно это пишет. Просто проверьте, что вся память доступна - "cat /proc/meminfo" или "free -m". 4. Quote: Могу ли я его просто довести до вида как в примере? Да, у тех sysctl параметров, которые уже прописаны в конфиге измените соответсвующим образом значения, те, которых в конфиге нет - допишите нужным образом. 5. Quote: Вопрос по DNS Почему-то на VPS не резольвятся имена DNS А сеть вообще работает? Я имею в виду просто по ip адресам? Есть ли доступ из VE до "213.248.1.6"?
Да, сеть работает. [root@host-46-129 vz]# vzctl enter 46130 entered into CT 46130 [root@host-46-130 /]# ping 213.248.1.6 PING 213.248.1.6 (213.248.1.6) 56(84) bytes of data. 64 bytes from 213.248.1.6: icmp_seq=1 ttl=61 time=1.02 ms 64 bytes from 213.248.1.6: icmp_seq=2 ttl=61 time=1.02 ms 64 bytes from 213.248.1.6: icmp_seq=3 ttl=61 time=1.02 ms --- 213.248.1.6 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev = 1.022/1.024/1.026/0.026 ms [root@host-46-130 /]# ping mail.ru ping: unknown host mail.ru [root@host-46-130 /]#
1. Проверьте iptables правила как на HN, так и внутри VE. 2. Покажите, пожалуйста, вывод команды "cat /etc/resolv.conf" внутри VE. 3. Напустите tcpdump утилиту на venet0 интрефейс внутри VE, на venet0 интерфейс на HN, на физический интерфейс на HN и сделайте ping изнутри VE.
1 А можно поподробней. Я ранее занимался исключительно BSD системами 2 [root@host-46-129 vz]# cat /etc/resolv.conf nameserver 87.240.1.1 nameserver 213.248.0.6 [root@host-46-129 vz]# vzctl enter 46130 entered into CT 46130 [root@host-46-130 /]# cat /etc/resolv.conf nameserver 213.248.1.6 [root@host-46-130 /]# 3 Тоже немного непонятно Могли бы по подробней если вас не затруднить.
1. А вы уверены, что это не проблемы DNS сервера? Попробуйте установить какой-нибудь общедоступный другой DNS сервер, например, 4.2.2.1 Работает ли он? 2. Quote: 1 А можно поподробней. Я ранее занимался исключительно BSD системами Да, конечно, можно. Я просто-напросто имел в виду firewall правила. "iptables -t nat -L && iptables -t filter -L && iptables -t mangle -L" 3. Quote: 3 Тоже немного непонятно Предлагалось использовать tcpdump утилиту для выяснения поведения пакетов. Информацию о ней можно получить, например, через "man tcpdump". Я просто хотел проследить поведение пакетов при попытке "отрезолвить" dns имя. Последовательность сетевых интерфейсов, через которые проходит пакет в случает venet0, в общем случае выглядит следующим образом: venet0(внутри VE) -> venet0(на HN) -> физический интерфейс(на HN).
1 Да, ДНС рабочие, это ДНС провайдера где стоит нода, с ноды резолвится все отлично [root@host-46-129 vz]# ping mail.ru PING mail.ru (194.67.57.226) 56(84) bytes of data. 64 bytes from mail.ru (194.67.57.226): icmp_seq=1 ttl=122 time=1.83 ms 64 bytes from mail.ru (194.67.57.226): icmp_seq=2 ttl=122 time=1.57 ms 64 bytes from mail.ru (194.67.57.226): icmp_seq=3 ttl=122 time=2.07 ms --- mail.ru ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 1.579/1.829/2.075/0.202 ms [root@host-46-129 vz]# cat /etc/resolv.conf nameserver 87.240.1.1 nameserver 213.248.0.6 [root@host-46-129 vz]# vzctl enter 46130 entered into CT 46130 [root@host-46-130 /]# ping mail.ru ping: unknown host mail.ru [root@host-46-130 /]# ping 213.248.46.129 PING 213.248.46.129 (213.248.46.129) 56(84) bytes of data. 64 bytes from 213.248.46.129: icmp_seq=1 ttl=64 time=0.030 ms 64 bytes from 213.248.46.129: icmp_seq=2 ttl=64 time=0.014 ms --- 213.248.46.129 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.014/0.022/0.030/0.008 ms [root@host-46-130 /]# ping 213.248.0.6 PING 213.248.0.6 (213.248.0.6) 56(84) bytes of data. 64 bytes from 213.248.0.6: icmp_seq=1 ttl=61 time=0.842 ms 64 bytes from 213.248.0.6: icmp_seq=2 ttl=61 time=0.896 ms --- 213.248.0.6 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.842/0.869/0.896/0.027 ms [root@host-46-130 /]#
Во-первых, судя по сообщению #35692 VE и HN используют разные dns серверы (87.240.1.1 и 213.248.1.6 соответственно). Во-вторых, проверили ли вы 4.2.2.1? Проверьте правила firewall и, если возможно, проведите эксперимент с tcpdump.
Вывод правил на HN [root@host-46-129 etc]# iptables -t nat -L && iptables -t filter -L && iptables -t mangle -L Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere icmp any ACCEPT esp -- anywhere anywhere ACCEPT ah -- anywhere anywhere ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns ACCEPT udp -- anywhere anywhere udp dpt:ipp ACCEPT tcp -- anywhere anywhere tcp dpt:ipp ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:smtp REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination [root@host-46-129 etc]# И вывод на VE [root@host-46-130 /]# iptables -t nat -L && iptables -t filter -L && iptables -t mangle -L iptables v1.3.5: can't initialize iptables table `nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. [root@host-46-130 /]# По поводу других DNS [root@host-46-129 vz]# vzctl set 46130 --nameserver 4.2.2.1 --save File resolv.conf was modified Saved parameters for CT 46130 [root@host-46-129 vz]# vzctl stop 46130 Stopping container ... Container was stopped Container is unmounted [root@host-46-129 vz]# vzctl start 46130 Starting container ... Container is mounted Adding IP address(es): 213.248.46.130 Setting CPU units: 1000 Configure meminfo: 65536 Set hostname: host-46-130.ru-point.com File resolv.conf was modified Container start in progress... [root@host-46-129 vz]# vzctl enter 46130 entered into CT 46130 [root@host-46-130 /]# ping mail.ru ping: unknown host mail.ru [root@host-46-130 /]# cat /etc/resolv.conf nameserver 4.2.2.1 [root@host-46-130 /]#
Quote: [root@host-46-130 /]# iptables -t nat -L && iptables -t filter -L && iptables -t mangle -L iptables v1.3.5: can't initialize iptables table `nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. [root@host-46-130 /]# Это означает, что первая комада завершилась неуспешно и остальные две не исполнялись. Поэтому стоит их отдельно исполнить. Если есть возможность на время сбросить iptables правила (я не вижу, чтобы они что-либо запрещали на HN), то это можно сделать так "iptables -t [filter/nat/mangle] --flush" (на HN и внутри VE), чтобы отбросить возможность отбрасывания пакетов со стороны iptables (iptables-save, iptables-resore для сохранения/восстановления правил). Есть ли возможность провести эксперимент с tcpdump'ом? Покажите, пожалуйста, еще "cat /proc/user_beancounters" (изнутри VE). Есть ли возможность предоставить доступ на HN?
maratrus wrote on Wed, 15 April 2009 07:01 Quote: [root@host-46-130 /]# iptables -t nat -L && iptables -t filter -L && iptables -t mangle -L iptables v1.3.5: can't initialize iptables table `nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. [root@host-46-130 /]# Это означает, что первая комада завершилась неуспешно и остальные две не исполнялись. Поэтому стоит их отдельно исполнить. Если есть возможность на время сбросить iptables правила (я не вижу, чтобы они что-либо запрещали на HN), то это можно сделать так "iptables -t [filter/nat/mangle] --flush" (на HN и внутри VE), чтобы отбросить возможность отбрасывания пакетов со стороны iptables (iptables-save, iptables-resore для сохранения/восстановления правил). Есть ли возможность провести эксперимент с tcpdump'ом? Покажите, пожалуйста, еще "cat /proc/user_beancounters" (изнутри VE). Есть ли возможность предоставить доступ на HN? Да, конечно могу предоставить доступ.
maratrus , большое спасибо за помощь! Да, действительно, вы были правы, дело было в iptables После того как я добавил в фаил /etc/sysconfig/iptables Строки -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT Все стало нормально резольвится. Я правильно добавил правила, и туда куда надо? [root@host-46-129 ~]# iptables-save # Generated by iptables-save v1.3.5 on Fri Apr 17 00:03:02 2009 *mangle :PREROUTING ACCEPT [58:5106] :INPUT ACCEPT [57:5028] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [59:10694] :POSTROUTING ACCEPT [59:10694] COMMIT # Completed on Fri Apr 17 00:03:02 2009 # Generated by iptables-save v1.3.5 on Fri Apr 17 00:03:02 2009 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [49:9298] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p esp -j ACCEPT -A RH-Firewall-1-INPUT -p ah -j ACCEPT -A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Fri Apr 17 00:03:02 2009 [root@host-46-129 ~]# vzctl start 46130 Container is already running [root@host-46-129 ~]# vzctl stop 46130 Stopping container ... Container was stopped Container is unmounted [root@host-46-129 ~]# vzctl start 46130 Starting container ... Container is mounted Adding IP address(es): 213.248.46.130 Setting CPU units: 1000 Configure meminfo: 65536 Set hostname: host-46-130.xxxxxxx.com File resolv.conf was modified Container start in progress... [root@host-46-129 ~]# vzctl enter 46130 entered into CT 46130 [root@host-46-130 /]# ping mail.ru PING mail.ru (194.67.57.226) 56(84) bytes of data. 64 bytes from mail.ru (194.67.57.226): icmp_seq=1 ttl=120 time=1.85 ms 64 bytes from mail.ru (194.67.57.226): icmp_seq=2 ttl=120 time=1.56 ms 64 bytes from mail.ru (194.67.57.226): icmp_seq=3 ttl=120 time=1.57 ms 64 bytes from mail.ru (194.67.57.226): icmp_seq=4 ttl=120 time=6.06 ms --- mail.ru ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3002ms rtt min/avg/max/mdev = 1.569/2.765/6.067/1.910 ms [root@host-46-130 /]#
Quote: Все стало нормально резольвится. Я правильно добавил правила, и туда куда надо? Добавление правил руками, по моему мнению, неправильный способ. Есть более удобный и, опять же, по моему мнению, более правильный способ. Скрипт /etc/init.d/iptables имеет опцию save, которую удобно пользовать. Вот полезная ссылка http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/ html/Deployment_Guide/s1-iptables-init.html