Сделал один vds с внутренним ip 10.1.1.1 Прописал в nat правило: -A POSTROUTING -s 10.1.1.1 -o eth1 -j SNAT --to-source x.x.x.x Где eth1 - это физическая карточка и x.x.x.x - реальный IP, как по доке. В результате я могу пинговать только x.x.x.x - дальше не пускает. Вот пробовал к IP ya.ru сделать traceroute: vzctl exec 1000 traceroute 213.180.204.8 traceroute to 213.180.204.8 (213.180.204. , 30 hops max, 38 byte packets 1 x.x.x.x (x.x.x.x) 0.144 ms 0.038 ms 0.028 ms 2 * * Подскажите что сделать
Почитайте wiki: Using NAT for VE with private IPs, наверняка поможет.
В том то и дело что прочитал How to provide access for VE to Internet: iptables -t nat -A POSTROUTING -s src_net -o eth0 -j SNAT --to ip_address Я так и сделал: iptables -t nat -A POSTROUTING -s 10.1.1.1 -o eth1 -j SNAT --to x.x.x.x Что еще надо делать то?
Ядро какое? Если стабильное (2.6.8.-...), то надо включить conntracks в VE0 -- как раз там написано, как.
[root@13449-23970 ~]# lsmod Module Size Used by simfs 3548 1 vzdquota 40208 1 [permanent] af_packet 17416 0 ipt_REDIRECT 2080 1 ipt_length 1728 1 ipt_ttl 1856 0 ipt_tcpmss 2144 0 ipt_TCPMSS 3872 0 ipt_multiport 1984 0 ipt_limit 2272 1 ipt_tos 1632 0 ipt_REJECT 5824 1 parport_pc 23776 0 lp 8296 0 parport 21440 2 parport_pc,lp vznetdev 13248 3 vzmon 44900 2 vznetdev vzdev 2176 3 vzdquota,vznetdev,vzmon iptable_filter 4384 1 iptable_mangle 4544 1 iptable_nat 27540 3 ipt_REDIRECT ip_conntrack 37420 3 ipt_REDIRECT,iptable_nat ip_tables 22064 12 ipt_REDIRECT,ipt_length,ipt_ttl,ipt_tcpmss,ipt_TCPMSS,ipt_mu ltiport,ipt_limit,ipt_tos,ipt_REJECT,iptable_filter,iptable_ mangle,iptable_nat thermal 10320 0 processor 10640 1 thermal fan 2892 0 button 4632 0 battery 7276 0 asus_acpi 9144 0 ac 3308 0 uhci_hcd 29584 0 ehci_hcd 26564 0 pciehp 91180 0 8139too 21344 0 mii 4608 1 8139too floppy 55536 0 usbcore 103492 4 uhci_hcd,ehci_hcd Я специально перегрузил ноду чтоб ядро подгрузило модуль до старта vz - все равно не работает.
Правильно Чтобы убедиться, что conntracks enabled на VE0, проверьте наличие файла /proc/net/ip_conntrack Помимо этого, проверьте значение sysctl net.ipv4.ip_forward - оно должно быть 1.
[root@13449-23970 ~]# file /proc/net/ip_conntracks /proc/net/ip_conntracks: ERROR: cannot open `/proc/net/ip_conntracks' (No such file or directory) [root@13449-23970 ~]# Нету файла. Что делать? [root@13449-23970 ~]# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1 [root@13449-23970 ~]# А тут все ок.
перегрузить ip_conntrack модуль. Самый простой и надежный способ - перегрузить машину файл /proc/net/ip_conntrack, без s в конце, ошибся.
В том то и дело что машину уже перезагружал и модуль в lsmod отображается... Да и в логе тоже: Jun 8 06:08:48 13449-23970 kernel: ip_conntrack version 2.1 (8192 buckets, 65536 max) - 304 bytes per conntrack Ну хорошо. Остановил я vz, отключил tables'ы и удалил модуль Затем запустил его: [root@13449-23970 ~]# modprobe -v ip_conntrack insmod /lib/modules/2.6.8-022stab077.1-smp/kernel/net/ipv4/netfilte r/ip_conntrack.ko ip_conntrack_enable_ve0=1 После чего запустил iptables, vz и машина вышла в сеть. Странно. Кстати, я создал в vds'e файл /etc/sysconfig/network-scripts/venet0:1 с алиасом. После ребута vds он пропал. Так и надо? Как правильно делать?
Правильно выставлять IP командой vzctl set VE_ID --ipadd 1.1.1.1 --save