This document only applies to the Director
Requirements
- Download linux-2.4.18.tar.gz from http://www.kernel.org
- Download linux-2.4.18-ipvs-1.0.4.patch.gz patch and ipvsadm-1.21.tar.gz from http://www.linuxvirtualserver.org/software/index.html
- Download hidden-2.4.5-1.diff and fib-245-1.diff from http://www.ssi.bg/~ja/
Setup
- Copy linux-2.4.18.tar.gz to /usr/src
- Gunzip linux-2.4.18.tar.gz <enter>
- Tar xvf linux-2.4.18.tar <enter>
- Cd linux <enter>
(please not that although the file below says gz, it is infact just and file and not a gzip file).
cat /patch_location/linux-2.4.18-ipvs-1.0.4.patch.gz | patch –p1
cat /patch_location/hidden-2.4.5-1.diff | patch –p1
cat /patch_location/ fib-245-1.diff | patch –p
Make menuconfig
Go down to the bottom and select the option Load an Alternate Configuration File in the prompt.
type /boot/config-2.4.18-14
Now under the heading below set each of the options as shown.
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Networking options --->
<*> Packet socket
[ ] Packet socket: mmapped IO
[*] Kernel/User netlink socket
[*] Routing messages
<*> Netlink device emulation
[*] Network packet filtering (replaces ipchains)
[*] Network packet filtering debugging
[*] Socket Filtering
<*> Unix domain sockets
[*] TCP/IP networking
[*] IP: multicasting
[*] IP: advanced router
[*] IP: policy routing
[*] IP: use netfilter MARK value as routing key
[*] IP: fast network address translation
[*] IP: equal cost multipath
[*] IP: use TOS value as routing key
[*] IP: verbose route monitoring
[*] IP: large routing tables
[*] IP: kernel level autoconfiguration
[ ] IP: BOOTP support
[ ] IP: RARP support
<*> IP: tunneling
< > IP: GRE tunnels over IP
[*] IP: multicast routing
[ ] IP: ARP daemon support (EXPERIMENTAL)
[ ] IP: TCP Explicit Congestion Notification support
[ ] IP: TCP syncookie support (disabled per default)
IP: Netfilter Configuration --->
IP: Virtual Server Configuration --->
< > The IPv6 protocol (EXPERIMENTAL)
< > Kernel httpd acceleration (EXPERIMENTAL)
[ ] Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)
IP: Netfilter Configuration --->
<*> Connection tracking (required for masq/NAT)
<*> FTP protocol support
<*> Userspace queueing via NETLINK (EXPERIMENTAL)
<*> IP tables support (required for filtering/masq/NAT)
<*> limit match support
<*> MAC address match support
<*> netfilter MARK match support
<*> Multiple port match support
<*> TOS match support
<*> Connection state match support
<*> Unclean match support (EXPERIMENTAL)
<*> Owner match support (EXPERIMENTAL)
<*> Packet filtering
<*> REJECT target support
<*> MIRROR target support (EXPERIMENTAL)
<*> Full NAT
<*> MASQUERADE target support
<*> REDIRECT target support
<*> Packet mangling
<*> TOS target support
<*> MARK target support
<*> LOG target support
<*> ipchains (2.2-style) support
<*> ipfwadm (2.0-style) support
IP: Virtual Server Configuration --->
<M> virtual server support (EXPERIMENTAL)
[*] IP virtual server debugging (NEW)
(16) IPVS connection table size (the Nth power of 2) (NEW)
--- IPVS scheduler
<*> round-robin scheduling (NEW)
<*> weighted round-robin scheduling (NEW)
<*> least-connection scheduling scheduling (NEW)
<*> weighted least-connection scheduling (NEW)
<*> locality-based least-connection scheduling (NEW)
<*> locality-based least-connection with replication scheduling (NEW)
<*> destination hashing scheduling (NEW)
<*> source hashing scheduling (NEW)
--- IPVS application helper
<*> FTP protocol helper (NEW)
Once you have set the options then exit and save. Next type:
- Make dep <enter> then Make modules <enter> then Make modules_install
- then Make bzImage <enter> then Make install> then reboot machine
- download and install fping http://www.fping.com/download (This will be needed on each machine at the configure script stage.
You are now ready for the next stage.
Configuring Linux Virtual Server using configure-lvs_0.9.4
- Install all of the supplied perl rpm’s in the heartbeat folder.
- Install Net-DNS-0.19.tar.gz to you config area
- Gunzip Net-DNS-0.19.tar.gz
- Tar xvf Net-DNS-0.19.tar
- Cd Net-DNS-0.19.
- Perl Makefile.PL
- Make
- Make test
- Make install
- Install configure-lvs_0.9.4.tar.gz
- Gunzip configure-lvs_0.9.4.tar.gz
- Tar xvf configure-lvs_0.9.4.tar
- vi lvs_nat.conf.one_NIC_two_network
#----------lvs_nat.conf------------------------------------
LVSCONF_FORMAT=1.1
LVS_TYPE=VS_NAT
INITIAL_STATE=on
CLEAR_IPVS_TABLES=yes
#
#VIP line format - device[:alias] IP netmask broadcast
#To help avoid namespace collisions with other VIPs, I set alias=last number of
VIP (here 110).
VIP=eth0:110 DirOut 255.255.255.0 192.168.210.255
#
#DIP line format - device[:alias] IP network netmask broadcast
DIP=eth0 Director 192.168.210.0 255.255.255.0 192.168.210.255
#
#DIRECTOR_GW - packets with src_addr=VIP, dst_addr=0/0 are sent to DIRECTOR_GW
#to be forwarded to the outside world.
#The script will not necessarily set up the DIRECTOR_GW as the director's default gw.
DIRECTOR_GW=Director
#
#SERVICE line format - proto port scheduler IP|name:port[,weight] [IP|name:port[
#weight]]
#SERVICE=t telnet rr RS1:telnet RS2:telnet RS3:telnet RS4:telnet
SERVICE=t telnet wlc RealServ1:telnet,1 RealServ2:telnet,1
SERVICE=t http wlc RealServ1:http,1 RealServ2:http,1
#
SERVER_NET_DEVICE=eth0
#VS-NAT real-servers do not have a VIP, i.e. there is no SERVER_VIP_DEVICE
#SERVER_VIP_DEVICE=
#SERVER_GW is not user configurable with VS-NAT. script sets SERVER_GW = DIP
#SERVER_GW=
#----------end lvs_nat.conf---------------------------------
- Edit the lvs_nat.conf.one_NIC_two_network to suite your network
- ./configure lvs_nat.conf.one_NIC_two_network
- if no errors occur run
- ./rc.lvs_naton the director and the real servers
- check iptables
- cd /sbin
- iptables –L
- if empty, set default settings then
- iptables –L if okay then /etc/rc.d/init.d/iptables save
the director should work now.