Netlink device emulation! W3 ^/ J/ a& S5 q) ^3 |8 U
Network firewalls2 L% ]1 {# b2 Y9 b5 d
Socket Filtering" E) i; L7 a" [2 \$ a+ U; x3 b+ s
Unix domain sockets
- u* }6 z& U2 O7 [* r TCP/IP networking9 l$ A9 s, `' s H' l4 @: l9 I
IP: multicasting, i, {4 b$ h, ~$ r; i8 h. }9 F
IP: advanced router
! f s* G$ V+ t [ ] IP: policy routing2 m* s2 R; ]& K0 |9 [
[ ] IP: equal cost multipath
% K8 }+ R. ^- X/ L% j [ ] IP: use TOS value as routing key
0 g+ [' H$ y# Z$ T4 O. ? [ ] IP: verbose route monitoring7 {+ ]! X9 ?$ o
[ ] IP: large routing tables$ m% I" I( O) T$ p% K0 n- d G
[ ] IP: kernel level autoconfiguration! U* `/ O# Y/ E/ `- {
IP: firewalling( }& \3 |# p" W: f
[ ] IP: firewall packet netlink device7 u) n- S2 t$ H ]* \/ I
IP: transparent proxy support: ~' u; @6 U9 U0 P& @, D) v
IP: masquerading
( X# \- k) I% e —— Protocol-specific masquerading support will be built as modules.
& |$ a0 b' J2 ` R) J& ] IP: ICMP masquerading* e, T0 ~! E1 ~+ G6 ~& [+ s
—— Protocol-specific masquerading support will be built as modules.
' O6 i A) W; Y* e/ r2 d5 J IP: masquerading special modules support
6 b% B# X: l3 b" I& Q IP: ipautofw masq support' p! M6 M% \1 f$ o% q* m. D" E: V; R
IP: ipportfw masq support# N7 g5 B# ^, v8 Y. c
IP: ip fwmark masq-forwarding support7 _; n& k/ i2 A- p' C% X
IP: masquerading virtual server support4 M9 W1 i+ j; o. a
IP Virtual Server debugging ——最好选择此项,以便观察LVS的调试
6 j$ u7 S/ _. x; H# T: f1 b: ^% S IP masquerading VS table size
* g1 {2 t1 @1 i1 d$ v* L* n IPVS: round-robin scheduling
" ~6 X# m7 c2 O3 v! C- }& z/ r IPVS: weighted round-robin scheduling
$ I; |3 v; N% {2 X4 T# }& i L IPVS: least-connection scheduling( ~! S3 q% }# M, T
IPVS: weighted least-connection scheduling. G& }: D2 I7 i& c. Z
IPVS: locality-based least-connection scheduling
3 ?: L: }, R# A' B) E IPVS: locality-based least-connection with replication scheduling
$ C% }5 C/ ^5 N' {* Z IP: optimize as router not host
/ z0 Y9 N! e, q4 Q) V8 V IP: tunneling
" R/ f/ _, {6 A IP: GRE tunnels over IP+ @5 Z! O& i. [6 x$ p3 k" _
IP: broadcast GRE over IP
% Y a4 w, m0 {& S0 x9 l' ` IP: multicast routing2 `' ?( @5 x+ J, h
IP: PIM-SM version 1 support
( v/ R4 H/ Q; `$ |1 d5 I- C8 p IP: PIM-SM version 2 support! d! @, n# g* O- N: V- [
IP: aliasing support
! Z% Q {0 M2 L+ x [ ] IP: ARP daemon support
$ t1 Q8 M% `/ r1 U4 V; D IP: TCP syncookie support
2 t. L0 B( d$ N& m3 j ——6 R; j0 k& T9 i% {
IP: Reverse ARP
- q$ S; Y& Z4 r2 D IP: Allow large windows# s, X# y* R, E0 h4 y: P$ q
The IPv6 protocol
, g" v+ x; h @( ?0 K C; w 上面,带号的为必选项。然后就是常规的编译内核过程,不再赘述。
. ^- O( d5 \5 D, g 在这里要注重一点:假如你使用的是RedHat自带的内核或者从RedHat的内核版本,已经预先打好了LVS的补丁。这可以通过查看/usr/src/linux/net/目录下有没有几个ipvs开头的文件来判定:假如有,则说明已经打过补丁。
) m# A6 H% J9 G* S$ { 编写LVS配置文件,实例中的配置文件如下:
6 T$ q; j |9 a #lvs_dr.conf Joseph Mack mack@ncifcrf.gov
& _4 M5 h, o- g LVS_TYPE=VS_DR
3 i$ H {" h: b$ A, U INITIAL_STATE=on
( W( N* E& o5 b4 C' Q, I- j( c- O2 ]
VIP=eth0:101 192.168.0.101 255.255.255.0 192.168.0.0( L8 K$ Q% K2 @2 a V6 v
DIRECTOR_INSIDEIP=eth0 192.168.0.1 192.168.0.0 255.255.255.0 192.168.0. 255; p! w. O+ }* q# L& a
SERVICE=t telnet rr rs1:telnet rs2:telnet
, l& ^! b: {% K" [ SERVICE=t www rr rs1:www rs2:www
; n8 y# ]' h8 B, T1 j SERVER_VIP_DEVICE=dummy0
5 I u% U' l3 u- b6 Z8 j SERVER_NET_DEVICE=eth0$ V' v: l0 S) }7 _; _
#——end lvs_dr.conf——
3 r9 |3 d2 {$ a( Y5 [ 将该文件置于/etc/lvs目录下。
0 @! v1 Z+ }) `2 {' V: y# a4 Q 使用LVS的配置脚本产生lvs.conf文件。该配置脚本可以从http: //www.linuxvirtualserver.org/Joseph.Mack/configure-lvs_0.8.tar.gz 单独,在ipvs-1.0.6-2.2.19.tar.gz包中也有包含脚本configure的使用方法:" G ?2 Y" M6 }; _- _ |
[root@vs2 lvs]# configure lvs.conf5 q9 ?0 r, v1 \
这样会产生几个配置文件,这里我们只使用其中的rc.lvs_dr文件。修改/etc/rc.d/init.d/rc.local,增加如下几行:) ]6 g/ H5 \0 k9 ~# B# u' Z
echo 1 /proc/sys/net/ipv4/ip_forward
1 x8 p) ?, G- k echo 1 /proc/sys/net/ipv4/ip_always_defrag
- N& B. M+ v( M1 F! L$ c+ A # 显示最多调试
2 l8 y" c# r% p1 j3 ~6 O, u$ A" _ echo 10 /proc/sys/net/ipv4/vs/debug_level
9 H- h$ k( ^: a* ]- `, S6 I" } 配置NFS服务。这一步仅仅是为了方便治理,不是必须的步骤。假设配置文件lvs.conf文件放在/etc/lvs目录下,则/etc/exports文件的内容为:, {) ~* H- D& R: H# o; N- L6 m" j" F
/etc/lvs ro
) f8 R: W6 A h2 V P1 { 然后使用exportfs命令输出这个目录:$ S8 b/ b0 x; c) ~0 C7 y ~& }
[root@vs2 lvs]# exportfs: W% f0 G' j/ S0 r
假如碰到什么麻烦,可以尝试:
/ K8 V. [& l0 F5 R9 Z- N S) L) E [root@vs2 lvs]# /etc/rc.d/init.d/nfs restart9 Y( S9 z; @7 F! i) s3 Y
[root@vs2 lvs]# exportfs3 u% h, R9 |" q9 E3 F# ]
这样,各个real server可以通过NFS获得rc.lvs_dr文件,方便了集群的配置:你每次修改lvs.conf中的配置选项,都可以即可反映在rs1,rs2的相应目录里。 修改/etc/syslogd.conf,增加如下一行: kern. /var/log/kernel_log。这样,LVS的一些调试就会写入/var/log/kernel_log文件中。 |