IPSec на Zyxel ZyWALL 35 EE

На тест попались маршрутизаторы Zyxel ZyWALL 35 EE, решил опытом их использования поделиться с читателями..

Тестирование ZyWALL 35 <=>ZyWALL 35

1. Настройка сети в соответствии с топологией тестового стенда:

Комп (192.168.1.100) >
[ZyWALL 35 (192.168.1.1) (10.210.210.106)] >
Коммутатор L2 Planet FSD-1600 >
[ZyWALL 35 (10.210.210.107)(192.168.100.1)] >
Комп (192.168.100.7)

Настройки ZyWALL’ов (в два столбца): 192.168.100.1 / 192.168.1.1


Настройка LAN:

Настройка WAN:

Общий вид настроек VPN:

Настройка VPN-шлюзов:

Настройка VPN-туннелей:

В данной схеме (Комп (WinXP) > ZyWALL > Planet > ZyWALL > Комп (Debian)) с использованием аналогичных настроек VPN-шлюзов и VPN-туннелей:

IKE:
1. Режим работы: Main
2. Шифрование: AES-128
3. Аутентификация: SHA1
4. Ключ группы: DH2

IPSec:
0. Инкапсуляция: Tunnel

1. Протокол: ESP
2. Шифрование: AES-128
3. Аутентификация: SHA1

Максимальная пропускная способность канала составила около 23 Mbps (Win2Lin)/ 25 Mbps (Lin2Win) стабильно же держалась на уровне 22 Mbps (Win2Lin)/ 24 (Lin2Win).

IKE:
1. Режим работы: Main
2. Шифрование: 3DES
3. Аутентификация: MD5
4. Ключ группы: DH2

IPSec:
0. Инкапсуляция: Tunnel

1. Протокол: ESP
2. Шифрование: 3DES
3. Аутентификация: MD5

Максимальная пропускная способность канала составила около 23 Mbps (Win2Lin)/ 25 Mbps (Lin2Win) стабильно же держалась на уровне 23 Mbps (Win2Lin)/ 24 (Lin2Win).

Заявлено Zyxel’ем было 40 Mbps (конечно, погрешность может вносить Planet FSD-1600).

Производительность CPU устрйства составила ~40% при сетевой нагрузке в 10 Mbps и 100% при 25 Mbps.

Измерения нагрузки канала проводились с помощью nuttcp.

Тестирование Комп <=>ZyWALL 35, используя ZyWALL IPSec VPN Client

Общий вид настроек VPN:

Настройка VPN-шлюзов:

Настройка VPN-туннелей:

Далее настраиваем ZyWAL IPSec VPN Client:

При нажатии на «Открыть туннель «, при условии что все настройки туннеля и шлюза аналогичны на ZyWALL и на VPN-клиенте, создастся соотв. VPN-туннель.

В данной схеме (Комп (WinXP) > VPN-Client > Planet > ZyWALL 35 > Комп (WinXP)) с использованием аналогичных настроек VPN-шлюзов и VPN-туннелей:

IKE:
1. Режим работы: Main
2. Шифрование: AES-128
3. Аутентификация: SHA1
4. Ключ группы: DH2

IPSec:
0. Инкапсуляция: Tunnel

1. Протокол: ESP
2. Шифрование: AES-128
3. Аутентификация: SHA1

Максимальная пропускная способность канала составила около 15 Mbps, стабильно же держалась на уровне 9 Mbps.

1. Режим работы: Agressive
2. Шифрование: AES-128
3. Аутентификация: SHA1
4. Ключ группы: DH2

Максимальная пропускная способность канала составила около 12 Mbps, стабильно же держалась на уровне 8 Mbps.

1. Режим работы: Main
2. Шифрование: 3DES
3. Аутентификация: MD5
4. Ключ группы: DH2

Максимальная пропускная способность канала составила около 21 Mbps, стабильно же держалась на уровне 11 Mbps.

1. Режим работы: Agressive
2. Шифрование: 3DES
3. Аутентификация: MD5
4. Ключ группы: DH2

Максимальная пропускная способность канала составила около 18 Mbps, стабильно же держалась на уровне 11 Mbps.

Производительность CPU устройства составила ~35% при сетевой нагрузке в 10 Mbps и 70% при 25 Mbps.

Тестирование проводило с помощью ввода команд по обоим сторонам туннеля.

Комп 10.210.210.110> nuttcp.exe -i1 -Ri100M 192.168.1.100
Комп 192.168.1.100> nuttcp.exe -S

nuttcp — тестирование пропускной способности

Finally, we’ll take a look at nuttcp, which includes many options for tweaking buffer lengths, nodelay options, and type of service fields to see what impact this has on your network performance. nuttcp can show either overall bandwidth or the bandwidth achieved in the last second.

nuttcp is available in the Fedora 9 repositories but not for openSUSE or Ubuntu. Build and installation is shown below:

tar xjvf nuttcp-5.5.5.tar.bz2
cd ./nuttcp*
cc -O3 -o nuttcp nuttcp-5.5.5.c
strip nuttcp
sudo install -m 555 nuttcp /usr/local/bin/

Start the server using nuttcp -S. The client can be invoked with many options, followed by the server host name(s) at the end of the command line. The below test prints the bandwidth every second (specified by the -i1 option) while the test is running and runs for 10 seconds before completing.

