OpenVZ Forum


Home » International » Russian » shorewall and OpenVZ. Как правильно описать интерфейс venet0?
shorewall and OpenVZ. Как правильно описать интерфейс venet0? [message #33675] Fri, 31 October 2008 10:37 Go to next message
sHaggY_caT is currently offline  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 #33697 is a reply to message #33675] Fri, 31 October 2008 21:12 Go to previous messageGo to next message
sHaggY_caT is currently offline  sHaggY_caT
Messages: 144
Registered: August 2008
Location: Moscow, Russian Federatio...
Senior Member

Возможно, решено:

http://forum.openvz.org/index.php?t=msg&goto=33696&# msg_33696


IT-outsource for UNIX servers,
http://ha-systems.ru
Re: shorewall and OpenVZ. Как правильно описать интерфейс venet0? [message #33721 is a reply to message #33675] Mon, 03 November 2008 16:13 Go to previous messageGo to next message
sa10 is currently offline  sa10
Messages: 103
Registered: May 2007
Location: Minsk
Senior Member
У меня сейчас навалилось..., некогда вчитываться.
Описать интерфейс надо наверное примерно так:
##interfaces
- venet0  detect        tcpflags,nosmurfs,logmartians,blacklist

На первый взляд не хватает параметра broadcast в hosts
Предлагаю посомотреть на вопрос по другому - как найти причину проблемы?
Я бы включил ведение системного журнала в shorewall, обнаружил бы цепочку которая отшибает соединения, затем
shorewall show chain "цепочка" 

и там стало бы яснее где собака...


--------------------

Re: shorewall and OpenVZ. Как правильно описать интерфейс venet0? [message #33723 is a reply to message #33721] Mon, 03 November 2008 21:39 Go to previous messageGo to next message
sHaggY_caT is currently offline  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 Go to previous message
sa10 is currently offline  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 , у нас это работает, скоро напишу, надо найти время...


--------------------

Previous Topic: Новое ядро, новая проблема [SOLVED]
Next Topic: Cтатическая маршрутизация (iproute bug/feature?)
Goto Forum:
  


Current Time: Sun Apr 28 18:04:12 GMT 2024

Total time taken to generate the page: 0.02301 seconds