<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://kb.linux-vs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benjiaming</id>
		<title>LVSKB - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://kb.linux-vs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benjiaming"/>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki/Special:Contributions/Benjiaming"/>
		<updated>2026-05-24T17:30:43Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43823</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43823"/>
				<updated>2012-08-08T09:37:05Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FullNAT: A new packet forwarding method for IPVS, other than DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: the module introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS is capable of inter-vlan communication, while RS only need to access internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: Defence module against synflooding attack'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This FullNAT and SYNPROXY code for IPVS in Linux kernel 2.6.32 was written by Jiaming Wu at taobao.com, Jian Chen at 360.cn, and Shunmin Zhu at taobao.com, with some advising from Wensong Zhang at taobao.com. The code was affected by ideas of the source NAT and SYNPROXY version that was hard coded to IPVS in Linux kernel 2.6.9 by Wen Li, Yan Tian, Jian Chen, Yang Yi,Yaoguang Sun, Fang Han, Ying liu and Jiaming Wu at baidu.com in 2009.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The FullNAT and SYNPROXY support were added to keepalived/ipvsadm by Jiajun Chen, and Ziang Chen at taobao.com. &lt;br /&gt;
&lt;br /&gt;
Please note that FullNAT and SYNPROXY only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.gz ./; // lvs-tools.tar.gz is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.gz;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd /home/pukong/tools/keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd /home/pukong/tools/ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd /home/pukong/tools/quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43816</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43816"/>
				<updated>2012-08-08T07:41:26Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model for IPVS besides DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: the module introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS is capable of inter-vlan communication, while RS only need to access internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: Defence module against synflood attack'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first version of FULLNAT and SYNPROXY were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second version were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang at TAOBAO; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support were added to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.gz ./; // lvs-tools.tar.gz is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.gz;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd /home/pukong/tools/keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd /home/pukong/tools/ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd /home/pukong/tools/quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy-doc.zip&amp;diff=43815</id>
		<title>File:Lvs-fullnat-synproxy-doc.zip</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy-doc.zip&amp;diff=43815"/>
				<updated>2012-08-08T07:40:35Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: uploaded a new version of &amp;quot;Image:Lvs-fullnat-synproxy-doc.zip&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:LVS%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C.zip&amp;diff=43814</id>
		<title>File:LVS操作手册.zip</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:LVS%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C.zip&amp;diff=43814"/>
				<updated>2012-08-08T07:39:53Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: uploaded a new version of &amp;quot;Image:LVS操作手册.zip&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy-doc.zip&amp;diff=43813</id>
		<title>File:Lvs-fullnat-synproxy-doc.zip</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy-doc.zip&amp;diff=43813"/>
				<updated>2012-08-08T07:16:36Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: uploaded a new version of &amp;quot;Image:Lvs-fullnat-synproxy-doc.zip&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43812</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43812"/>
				<updated>2012-08-08T07:14:29Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model for IPVS besides DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: the module ntroduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS is capable of inter-vlan communication, while RS only need to access internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: Defence module against synflood attack'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first version of FULLNAT and SYNPROXY were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second version were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang at TAOBAO; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support were added to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.gz ./; // lvs-tools.tar.gz is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.gz;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd /home/pukong/tools/keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd /home/pukong/tools/ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd /home/pukong/tools/quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43756</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43756"/>
				<updated>2012-08-01T02:06:36Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model for IPVS besides DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: the module introduces introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS is capable of inter-vlan communication, while RS only need to access internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: Defence module against synflood attack'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first version of FULLNAT and SYNPROXY were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second version were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang at TAOBAO; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support were added to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.gz ./; // lvs-tools.tar.gz is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.gz;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd /home/pukong/tools/keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd /home/pukong/tools/ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd /home/pukong/tools/quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43755</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43755"/>
				<updated>2012-08-01T02:05:59Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model for IPVS besides DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: the module introduces introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS is capable of inter-vlan communication, while RS only need to access internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: Defence module against synflood attack'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first version of FULLNAT and SYNPROXY were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second version were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang at TAOBAO; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support were added to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.gz ./; // lvs-tools.tar.gz is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.gz;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd /home/pukong/tools/keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd /home/pukong/tools/ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd /home/pukong/tools/quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43751</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43751"/>
				<updated>2012-07-31T09:34:23Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model for IPVS besides DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: the module introduces introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS is capable of inter-vlan communication, while RS only need to access internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: Defence module against synflood attack'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first version of FULLNAT and SYNPROXY were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second version were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang at TAOBAO; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support were added to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.gz ./; // lvs-tools.tar.gz is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.gz;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy-doc.zip&amp;diff=43749</id>
		<title>File:Lvs-fullnat-synproxy-doc.zip</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy-doc.zip&amp;diff=43749"/>
				<updated>2012-07-31T08:47:05Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: uploaded a new version of &amp;quot;Image:Lvs-fullnat-synproxy-doc.zip&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS&amp;diff=43746</id>
		<title>IPVS</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS&amp;diff=43746"/>
				<updated>2012-07-31T07:33:09Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Design and Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IPVS (IP Virtual Server) implements transport-layer [[load balancing]] inside the Linux kernel, so called [[Layer-4 switching]]. IPVS running on a host acts as a [[load balancer]] before a cluster of real servers, it can direct requests for TCP/UDP based services to the real servers, and makes services of the real servers to appear as a virtual service on a single IP address.&lt;br /&gt;
