Home » International » Russian » shorewall and OpenVZ. Как правильно описать интерфейс venet0?
shorewall and OpenVZ. Как правильно описать интерфейс venet0? [message #33675] |
Fri, 31 October 2008 10:37 |
sHaggY_caT
Messages: 144 Registered: August 2008 Location: Moscow, Russian Federatio...
|
Senior Member |
|
|
Столкнулась с некоторыми трудностями по настройке shorewall на OpenVZ ноде.
Сам по себе shorewall, по крайней мере на ноде, с OpenVZ работает, в чем можно убедится, поискав по этому форуму.
Так как я new shorewall user, да и VZ технологии не гуру, решила роверить концепцию на VirtualBOX с bridge network,а не на рабочей OVZ-машине которая худо-бедно работает с правилами iptables.
Сделала эту ремарку, что бы отвечающие в топике имели, на всякий случай, ввиду этот факт. Однако, не думаю, что этот факт может хоть каким-то образом повлиять на описанную ниже траблу, так как VirtualBOX эмулирует OpenVZ полностью, вмместе со всем TCP/IP стеком, а сидящий внутри shorewall и не догадывается, что eth0 всего-навсего бридж с настоящим адаптером.
Возможно, я что-то делаю совсем не так, как стоило бы это делать.
Больше всего сомневаюсь в верности концепции фильтрации через shorewall.
Может быть, есть простое и элегантное решение, в рамках принципов shorewall, которое я просто не замечаю, так как опыта работы с ним нет.
Конфигурация:
1. Хост-система:
[shaggycat@desktop ~]$ cat /etc/redhat-release
Fedora release 8 (Werewolf)
[shaggycat@desktop ~]$ uname -a
Linux desktop.loc 2.6.26.5-28.fc8 #1 SMP Sat Sep 20 09:12:30 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
[shaggycat@desktop ~]$ ifconfig
br0 Link encap:Ethernet HWaddr **************
inet addr:10.0.5.2 Bcast:10.0.5.255 Mask:255.255.255.0
inet6 addr: fe80::211:d8ff:fe91:a3da/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1246145 errors:0 dropped:0 overruns:0 frame:0
TX packets:1563590 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:975442995 (930.2 MiB) TX bytes:1051074268 (1002.3 MiB)
eth0 Link encap:Ethernet HWaddr ********
inet6 addr: fe80::211:d8ff:fe91:a3da/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1246044 errors:0 dropped:0 overruns:0 frame:0
TX packets:1563463 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:998007741 (951.7 MiB) TX bytes:1057556364 (1008.5 MiB)
Interrupt:17
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1353 errors:0 dropped:0 overruns:0 frame:0
TX packets:1353 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2680004 (2.5 MiB) TX bytes:2680004 (2.5 MiB)
vbox0 Link encap:Ethernet HWaddr 00:FF:9E:34:22:E5
inet6 addr: fe80::2ff:9eff:fe34:22e5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:5161 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
vbox1 Link encap:Ethernet HWaddr 00:FF:EE:80:DA:5C
inet6 addr: fe80::2ff:eeff:fe80:da5c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:119 errors:0 dropped:0 overruns:0 frame:0
TX packets:142 errors:0 dropped:5142 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:15192 (14.8 KiB) TX bytes:12786 (12.4 KiB)
virbr0 Link encap:Ethernet HWaddr B2:12:B1:BF:97:CB
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::b012:b1ff:febf:97cb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:4855 (4.7 KiB)
2. Установленный на ней VirtualBOX
[shaggycat@desktop ~]$ rpm -qa | grep Virtual
VirtualBox-2.0.2_36488_fedora8-1
3. Гость с OpenVZ ядром:
[root@localhost ~]# cat /etc/redhat-release
CentOS release 5.2 (Final)
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-92.1.13.el5.028stab059.3 #1 SMP Wed Oct 15 17:48:55 MSD 2008 i686 athlon i386 GNU/Linux
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:89:FF:82
inet addr:10.0.5.4 Bcast:10.0.5.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe89:ff82/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:47 errors:0 dropped:0 overruns:0 frame:0
TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5274 (5.1 KiB) TX bytes:5888 (5.7 KiB)
Interrupt:11 Base address:0xc020
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
4. Две vps'ки (Обе FC7) с venet сеткой:
[root@localhost shorewall]# vzlist
VEID NPROC STATUS IP_ADDR HOSTNAME
201 5 running 10.0.2.1 test_vps1.loc
202 3 running 10.0.2.2 test_vps2.loc
[root@localhost shorewall]#
Если shorewall отключен, а дефольтные политики iptables на виртульной ноде сброшены в ACCEPT,
то проходят все соединения:
VPS<-->lan
VPS<-->HN
HN<-->VPS
Например, с хоста (то есть, из LAN):
[shaggycat@desktop ~]$ ssh root@10.0.2.1
root@10.0.2.1's password:
Last login: Sun Oct 26 20:13:56 2008 from 10.0.5.2
[root@test_vps1 ~]#
Однако, при следующих тестовых политиках shorewall:
[root@localhost shorewall]# ls
backup backup2 hosts hosts~ interfaces interfaces~ policy policy~ shorewall.conf shorewall.conf~ zones zones~
[root@localhost shorewall]# cat hosts
################### hosts###################
#ZONE HOST(S) OPTIONS
web1 venet0:10.0.2.1
desk1 eth0:10.0.5.2
serv2 venet0:10.0.2.2
#inet 0.0.0.0/24
[root@localhost shorewall]# cat interfaces
#ZONE INTERFACE BROADCAST OPTIONSnet eth0
loc eth0 detect
net venet0 detect routeback
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
[root@localhost shorewall]# cat policy
################## policy #############################################################
#SOURCE DEST POLICY LOG LIMIT:BURST
#
$FW all ACCEPT
#Remove this string!
all $FW ACCEPT
#net $FW ACCEPT
#loc $FW ACCEPT
loc net ACCEPT
net loc ACCEPT
#net dmz ACCEPT
#dmz all DROP
all all REJECT
#LAST LINE -- DO NOT REMOVE
[root@localhost shorewall]# cat zones
########################zones#######################################################
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
# Remove?
#dmz ipv4
#hn ipv4
#inet
#local Network
loc ipv4
#Virtual Network
net ipv4
#
web1:net
desk1:loc
serv2:net
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE
Наблюдается проблема.
С текущими правилами с vps на ноду и обратно соединения проходят, так как в файле policy:
$FW all ACCEPT
all $FW ACCEPT
[root@test_vps1 /]# ping -c 1 10.0.5.4
PING 10.0.5.4 (10.0.5.4) 56(84) bytes of data.
64 bytes from 10.0.5.4: icmp_seq=1 ttl=64 time=0.096 ms
--- 10.0.5.4 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.096/0.096/0.096/0.000 ms
[root@test_vps1 /]#
(на впс зашла с ноды)
[root@localhost ~]# ping -c 1 10.0.2.1
PING 10.0.2.1 (10.0.2.1) 56(84) bytes of data.
64 bytes from 10.0.2.1: icmp_seq=1 ttl=64 time=0.100 ms
--- 10.0.2.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.100/0.100/0.100/0.000 ms
А из внешнего мира, нет:
[shaggycat@desktop bin]$ ssh 10.0.2.1
ssh: connect to host 10.0.2.1 port 22: Connection refused
[shaggycat@desktop bin]$
Вместе с тем, если уже есть установившееся соединение(например, по ssh из LAN на VPS), оно работает.
Я полагаю, что проблема тут:
[root@localhost shorewall]# cat interfaces | grep venet0
net venet0 detect routeback
Эта строчка написана по аналогии с тредом на форуме:
* http://forum.openvz.org/index.php?t=msg&goto=16406&& amp;srch=shorewall#msg_16406
Кто-нибудь знает/есть идеи, как решить траблу?
Спасибо.
IT-outsource for UNIX servers,
http://ha-systems.ru
|
|
|
|
|
Re: shorewall and OpenVZ. Как правильно описать интерфейс venet0? [message #33723 is a reply to message #33721] |
Mon, 03 November 2008 21:39 |
sHaggY_caT
Messages: 144 Registered: August 2008 Location: Moscow, Russian Federatio...
|
Senior Member |
|
|
Спасибо за внимание к проблеме, именно этот вопрос решен.
Я сейчас делаю правила для vps, в том числе, с урезанием полосы для VPS.
Пока об этом не пишу, так как правил, которые не стыдно было бы кому-то публично показать, еще нет.
Именно по этому и не закрываю тему.
DMZ, SNAT/DNAT делаются, хотя и сложно, через iptables.
Это уже есть через shorewall.
Очень хочется суметь ограничить полосу для разных vps, что бы обойтись и без tc, и получить удобноуправляемое и маштабируемое решение...
По результатам, если тоже "не навалится", отпишусь.
sa10 wrote on Mon, 03 November 2008 11:13 | У меня сейчас навалилось..., некогда вчитываться.
Описать интерфейс надо наверное примерно так:
##interfaces
- venet0 detect tcpflags,nosmurfs,logmartians,blacklist
На первый взляд не хватает параметра broadcast в hosts
Предлагаю посомотреть на вопрос по другому - как найти причину проблемы?
Я бы включил ведение системного журнала в shorewall, обнаружил бы цепочку которая отшибает соединения, затем
shorewall show chain "цепочка"
и там стало бы яснее где собака...
|
IT-outsource for UNIX servers,
http://ha-systems.ru
|
|
|
Re: shorewall and OpenVZ. Как правильно описать интерфейс venet0? [message #33724 is a reply to message #33723] |
Tue, 04 November 2008 09:29 |
|
sa10
Messages: 103 Registered: May 2007 Location: Minsk
|
Senior Member |
|
|
Без tc обойтись не получится, не тратьте время зря...
Пользователи быстро находят способ менять размеры пакетов и ограничения iptables на количество пакетов в секунду бессильны, увы...
C Шоревол достаточно просто управлять трафиком
http://www.shorewall.net/traffic_shaping_ru.html
Только на интерфейсы по которым VE работают между собой через ядро, не ставьте ограничение full, будут проблемы, поставьте 1-10гбит.
Там пока нет информации как сделать управление входящим трафиком через IFB , у нас это работает, скоро напишу, надо найти время...
--------------------
|
|
|
Goto Forum:
Current Time: Mon Nov 18 19:29:03 GMT 2024
Total time taken to generate the page: 0.02796 seconds
|