mirror of
https://gitlab.com/shorewall/code.git
synced 2025-04-11 04:48:32 +02:00
Update OpenBZ Doc
Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
parent
4e18414fd7
commit
9b1483d93e
310
docs/OpenVZ.xml
310
docs/OpenVZ.xml
@ -506,4 +506,314 @@ net ipv4</programlisting>
|
|||||||
net <emphasis role="bold">venet0 </emphasis> detect dhcp,tcpflags,logmartians,nosmurfs</programlisting>
|
net <emphasis role="bold">venet0 </emphasis> detect dhcp,tcpflags,logmartians,nosmurfs</programlisting>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Working Example Using a Bridge</title>
|
||||||
|
|
||||||
|
<para>This is the configuration at shorewall.net during the spring of
|
||||||
|
2010. Rather than using the venet0 configuration shown above, this
|
||||||
|
configuration uses a bridge. The eth0 interface in each of the containers
|
||||||
|
is statically configured using the distributions' configuration tools
|
||||||
|
(<filename>/etc/network/interfaces</filename> on Debian and Yast on
|
||||||
|
OpenSuSE).</para>
|
||||||
|
|
||||||
|
<para>The network diagram is shown below.</para>
|
||||||
|
|
||||||
|
<graphic fileref="images/Network2010.png" />
|
||||||
|
|
||||||
|
<para>The two systems shown in the green box are OpenVZ Virtual
|
||||||
|
Environments (containers).</para>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Bridge Configuration</title>
|
||||||
|
|
||||||
|
<para>The following stanza in /etc/network/interfaces on the host
|
||||||
|
configures the bridge.</para>
|
||||||
|
|
||||||
|
<programlisting>auto vzbr0
|
||||||
|
iface vzbr0 inet static
|
||||||
|
pre-up /usr/sbin/brctl addbr vzbr0
|
||||||
|
address 206.124.146.176
|
||||||
|
network 206.124.146.176
|
||||||
|
broadcast 206.124.146.176
|
||||||
|
netmask 255.255.255.255
|
||||||
|
post-down /usr/sbin/brctl delbr br0
|
||||||
|
</programlisting>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>OpenVZ Configuration</title>
|
||||||
|
|
||||||
|
<para>In the files below, items in <emphasis role="bold">bold
|
||||||
|
font</emphasis> show the changes from the preceeding example.</para>
|
||||||
|
|
||||||
|
<para><filename>/etc/vz/conf</filename> (long lines folded for
|
||||||
|
clarity).</para>
|
||||||
|
|
||||||
|
<programlisting>## Global parameters
|
||||||
|
VIRTUOZZO=yes
|
||||||
|
LOCKDIR=/var/lib/vz/lock
|
||||||
|
DUMPDIR=/var/lib/vz/dump
|
||||||
|
VE0CPUUNITS=1000
|
||||||
|
|
||||||
|
## Logging parameters
|
||||||
|
LOGGING=yes
|
||||||
|
LOGFILE=/var/log/vzctl.log
|
||||||
|
LOG_LEVEL=0
|
||||||
|
VERBOSE=0
|
||||||
|
|
||||||
|
## Disk quota parameters
|
||||||
|
DISK_QUOTA=no
|
||||||
|
VZFASTBOOT=no
|
||||||
|
|
||||||
|
# The name of the device whose ip address will be used as source ip for VE.
|
||||||
|
# By default automatically assigned.
|
||||||
|
VE_ROUTE_SRC_DEV="eth3"
|
||||||
|
|
||||||
|
# Controls which interfaces to send ARP requests and modify APR tables on.
|
||||||
|
NEIGHBOUR_DEVS=detect
|
||||||
|
|
||||||
|
## Template parameters
|
||||||
|
TEMPLATE=/var/lib/vz/template
|
||||||
|
|
||||||
|
## Defaults for VEs
|
||||||
|
VE_ROOT=/home/vz/root/$VEID
|
||||||
|
VE_PRIVATE=/home/vz/private/$VEID
|
||||||
|
CONFIGFILE="vps.basic"
|
||||||
|
#DEF_OSTEMPLATE="fedora-core-4"
|
||||||
|
DEF_OSTEMPLATE="debian"
|
||||||
|
|
||||||
|
## Load vzwdog module
|
||||||
|
VZWDOG="no"
|
||||||
|
|
||||||
|
## IPv4 iptables kernel modules
|
||||||
|
IPTABLES="iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos
|
||||||
|
ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length
|
||||||
|
ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_conntrack
|
||||||
|
ipt_state ipt_helper iptable_nat ip_nat_ftp ip_nat_irc ipt_REDIRECT
|
||||||
|
xt_mac ipt_owner"
|
||||||
|
|
||||||
|
## Enable IPv6
|
||||||
|
IPV6="no"</programlisting>
|
||||||
|
|
||||||
|
<para><filename>/etc/vz/conf/101.conf</filename>:</para>
|
||||||
|
|
||||||
|
<programlisting>ONBOOT="yes"
|
||||||
|
|
||||||
|
# UBC parameters (in form of barrier:limit)
|
||||||
|
KMEMSIZE="574890800:589781600"
|
||||||
|
LOCKEDPAGES="256:256"
|
||||||
|
PRIVVMPAGES="1073741824:2137483648"
|
||||||
|
SHMPAGES="21504:21504"
|
||||||
|
NUMPROC="240:240"
|
||||||
|
PHYSPAGES="0:9223372036854775807"
|
||||||
|
VMGUARPAGES="262144:9223372036854775807"
|
||||||
|
OOMGUARPAGES="26112:9223372036854775807"
|
||||||
|
NUMTCPSOCK="360:360"
|
||||||
|
NUMFLOCK="188:206"
|
||||||
|
NUMPTY="16:16"
|
||||||
|
NUMSIGINFO="256:256"
|
||||||
|
TCPSNDBUF="1720320:2703360"
|
||||||
|
TCPRCVBUF="1720320:2703360"
|
||||||
|
OTHERSOCKBUF="1126080:2097152"
|
||||||
|
DGRAMRCVBUF="262144:262144"
|
||||||
|
NUMOTHERSOCK="360:360"
|
||||||
|
DCACHESIZE="3409920:3624960"
|
||||||
|
NUMFILE="9312:9312"
|
||||||
|
AVNUMPROC="180:180"
|
||||||
|
NUMIPTENT="200:200"
|
||||||
|
|
||||||
|
# Disk quota parameters (in form of softlimit:hardlimit)
|
||||||
|
DISKSPACE="1048576:1153024"
|
||||||
|
DISKINODES="200000:220000"
|
||||||
|
QUOTATIME="0"
|
||||||
|
|
||||||
|
# CPU fair sheduler parameter
|
||||||
|
CPUUNITS="1000"
|
||||||
|
|
||||||
|
VE_ROOT="/home/vz/root/$VEID"
|
||||||
|
VE_PRIVATE="/home/vz/private/$VEID"
|
||||||
|
OSTEMPLATE="suse-11.1-x86_64"
|
||||||
|
ORIGIN_SAMPLE="vps.basic"
|
||||||
|
HOSTNAME="lists.shorewall.net"
|
||||||
|
NAMESERVER="127.0.0.1"
|
||||||
|
NAME="lists"
|
||||||
|
SEARCHDOMAIN="shorewall.net"
|
||||||
|
|
||||||
|
<emphasis role="bold">NETIF="ifname=eth0,mac=00:18:51:22:24:81,host_ifname=veth101.0,host_mac=00:18:51:B6:1A:F1"</emphasis></programlisting>
|
||||||
|
|
||||||
|
<para>This VE is the mail server at shorewall.net (MX and IMAP). Note
|
||||||
|
that some of the memory parameters are set ridiculously large -- I got
|
||||||
|
tired of out-of-memory issues.</para>
|
||||||
|
|
||||||
|
<para><filename>/etc/vz/conf/102.conf</filename> (nearly default
|
||||||
|
configuration on Debian):</para>
|
||||||
|
|
||||||
|
<programlisting>ONBOOT="yes"
|
||||||
|
|
||||||
|
# UBC parameters (in form of barrier:limit)
|
||||||
|
KMEMSIZE="14372700:14790164"
|
||||||
|
LOCKEDPAGES="256:256"
|
||||||
|
PRIVVMPAGES="65536:69632"
|
||||||
|
SHMPAGES="21504:21504"
|
||||||
|
NUMPROC="240:240"
|
||||||
|
PHYSPAGES="0:9223372036854775807"
|
||||||
|
VMGUARPAGES="33792:9223372036854775807"
|
||||||
|
OOMGUARPAGES="26112:9223372036854775807"
|
||||||
|
NUMTCPSOCK="360:360"
|
||||||
|
NUMFLOCK="188:206"
|
||||||
|
NUMPTY="16:16"
|
||||||
|
NUMSIGINFO="256:256"
|
||||||
|
TCPSNDBUF="1720320:2703360"
|
||||||
|
TCPRCVBUF="1720320:2703360"
|
||||||
|
OTHERSOCKBUF="1126080:2097152"
|
||||||
|
DGRAMRCVBUF="262144:262144"
|
||||||
|
NUMOTHERSOCK="360:360"
|
||||||
|
DCACHESIZE="3409920:3624960"
|
||||||
|
NUMFILE="9312:9312"
|
||||||
|
AVNUMPROC="180:180"
|
||||||
|
NUMIPTENT="200:200"
|
||||||
|
|
||||||
|
# Disk quota parameters (in form of softlimit:hardlimit)
|
||||||
|
DISKSPACE="1048576:1153024"
|
||||||
|
DISKINODES="200000:220000"
|
||||||
|
QUOTATIME="0"
|
||||||
|
|
||||||
|
# CPU fair sheduler parameter
|
||||||
|
CPUUNITS="1000"
|
||||||
|
|
||||||
|
VE_ROOT="/home/vz/root/$VEID"
|
||||||
|
VE_PRIVATE="/home/vz/private/$VEID"
|
||||||
|
OSTEMPLATE="debian-5.0-amd64-minimal"
|
||||||
|
ORIGIN_SAMPLE="vps.basic"
|
||||||
|
HOSTNAME="server.shorewall.net"
|
||||||
|
NAMESERVER="206.124.146.177"
|
||||||
|
NAME="server"
|
||||||
|
|
||||||
|
<emphasis role="bold">NETIF="ifname=eth0,mac=00:18:51:22:24:80,host_ifname=veth102.0,host_mac=00:18:51:B6:1A:F0"</emphasis></programlisting>
|
||||||
|
|
||||||
|
<para>This server runs the rest of the services for shorewall.net (web
|
||||||
|
server, ftp server, rsyncd, etc.).</para>
|
||||||
|
|
||||||
|
<para>With a bridged configuration, the VIF for a VE must be added to
|
||||||
|
the bridge when the VE starts. That is accomplished using mount
|
||||||
|
file.</para>
|
||||||
|
|
||||||
|
<para>/etc/vz/conf/101.mount:</para>
|
||||||
|
|
||||||
|
<programlisting>#!/bin/bash
|
||||||
|
# This script source VPS configuration files in the same order as vzctl does
|
||||||
|
|
||||||
|
# if one of these files does not exist then something is really broken
|
||||||
|
[ -f /etc/vz/vz.conf ] || exit 1
|
||||||
|
[ -f $VE_CONFFILE ] || exit 1
|
||||||
|
|
||||||
|
# source both files. Note the order, it is important
|
||||||
|
. /etc/vz/vz.conf
|
||||||
|
. $VE_CONFFILE
|
||||||
|
|
||||||
|
# Add the VIF to the bridge after VPS has started
|
||||||
|
{
|
||||||
|
BRIDGE=vzbr0
|
||||||
|
DEV=veth101.0
|
||||||
|
while sleep 1; do
|
||||||
|
/sbin/ifconfig $DEV 0 >/dev/null 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
/usr/sbin/brctl addif $BRIDGE $DEV
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
} &</programlisting>
|
||||||
|
|
||||||
|
<para>/etc/vz/conf/102.mount:</para>
|
||||||
|
|
||||||
|
<programlisting>#!/bin/bash
|
||||||
|
# This script source VPS configuration files in the same order as vzctl does
|
||||||
|
|
||||||
|
# if one of these files does not exist then something is really broken
|
||||||
|
[ -f /etc/vz/vz.conf ] || exit 1
|
||||||
|
[ -f $VE_CONFFILE ] || exit 1
|
||||||
|
|
||||||
|
# source both files. Note the order, it is important
|
||||||
|
. /etc/vz/vz.conf
|
||||||
|
. $VE_CONFFILE
|
||||||
|
|
||||||
|
# Add VIF to bridge after VPS has started
|
||||||
|
{
|
||||||
|
BRIDGE=vzbr0
|
||||||
|
DEV=veth102.0
|
||||||
|
while sleep 1; do
|
||||||
|
/sbin/ifconfig $DEV 0 >/dev/null 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
/usr/sbin/brctl addif $BRIDGE $DEV
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
} &</programlisting>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Shorewall Configuration on the Host</title>
|
||||||
|
|
||||||
|
<para>Below are exerpts from the configuration files as they pertain to
|
||||||
|
the OpenVZ environment.</para>
|
||||||
|
|
||||||
|
<para><filename>/etc/shorewall/zones</filename>:</para>
|
||||||
|
|
||||||
|
<programlisting>#ZONE TYPE OPTIONS IN OUT
|
||||||
|
# OPTIONS OPTIONS
|
||||||
|
fw firewall
|
||||||
|
net ipv4 #Internet
|
||||||
|
loc ipv4 #Local wired Zone
|
||||||
|
<emphasis role="bold">dmz ipv4 #DMZ</emphasis>
|
||||||
|
...</programlisting>
|
||||||
|
|
||||||
|
<para><filename>/etc/shorewall/params</filename>:</para>
|
||||||
|
|
||||||
|
<programlisting>NET_IF=eth3
|
||||||
|
INT_IF=eth1
|
||||||
|
<emphasis role="bold">VPS_IF=vzbr0</emphasis>
|
||||||
|
...</programlisting>
|
||||||
|
|
||||||
|
<para><filename>/etc/shorewall/interfaces</filename>:<programlisting>#ZONE INTERFACE BROADCAST OPTIONS
|
||||||
|
net $NET_IF detect dhcp,blacklist,tcpflags,optional,routefilter=0,nosmurfs,logmartions=0
|
||||||
|
loc $INT_IF detect dhcp,logmartians=1,routefilter=1,nets=(172.20.1.0/24),tcpflags
|
||||||
|
<emphasis role="bold">dmz $VPS_IF detect logmartians=0,routefilter=0,nets=(206.124.146.177,206.124.146.178),routeback</emphasis>
|
||||||
|
...</programlisting></para>
|
||||||
|
|
||||||
|
<para>/etc/shorewall/proxyarp:</para>
|
||||||
|
|
||||||
|
<programlisting>#ADDRESS INTERFACE EXTERNAL HAVEROUTE PERSISTENT
|
||||||
|
206.124.146.177 DMZ_IF eth2 no yes
|
||||||
|
206.124.146.178 DMZ_IF eth2 no yes</programlisting>
|
||||||
|
|
||||||
|
<para>This is a multi-ISP configuration so entries are required in
|
||||||
|
<filename>/etc/shorewall/route_rules</filename>:</para>
|
||||||
|
|
||||||
|
<programlisting>#SOURCE DEST PROVIDER PRIORITY
|
||||||
|
- 172.20.0.0/24 main 1000
|
||||||
|
<emphasis role="bold">- 206.124.146.177 main 1001
|
||||||
|
- 206.124.146.178 main 1001</emphasis></programlisting>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Shorewall Configuration on Server</title>
|
||||||
|
|
||||||
|
<para>I have set up Shorewall on VE 101 (206.124.146.178) just to have
|
||||||
|
an environment to test with. It is a quite vanilla one-interface
|
||||||
|
configuration.</para>
|
||||||
|
|
||||||
|
<para>/etc/shorewall/zones:</para>
|
||||||
|
|
||||||
|
<programlisting>#ZONE TYPE OPTIONS IN OUT
|
||||||
|
# OPTIONS OPTIONS
|
||||||
|
fw firewall
|
||||||
|
net ipv4</programlisting>
|
||||||
|
|
||||||
|
<para>/etc/shorewall/interfaces:</para>
|
||||||
|
|
||||||
|
<programlisting>#ZONE INTERFACE BROADCAST OPTIONS
|
||||||
|
net <emphasis role="bold">eth0 </emphasis> detect dhcp,tcpflags,logmartians,nosmurfs</programlisting>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
</article>
|
</article>
|
||||||
|
BIN
docs/images/Network2010.dia
Normal file
BIN
docs/images/Network2010.dia
Normal file
Binary file not shown.
BIN
docs/images/Network2010.png
Normal file
BIN
docs/images/Network2010.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 98 KiB |
Loading…
Reference in New Issue
Block a user