LVS-NAT 简单配置

  • 2016-07-10
  • 1,717
  • 1

  最近简单的配置了LVS-NAT模型,中间步骤还是比较多,做个笔记。本地使用Vmware,虚拟出三台centos6.4系统的机器,一台调度器(Director)和两台后端服务器(Realserver),均使用两张网卡,分别模拟内网(VM host-only)和公网(VM 桥接)。

NAT实验拓扑如下

lvs-nat

 内网: 192.168.10.0/24 (host-only)
 外网: 172.16.200.0/24 (桥接)
 
配置过程

1. 调度器安装配置工具 ipvsadm
  linux在2.4以上的内核版本中已经集成了lvs,我使用的CentOS6.4,已经是2.6内核版本,只需安装ipvsadm命令行管理工具,可以用yum快速安装。


2. 调度器需要开启网卡的转发,修改内核参数 ip_forward

  ip_forward 默认值0代表关闭,也可以编辑 /etc/sysctl.conf,修改 net.ipv4.ip_forward = 1,再重启network服务;
  sysctl -p 用于查看是否修改成功。


3. 使用 ipvsadm 配置调度器
  ipvsadm和lvs之间的关系,就像iptables和netfilter一样,前者是用户端配置的工具,后者是内核中对应的模块。仅添加即两步命令:
3.1 添加 Service

3.2 添加 RealServer


4. 双网卡的特殊路由
  由于这个实验,采用了两张网卡(eth0外网、eth1内网),那么默认路由怎么走呢,假如我将两台后端服务器 ifcfg-eth1 中的GATEWAY指向调度器DIP(也就是调度器的eth1 192.168.10.10),那么生效后默认路由也就变为了走内网网关,route -n查看:

这样导致的直接后果是,yum和ssh等操作会断网,因为是通过桥接网卡(外网)传输的。

解决办法:在两台realserver上建立优先级不同的路由表,添加路由达到RIP指向DIP的效果


 
配置完成后 ipvsadm -ln 查询调度器当前状态.  

 
测试和注意事项

1. lvs是基于网络层数据包的转发,本身并不监听端口。realserver上可以安装httpd做测试,也可以用其他服务。
2. lvs的NAT是在TCP/IP层实现,实际没有用到iptables的nat表,实验前建议在调度器上清空防火墙(iptables -F)
3. 与iptables有些类似,ipvsadm命令是把配置直接加载到内存的,我并没有找到有静态的配置文件,但是-S和-R参数可以将lvs的配置导出/导入到指定文件中,
 ipvsadm -S > /root/ipvs.config
 ipvsadm -R < /root/ipvs.config

 
 


目前对于LVS的总结还不太到位,如果发现文章存在错误,欢迎留言指正 ^ ^|

评论

发表评论