$ nuttcp  -v -v -i1  192.168.10.210

nuttcp-t: v5.5.5: socket
nuttcp-t: buflen=65536, nstream=1, port=5001 tcp -> 192.168.10.210
nuttcp-t: time limit = 10.00 seconds
nuttcp-t: connect to 192.168.10.210 with mss=1448
nuttcp-t: send window size = 8192, receive window size = 43690
nuttcp-r: v5.5.5: socket
nuttcp-r: buflen=65536, nstream=1, port=5001 tcp

nuttcp-r: interval reporting every 1.00 second
nuttcp-r: accept from 192.168.0.200
nuttcp-r: send window size = 8192, receive window size = 43690

   85.3719 MB /   1.00 sec =  715.9765 Mbps
   86.3684 MB /   1.00 sec =  724.5411 Mbps
   85.9188 MB /   1.00 sec =  720.7551 Mbps
   84.4201 MB /   1.00 sec =  708.2533 Mbps
   87.7772 MB /   1.00 sec =  736.2222 Mbps
   86.7372 MB /   1.00 sec =  727.5696 Mbps
   91.4327 MB /   1.00 sec =  767.0191 Mbps
   89.4166 MB /   1.00 sec =  750.2228 Mbps
   85.4859 MB /   1.00 sec =  717.0937 Mbps
   87.0377 MB /   1.00 sec =  729.9696 Mbps

nuttcp-t: 870.1633 MB in 10.00 real seconds = 89091.75 KB/sec = 729.8396 Mbps
nuttcp-t: 13923 I/O calls, msec/call = 0.74, calls/sec = 1392.10
nuttcp-t: 0.0user 22.3sys 0:10real 224% 0i+0d 0maxrss 0+3pf 16198+1383csw

nuttcp-r: 870.1633 MB in 10.00 real seconds = 89083.52 KB/sec = 729.7722 Mbps
nuttcp-r: 55254 I/O calls, msec/call = 0.19, calls/sec = 5524.09
nuttcp-r: 0.0user 6.7sys 0:10real 67% 0i+0d 0maxrss 0+20pf 62619+635csw

You can also run multiple streams at once; use -N3 to start three connections, for example. The -B option makes the client receive traffic only, while the -D option transmits only. The default is for communication in both directions.

$ nuttcp  -v -v -N3 -B  192.168.10.210

nuttcp-t: v5.5.5: socket
nuttcp-t: buflen=65536, nstream=3, port=5001 tcp -> 192.168.10.210
nuttcp-t: time limit = 10.00 seconds
nuttcp-t: connect to 192.168.10.210 with mss=1448
nuttcp-t: send window size = 8192, receive window size = 43690
nuttcp-t: 1239.8698 MB in 10.00 real seconds = 126944.75 KB/sec = 1039.9314 Mbps
nuttcp-t: 19838 I/O calls, msec/call = 0.52, calls/sec = 1983.52
nuttcp-t: 0.0user 41.2sys 0:10real 413% 0i+0d 0maxrss 0+3pf 4758+3081csw

nuttcp-r: v5.5.5: socket
nuttcp-r: buflen=65536, nstream=3, port=5001 tcp
nuttcp-r: accept from 192.168.0.200
nuttcp-r: send window size = 8192, receive window size = 43690
nuttcp-r: 1239.8698 MB in 10.00 real seconds = 126934.93 KB/sec = 1039.8509 Mbps
nuttcp-r: 29899 I/O calls, msec/call = 0.34, calls/sec = 2989.25
nuttcp-r: 0.0user 8.5sys 0:10real 86% 0i+0d 0maxrss 0+18pf 12519+1847csw

$ nuttcp  -v -v -N3 -D  192.168.10.210
...
nuttcp-r: v5.5.5: socket
nuttcp-r: buflen=65536, nstream=3, port=5001 tcp
nuttcp-r: accept from 192.168.0.200
nuttcp-r: send window size = 8192, receive window size = 43690
nuttcp-r: 806.2317 MB in 10.00 real seconds = 82545.65 KB/sec = 676.2140 Mbps
nuttcp-r: 67104 I/O calls, msec/call = 0.15, calls/sec = 6709.39
nuttcp-r: 0.0user 5.7sys 0:10real 57% 0i+0d 0maxrss 0+18pf 73018+378csw

nuttcp provides similar options to nepim and is heavily focused on measuring the network bandwidth between hosts. Using -i1 with nuttcp, and by default with nepim, you see the bandwidth statistics printed every second while the test is taking place. The nuttcp man page shows many options for the type of service and buffer sizes that you can explicitly set when running nuttcp so you can see if your particular hardware and drivers do not perform well in certain configurations. Running nepim —help will show many more options for configuring the buffers, window sizes, and TCP options.

It is a matter of personal convenience whether you should use nuttcp or nepim. Since nepim is packaged for openSUSE and nuttcp is packaged for Fedora, it might boil down to what distribution you are running as to which of these two tools to use.

Both nepim and nuttcp provide options for setting the size of network packet queues and other more advanced options, such as the TCP maximum segment size, in order to improve the network performance by changing the software setup at each end. Meanwhile, the LMbench tests are quick to run and provide useful insight into your available bandwidth and latencies on your network link.

Read in the original layout at: http://www.linux.com/archive/feature/144532