Linux下的LVS/TUN配置笔记

时间:2021-06-27 03:09:56

1 配置环境

1.1 网络拓扑

Linux下的LVS/TUN配置笔记

1.2 机器配置信息

A:LD Server 的配置

硬件:AMD Sempron(tm)   2600+ 1.8G512M内存,普通PC主板

软件:Slackware 内核2.6.16.21

网络:VIA Rhine II 100M

BCReal Serve的配置

硬件:B: AMD Athlon(tm) 64 Processor 3000+,512M内存,普通PC主板

        C: Intel(R) Pentium(R) 4 CPU 1.70GHz512M内存,普通PC主板

软件:Fedora core 4 内核2.6.21

网络: Realtek 8139 100M

DTest Client的配置

硬件:Intel(R) Pentium(R) 4 CPU 2.00GHz 512M内存,普通PC主板

软件:Fedora core 4 内核2.6.11.1

网络:Intel(R) PRO/100M

2 LVS/TUN模式的配置过程

2.1 LDServer的配置

配置LDServer 需要的步骤:

  1. 配置内核支持IPVSIP Tunneling.
  2. 安装和配置ipvsadm
  3. 配置网络及系统参数

 

2.1.1 配置内核

LD Server所需内核中需要进行的改动较多,主要为network option; lvs;iptables,状态机。

下面以linux内核2.6.16.21为例,配置内核支持ipvsip tunneling.

a     networking options:(/Networking/Networking options)

Linux下的LVS/TUN配置笔记

进入 network packet filtering(/Networking/Networking options/Network packet filtering)

Linux下的LVS/TUN配置笔记

配置Core(/Networking/Networking options/Network packet filtering/Core Netfilter Configuration)

Linux下的LVS/TUN配置笔记

配置IP((/Networking/Networking options/Network packet filtering/IP: Netfilter Configuration

Linux下的LVS/TUN配置笔记

b     配置LVS: ((/Networking/Networking options/IP: Linux Virtual Server Configuration)

 Linux下的LVS/TUN配置笔记

2.1.1 安装和配置ipvsadm

a  http://www.linuxvirtualserver.org/software/ipvs.html下载对应内核版本的ipvsadm

b  进入ipvsadm目录,并make 以及make install.注意:编译ipvsadm时/usr/src/linux必须链接到ipvs内核的源码包。

c  输入命令ipvsadm,若有如下提示则安装正确。

              IP Virtual Server version 1.2.1 (size=65536)

Prot LocalAddress:Port Scheduler Flags

                    -> RemoteAddress:Port  Forward Weight ActiveConn InActConn

2.1.3 网络配置及系统参数

a 配置网络地址

       #配置eth0的真实IP地址

       /sbin/ifconfig eth0 192.168.1.1 up

       #配置VIP地址到eth0:100(如果有两个网卡,可以将VIP地址配置到另一个网卡上)

       /sbin/ifconfig eth0:100 192.168.1.100 broadcast 192.168.1.100 netmask 255.255.255.255 up

       #加路由

       /sbin/route add –host 192.168.1.100 dev eth0:100

b 配置网络系统参数(eth0为绑定VIP的网卡设备)

echo "0" >/proc/sys/net/ipv4/ip_forward

echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects   

echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects

echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects

c 配置IPVS的服务类型、VIP地址以及对应的RS信息,例如:

/sbin/ipvsadm -A –t 192.168.1.100:80 -s wlc

/sbin/ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.10 -i -w 1

/sbin/ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.20 -i -w 1

 

2.2 RealServer 的配置

RealServer的配置比较简单,只需要内核支持IP Tunning,在系统上有一个IP Tunning设备就可以了。

配置LDServer的步骤:(Linux系统为例)

  1. 配置内核支持IP Tunning
  2. 网络配置及系统参数

 

2.2.1 配置内核

RS的内核只需在现有内核的基础上开启net options中的ip tunnlig 选项即可,如下图:

Linux下的LVS/TUN配置笔记

同时需要关闭状态机。

Linux下的LVS/TUN配置笔记

2.2.2 配置网络及系统参数

a 配置网络地址

       #配置eth0的地址

       /sbin/ifconfig eth0 192.168.1.10 up

       #配置tunl0

       /sbin/ifconfig tunl0 192.168.1.100 broadcast 192.168.1.100 netmask 255.255.255.255 up

       #增加路由

       /sbin/route add –host 192.168.1.100 dev tunl0

b 配置系统参数

#关闭转发功能

echo "0" >/proc/sys/net/ipv4/ip_forward

c 解决arp问题

echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

d 解决源地址验证问题

echo 0 > /proc/sys/net/ipv4/conf/tunl0/rp_filter

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

3 测试配置的正确性

在B上配置http服务的首页index.htm内容为This is B
在C上配置http服务的首页index.htm内容为This is C
在A上配置ipvs

/sbin/ipvsadm -A –t 192.168.1.100:80 -s wlc
/sbin/ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.10 -i -w 1
/sbin/ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.20 -i -w 1


在D上使用浏览器查看http://192.168.1.100/index.htm,每次刷新会得到不同的内容。