&lt;br /&gt;
== IP Load Balancing Technologies ==&lt;br /&gt;
&lt;br /&gt;
Since the IP load balancing techniques have good scalability, IPVS extends the TCP/IP stack of the Linux kernel to support three IP load balancing techniques: [[LVS/NAT]], [[LVS/TUN]] and [[LVS/DR]]. The box running IPVS acts as a [[load balancer]] of network connections&lt;br /&gt;
from clients who know a single IP address for a service, and distributes them to a set of&lt;br /&gt;
servers that actually perform the work.&lt;br /&gt;
&lt;br /&gt;
* [[LVS/NAT | Virtual Server via Network Address Translation]]&lt;br /&gt;
* [[LVS/TUN | Virtual Server via IP Tunneling]]&lt;br /&gt;
* [[LVS/DR | Virtual Server via Direct Routing]]&lt;br /&gt;
&lt;br /&gt;
== Job Scheduling Algorithms ==&lt;br /&gt;
&lt;br /&gt;
=== Connection Scheduling Algorithms inside the Kernel ===&lt;br /&gt;
&lt;br /&gt;
IPVS schedules jobs at connection granularity inside the Linux kernel. Here connection is defined as data communication between client socket and server socket, no matter whether it uses TCP or UDP protocol. For scheduling UDP datagrams, IPVS [[load balancer]] records UDP datagram scheduling with configurable timeout, and the default UDP timeout is 300 seconds. Before UDP connection timeouts, all UDP datagrams from the same socket (protocol, ip address and port) will be directed to the same server.&lt;br /&gt;
&lt;br /&gt;
IPVS has implemented ten connection scheduling algorithms inside the kernel so far:&lt;br /&gt;
&lt;br /&gt;
* [[Round-Robin Scheduling]] &lt;br /&gt;
* [[Weighted Round-Robin Scheduling]] &lt;br /&gt;
* [[Least-Connection Scheduling]]&lt;br /&gt;
* [[Weighted Least-Connection Scheduling]] &lt;br /&gt;
* [[Locality-Based Least-Connection Scheduling]] &lt;br /&gt;
* [[Locality-Based Least-Connection with Replication Scheduling]] &lt;br /&gt;
* [[Destination Hashing Scheduling]] &lt;br /&gt;
* [[Source Hashing Scheduling]] &lt;br /&gt;
* [[Shortest Expected Delay Scheduling]] &lt;br /&gt;
* [[Never Queue Scheduling]]&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Feedback Load Balancing Scheduling ===&lt;br /&gt;
&lt;br /&gt;
The dynamic feedback load balancing scheduling algorithm is to use connection scheduling algorithm and adjust server weight based on dynamic feeback load information of each server, in order to avoid load imbalance among servers.&lt;br /&gt;
&lt;br /&gt;
* [[Dynamic Feedback Load Balancing Scheduling]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
See http://www.linuxvirtualserver.org/software/ipvs.html for downloading IPVS related software.&lt;br /&gt;
&lt;br /&gt;
[[ipvsadm]] is used to set up, maintain or inspect the IP virtual server table in the Linux kernel. For how to compile ipvsadm on different Linux distributions, check [[compiling ipvsadm on different Linux distributions|this article]] for detailed information.&lt;br /&gt;
&lt;br /&gt;
== Design and Implementation ==&lt;br /&gt;
&lt;br /&gt;
* [[IPVS Design]]&lt;br /&gt;
* [[IPVS Implementation]]&lt;br /&gt;
* [[IPv6 load balancing]] - the status of IPv6 support in IPVS and examples&lt;br /&gt;
&lt;br /&gt;
== Ongoing Development ==&lt;br /&gt;
&lt;br /&gt;
=== IPVS On FreeBSD ===&lt;br /&gt;
&lt;br /&gt;
The [http://dragon.linux-vs.org/~dragonfly/htm/lvs_freebsd.htm LVS On FreeBSD] project was started by Li Wang, the goal is to port IPVS code to FreeBSD. Now, the LVS On FreeBSD module supports the [[LVS/DR]] and [[LVS/TUN]] ip load balancing technologies.&lt;br /&gt;
&lt;br /&gt;
=== Todo ===&lt;br /&gt;
&lt;br /&gt;
* [[IPVS Wish List]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LVS Software]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;br /&gt;
[[Category:Terms and Abbreviations]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43745</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43745"/>
				<updated>2012-07-31T07:29:33Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first version of FULLNAT and SYNPROXY were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second version were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang at TAOBAO; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was added to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.gz ./; // lvs-tools.tar.gz is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.gz;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43744</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43744"/>
				<updated>2012-07-31T07:28:11Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first version of FULLNAT and SYNPROXY were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second version were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang at TAOBAO; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.gz ./; // lvs-tools.tar.gz is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.gz;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43743</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43743"/>
				<updated>2012-07-31T07:21:23Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first version of FULLNAT and SYNPROXY were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second version were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.gz ./; // lvs-tools.tar.gz is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.gz;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy.tar.gz&amp;diff=43742</id>
		<title>File:Lvs-fullnat-synproxy.tar.gz</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy.tar.gz&amp;diff=43742"/>
				<updated>2012-07-31T07:16:42Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: uploaded a new version of &amp;quot;Image:Lvs-fullnat-synproxy.tar.gz&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:Linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz&amp;diff=43741</id>
		<title>File:Linux-2.6.32-220.23.1.el6.x86 64.lvs.src.tar.gz</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:Linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz&amp;diff=43741"/>
				<updated>2012-07-31T07:15:31Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: uploaded a new version of &amp;quot;Image:Linux-2.6.32-220.23.1.el6.x86 64.lvs.src.tar.gz&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:Linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz&amp;diff=43740</id>
		<title>File:Linux-2.6.32-220.23.1.el6.x86 64.rs.src.tar.gz</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:Linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz&amp;diff=43740"/>
				<updated>2012-07-31T07:13:42Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:Linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz&amp;diff=43739</id>
		<title>File:Linux-2.6.32-220.23.1.el6.x86 64.lvs.src.tar.gz</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:Linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz&amp;diff=43739"/>
				<updated>2012-07-31T06:44:17Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43738</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43738"/>
				<updated>2012-07-31T06:23:39Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.gz ./; // lvs-tools.tar.gz is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.gz;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43737</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43737"/>
				<updated>2012-07-31T06:21:40Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./; // lvs-tools.tar.bz2 is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy-doc.zip&amp;diff=43736</id>
		<title>File:Lvs-fullnat-synproxy-doc.zip</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy-doc.zip&amp;diff=43736"/>
				<updated>2012-07-31T06:19:30Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43735</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43735"/>
				<updated>2012-07-31T06:19:15Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43734</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43734"/>
				<updated>2012-07-31T06:19:08Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
[[Media:lvs-fullnat-synproxy-doc.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:LVS%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C.zip&amp;diff=43733</id>
		<title>File:LVS操作手册.zip</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:LVS%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C.zip&amp;diff=43733"/>
				<updated>2012-07-31T06:08:40Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43732</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43732"/>
				<updated>2012-07-31T06:08:30Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.zip]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:LVS%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C.docx&amp;diff=43731</id>
		<title>File:LVS操作手册.docx</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:LVS%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C.docx&amp;diff=43731"/>
				<updated>2012-07-31T06:04:53Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43730</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43730"/>
				<updated>2012-07-31T06:02:36Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
[[Media:LVS操作手册.docx]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43729</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43729"/>
				<updated>2012-07-31T05:45:03Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
[[Image:LVS操作手册]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43728</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43728"/>
				<updated>2012-07-31T05:44:54Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
[[Image:LVS操作手册]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz]]&lt;br /&gt;
[[Media:linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43727</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43727"/>
				<updated>2012-07-31T05:43:47Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
[[Image:LVS操作手册]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch; // patch is in lvs-fullnat-synproxy.tar.gz &lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43726</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43726"/>
				<updated>2012-07-31T05:41:47Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
[[Image:LVS操作手册]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar.gz]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy.tar.gz&amp;diff=43725</id>
		<title>File:Lvs-fullnat-synproxy.tar.gz</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=File:Lvs-fullnat-synproxy.tar.gz&amp;diff=43725"/>
				<updated>2012-07-31T05:39:01Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43724</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43724"/>
				<updated>2012-07-31T05:38:18Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
[[Image:LVS操作手册]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
[[Media:lvs-fullnat-synproxy.tar]]&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43723</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43723"/>
				<updated>2012-07-31T03:36:53Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
[[Image:LVS操作手册]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43722</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43722"/>
				<updated>2012-07-31T03:33:17Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
[[Media:LVS操作手册]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43721</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43721"/>
				<updated>2012-07-31T03:30:49Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
[[Image:LVS操作手册]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43720</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43720"/>
				<updated>2012-07-31T03:29:08Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
[[LVS操作手册]]&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43719</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43719"/>
				<updated>2012-07-31T03:00:01Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun, FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43718</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43718"/>
				<updated>2012-07-31T02:59:23Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen, YangYi,YaoguangSun,FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43717</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43717"/>
				<updated>2012-07-31T02:59:10Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL;'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen, YangYi,YaoguangSun,FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY have only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43716</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43716"/>
				<updated>2012-07-31T02:58:47Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL;'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), IPVS translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, please refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen, YangYi,YaoguangSun,FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The FULLNAT and SYNPROXY support was add to keepalived/ipvsadm by JiajunChen,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY has only had limited testing.&lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43715</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43715"/>
				<updated>2012-07-31T02:53:03Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction==&lt;br /&gt;
&lt;br /&gt;
'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL;'''&lt;br /&gt;
&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
&lt;br /&gt;
The main principle: based on tcp syncookies, refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun,FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; &lt;br /&gt;
&lt;br /&gt;
The new FULLNAT+SYNPROXY support was add to keepalived/ipvsadm by JiajunZhang,ZiangChen and ShunminZhu. &lt;br /&gt;
&lt;br /&gt;
Please note that FULLNAT and SYNPROXY are experimental and has only had limited testing. &lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43714</id>
		<title>IPVS FULLNAT and SYNPROXY</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS_FULLNAT_and_SYNPROXY&amp;diff=43714"/>
				<updated>2012-07-31T02:46:46Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: New page: '''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL;''' The main principle: introduce local ip address (IDC internal ip address, lip), translate cip-vip to lip-rip, lip and rip both...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''FULLNAT: A new packet forwarding model as DR/NAT/TUNNEL;'''&lt;br /&gt;
The main principle: introduce local ip address (IDC internal ip address, lip), translate cip-vip to lip-rip, lip and rip both are IDC internal ip address, so LVS-RS can be inter-vlan communication, and RS only need access to internal network.&lt;br /&gt;
&lt;br /&gt;
'''SYNPROXY: synflood attack defence module'''&lt;br /&gt;
The main principle: based on tcp syncookies, refer to http://en.wikipedia.org/wiki/SYN_cookies;&lt;br /&gt;
&lt;br /&gt;
The first FULLNAT and SYNPROXY modules were added to IPVS in Linux kernel 2.6.9 by WenLi,YanTian,JianChen,YangYi,YaoguangSun,FangHan,Yingliu and JiamingWu. Now, the second FULLNAT and SYNPROXY modules were added in Linux kernel 2.6.32 by JianChen,JiamingWu and WensongZhang; The new FULLNAT+SYNPROXY support was add to keepalived/ipvsadm by JiajunZhang,ZiangChen and ShunminZhu. &lt;br /&gt;
Please note that FULLNAT and SYNPROXY are experimental and has only had limited testing. &lt;br /&gt;
&lt;br /&gt;
== Document ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
1. LVS Kernel&lt;br /&gt;
1.1 get kernel rpm from redhat&lt;br /&gt;
  wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm&lt;br /&gt;
&lt;br /&gt;
1.2 get kernel source code from rpm&lt;br /&gt;
  vim ~/.rpmmacros;&lt;br /&gt;
    add:&lt;br /&gt;
      %_topdir /home/pukong/rpms&lt;br /&gt;
      %_tmppath /home/pukong/rpms/tmp&lt;br /&gt;
      %_sourcedir /home/pukong/rpms/SOURCES&lt;br /&gt;
      %_specdir /home/pukong/rpms/SPECS&lt;br /&gt;
      %_srcrpmdir /home/pukong/rpms/SRPMS&lt;br /&gt;
      %_rpmdir /home/pukong/rpms/RPMS&lt;br /&gt;
      %_builddir /home/pukong/rpms/BUILD&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
    mkdir rpms;&lt;br /&gt;
    mkdir rpms/tmp;&lt;br /&gt;
    mkdir rpms/SOURCES;&lt;br /&gt;
    mkdir rpms/SPECS;&lt;br /&gt;
    mkdir rpms/SRPMS;&lt;br /&gt;
    mkdir rpms/RPMS;&lt;br /&gt;
    mkdir rpms/BUILD;&lt;br /&gt;
  rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm;&lt;br /&gt;
  cd /home/pukong/rpms/SPECS;&lt;br /&gt;
  rpmbuild -bp kernel.spec;&lt;br /&gt;
&lt;br /&gt;
  then you can find kernel source code in /home/pukong/rpms/BUILD.&lt;br /&gt;
&lt;br /&gt;
1.3 add lvs patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp lvs-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;lvs-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can directly get source code from linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
1.4 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
2. RealServer Kernel (TOA)&lt;br /&gt;
2.1 get kernel source code, the same as step 1.1 and 1.2;&lt;br /&gt;
&lt;br /&gt;
2.2 add toa patch&lt;br /&gt;
  cd /home/pukong/rpms/BUILD/;&lt;br /&gt;
  cd kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/;&lt;br /&gt;
  cp toa-2.6.32-220.23.1.el6.patch ./;&lt;br /&gt;
  patch -p1&amp;lt;toa-2.6.32-220.23.1.el6.patch;&lt;br /&gt;
&lt;br /&gt;
  Or you can get source code directly from linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz;&lt;br /&gt;
&lt;br /&gt;
2.3 compile and install&lt;br /&gt;
  make -j16;&lt;br /&gt;
  make modules_install;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3. LVS Tools (keepalived/ipvsadm/quaage)&lt;br /&gt;
  cd /home/pukong;&lt;br /&gt;
  cp lvs-tools.tar.bz2 ./;&lt;br /&gt;
  tar xzf lvs-tools.tar.bz2;&lt;br /&gt;
  cd tools;&lt;br /&gt;
&lt;br /&gt;
3.1 keepalived install&lt;br /&gt;
  cd keepalived;&lt;br /&gt;
  ./configure --with-kernel-dir=&amp;quot;/lib/modules/`uname -r`/build&amp;quot;;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.2 ipvsadm install&lt;br /&gt;
  cd ipvsadm;&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
3.3 quaage install&lt;br /&gt;
  cd quagga;&lt;br /&gt;
  ./configure --disable-ripd --disable-ripngd --disable-bgpd --disable-watchquagga --disable-doc  --enable-user=root --enable-vty-group=root --enable-group=root --enable-zebra --localstatedir=/var/run/quagga&lt;br /&gt;
make&lt;br /&gt;
  make;&lt;br /&gt;
  make install;&lt;br /&gt;
&lt;br /&gt;
[[Category:IPVS]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS&amp;diff=43713</id>
		<title>IPVS</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS&amp;diff=43713"/>
				<updated>2012-07-31T02:13:44Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IPVS (IP Virtual Server) implements transport-layer [[load balancing]] inside the Linux kernel, so called [[Layer-4 switching]]. IPVS running on a host acts as a [[load balancer]] before a cluster of real servers, it can direct requests for TCP/UDP based services to the real servers, and makes services of the real servers to appear as a virtual service on a single IP address.&lt;br /&gt;
&lt;br /&gt;
== IP Load Balancing Technologies ==&lt;br /&gt;
&lt;br /&gt;
Since the IP load balancing techniques have good scalability, IPVS extends the TCP/IP stack of the Linux kernel to support three IP load balancing techniques: [[LVS/NAT]], [[LVS/TUN]] and [[LVS/DR]]. The box running IPVS acts as a [[load balancer]] of network connections&lt;br /&gt;
from clients who know a single IP address for a service, and distributes them to a set of&lt;br /&gt;
servers that actually perform the work.&lt;br /&gt;
&lt;br /&gt;
* [[LVS/NAT | Virtual Server via Network Address Translation]]&lt;br /&gt;
* [[LVS/TUN | Virtual Server via IP Tunneling]]&lt;br /&gt;
* [[LVS/DR | Virtual Server via Direct Routing]]&lt;br /&gt;
&lt;br /&gt;
== Job Scheduling Algorithms ==&lt;br /&gt;
&lt;br /&gt;
=== Connection Scheduling Algorithms inside the Kernel ===&lt;br /&gt;
&lt;br /&gt;
IPVS schedules jobs at connection granularity inside the Linux kernel. Here connection is defined as data communication between client socket and server socket, no matter whether it uses TCP or UDP protocol. For scheduling UDP datagrams, IPVS [[load balancer]] records UDP datagram scheduling with configurable timeout, and the default UDP timeout is 300 seconds. Before UDP connection timeouts, all UDP datagrams from the same socket (protocol, ip address and port) will be directed to the same server.&lt;br /&gt;
&lt;br /&gt;
IPVS has implemented ten connection scheduling algorithms inside the kernel so far:&lt;br /&gt;
&lt;br /&gt;
* [[Round-Robin Scheduling]] &lt;br /&gt;
* [[Weighted Round-Robin Scheduling]] &lt;br /&gt;
* [[Least-Connection Scheduling]]&lt;br /&gt;
* [[Weighted Least-Connection Scheduling]] &lt;br /&gt;
* [[Locality-Based Least-Connection Scheduling]] &lt;br /&gt;
* [[Locality-Based Least-Connection with Replication Scheduling]] &lt;br /&gt;
* [[Destination Hashing Scheduling]] &lt;br /&gt;
* [[Source Hashing Scheduling]] &lt;br /&gt;
* [[Shortest Expected Delay Scheduling]] &lt;br /&gt;
* [[Never Queue Scheduling]]&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Feedback Load Balancing Scheduling ===&lt;br /&gt;
&lt;br /&gt;
The dynamic feedback load balancing scheduling algorithm is to use connection scheduling algorithm and adjust server weight based on dynamic feeback load information of each server, in order to avoid load imbalance among servers.&lt;br /&gt;
&lt;br /&gt;
* [[Dynamic Feedback Load Balancing Scheduling]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
See http://www.linuxvirtualserver.org/software/ipvs.html for downloading IPVS related software.&lt;br /&gt;
&lt;br /&gt;
[[ipvsadm]] is used to set up, maintain or inspect the IP virtual server table in the Linux kernel. For how to compile ipvsadm on different Linux distributions, check [[compiling ipvsadm on different Linux distributions|this article]] for detailed information.&lt;br /&gt;
&lt;br /&gt;
== Design and Implementation ==&lt;br /&gt;
&lt;br /&gt;
* [[IPVS Design]]&lt;br /&gt;
* [[IPVS Implementation]]&lt;br /&gt;
* [[IPv6 load balancing]] - the status of IPv6 support in IPVS and examples&lt;br /&gt;
* [[IPVS FULLNAT and SYNPROXY]] &lt;br /&gt;
&lt;br /&gt;
== Ongoing Development ==&lt;br /&gt;
&lt;br /&gt;
=== IPVS On FreeBSD ===&lt;br /&gt;
&lt;br /&gt;
The [http://dragon.linux-vs.org/~dragonfly/htm/lvs_freebsd.htm LVS On FreeBSD] project was started by Li Wang, the goal is to port IPVS code to FreeBSD. Now, the LVS On FreeBSD module supports the [[LVS/DR]] and [[LVS/TUN]] ip load balancing technologies.&lt;br /&gt;
&lt;br /&gt;
=== Todo ===&lt;br /&gt;
&lt;br /&gt;
* [[IPVS Wish List]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LVS Software]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;br /&gt;
[[Category:Terms and Abbreviations]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS&amp;diff=43712</id>
		<title>IPVS</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS&amp;diff=43712"/>
				<updated>2012-07-31T01:21:35Z</updated>
		
		<summary type="html">&lt;p&gt;Benjiaming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IPVS (IP Virtual Server) implements transport-layer [[load balancing]] inside the Linux kernel, so called [[Layer-4 switching]]. IPVS running on a host acts as a [[load balancer]] before a cluster of real servers, it can direct requests for TCP/UDP based services to the real servers, and makes services of the real servers to appear as a virtual service on a single IP address.&lt;br /&gt;
&lt;br /&gt;
== IP Load Balancing Technologies ==&lt;br /&gt;
&lt;br /&gt;
Since the IP load balancing techniques have good scalability, IPVS extends the TCP/IP stack of the Linux kernel to support three IP load balancing techniques: [[LVS/NAT]], [[LVS/TUN]] and [[LVS/DR]]. The box running IPVS acts as a [[load balancer]] of network connections&lt;br /&gt;
from clients who know a single IP address for a service, and distributes them to a set of&lt;br /&gt;
servers that actually perform the work.&lt;br /&gt;
&lt;br /&gt;
* [[LVS/NAT | Virtual Server via Network Address Translation]]&lt;br /&gt;
* [[LVS/TUN | Virtual Server via IP Tunneling]]&lt;br /&gt;
* [[LVS/DR | Virtual Server via Direct Routing]]&lt;br /&gt;
&lt;br /&gt;
== Job Scheduling Algorithms ==&lt;br /&gt;
&lt;br /&gt;
=== Connection Scheduling Algorithms inside the Kernel ===&lt;br /&gt;
&lt;br /&gt;
IPVS schedules jobs at connection granularity inside the Linux kernel. Here connection is defined as data communication between client socket and server socket, no matter whether it uses TCP or UDP protocol. For scheduling UDP datagrams, IPVS [[load balancer]] records UDP datagram scheduling with configurable timeout, and the default UDP timeout is 300 seconds. Before UDP connection timeouts, all UDP datagrams from the same socket (protocol, ip address and port) will be directed to the same server.&lt;br /&gt;
&lt;br /&gt;
IPVS has implemented ten connection scheduling algorithms inside the kernel so far:&lt;br /&gt;
&lt;br /&gt;
* [[Round-Robin Scheduling]] &lt;br /&gt;
* [[Weighted Round-Robin Scheduling]] &lt;br /&gt;
* [[Least-Connection Scheduling]]&lt;br /&gt;
* [[Weighted Least-Connection Scheduling]] &lt;br /&gt;
* [[Locality-Based Least-Connection Scheduling]] &lt;br /&gt;
* [[Locality-Based Least-Connection with Replication Scheduling]] &lt;br /&gt;
* [[Destination Hashing Scheduling]] &lt;br /&gt;
* [[Source Hashing Scheduling]] &lt;br /&gt;
* [[Shortest Expected Delay Scheduling]] &lt;br /&gt;
* [[Never Queue Scheduling]]&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Feedback Load Balancing Scheduling ===&lt;br /&gt;
&lt;br /&gt;
The dynamic feedback load balancing scheduling algorithm is to use connection scheduling algorithm and adjust server weight based on dynamic feeback load information of each server, in order to avoid load imbalance among servers.&lt;br /&gt;
&lt;br /&gt;
* [[Dynamic Feedback Load Balancing Scheduling]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
See http://www.linuxvirtualserver.org/software/ipvs.html for downloading IPVS related software.&lt;br /&gt;
&lt;br /&gt;
[[ipvsadm]] is used to set up, maintain or inspect the IP virtual server table in the Linux kernel. For how to compile ipvsadm on different Linux distributions, check [[compiling ipvsadm on different Linux distributions|this article]] for detailed information.&lt;br /&gt;
&lt;br /&gt;
== Design and Implementation ==&lt;br /&gt;
&lt;br /&gt;
* [[IPVS Design]]&lt;br /&gt;
* [[IPVS Implementation]]&lt;br /&gt;
* [[IPv6 load balancing]] - the status of IPv6 support in IPVS and examples&lt;br /&gt;
* [[FULLNAT+SYNPROXY]] &lt;br /&gt;
&lt;br /&gt;
== Ongoing Development ==&lt;br /&gt;
&lt;br /&gt;
=== IPVS On FreeBSD ===&lt;br /&gt;
&lt;br /&gt;
The [http://dragon.linux-vs.org/~dragonfly/htm/lvs_freebsd.htm LVS On FreeBSD] project was started by Li Wang, the goal is to port IPVS code to FreeBSD. Now, the LVS On FreeBSD module supports the [[LVS/DR]] and [[LVS/TUN]] ip load balancing technologies.&lt;br /&gt;
&lt;br /&gt;
=== Todo ===&lt;br /&gt;
&lt;br /&gt;
* [[IPVS Wish List]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LVS Software]]&lt;br /&gt;
[[Category:Load Balancing]]&lt;br /&gt;
[[Category:Terms and Abbreviations]]&lt;/div&gt;</summary>
		<author><name>Benjiaming</name></author>	</entry>

	</feed>