2.6.9lvs有点问题,附带详细信息

发布于 2022-07-10 18:07:38 字数 1833 浏览 15 评论 4

软件已经安装了,使用tcpdump 检测.

配置如下:
# 打开前端机器的 ip_forward , 这个是 LVS 需要的
echo 1 > /proc/sys/net/ipv4/ip_forward
# 添加一个位于公网 IP 80 端口的虚拟服务, 负载均衡协议是 weighted lease connection
ipvsadm -A -t 10.0.0.10:80 -s wlc
# 添加后端 IP 们, -g 表明使用的是 direct routing 模式
ipvsadm -a -t 10.0.0.10:80 -r 10.0.0.12 -g
ipvsadm -a -t 10.0.0.10:80 -r 10.0.0.13 -g
ipvsadm -a -t 10.0.0.10:80 -r 10.0.0.14 -g

后端机器上面

# 打开 ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# 防止后端机器应答虚拟 IP 的 arp 信息
echo ‘2′ > /proc/sys/net/ipv4/conf/lo/arp_announce
echo ‘1′ > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo ‘2′ > /proc/sys/net/ipv4/conf/all/arp_announce
echo ‘1′ > /proc/sys/net/ipv4/conf/all/arp_ignore

# 在 lo:0 上面配置虚拟 IP
ifconfig lo:0 10.0.0.10 netmask 255.255.255.255
# 增加到 lo:0 的路由
route add -host 10.0.0.10 dev lo:0

配置好后用tcpdump查看 rs 和 lb上 在ie访问时候都有数据,但是ie就是打不开.

在rs上抓包 显示如下:
15:45:24.421171 IP rs的ip.ssh > 客户端IP.4530: P 6256:6308(52) ack 2861 win 1996
15:45:24.556964 IP 客户端IP.4530 > rs的ip.ssh: . ack 6308 win 16332

LB显示如下:
15:45:18.676666 IP 客户端IP.4530 > rs的ip.ssh: P 2757:2809(52) ack 5872 win 15276
15:45:18.677067 IP rs的ip.ssh > 客户端IP.4530: P 5872:5924(52) ack 2809 win 1996

[root@lvs-test ~]# /sbin/ipvsadm -Lc
IPVS connection entries
pro expire state source virtual destination
TCP 00:44 SYN_RECV 哈哈:4562 LB-IP:http 192.168.0.1:http
TCP 00:58 SYN_RECV 哈哈:4564 LB-IP.168.0.242:http 192.168.0.1:http
TCP 00:54 SYN_RECV 哈哈:4563 LB-IP:http 192.168.0.246:http

看起来访问虚拟IP,数据也能到真实服务器,而且能返回. 但是页面就是打不开.而且发现我用 ie访问,却抓到rs的ip.ssh,ssh的包  很奇怪了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

成熟的代价 2022-07-24 02:49:46

我按照第2中方法做成功了  知道为什么了

余生一个溪 2022-07-22 00:19:58

后端机器上面

# 打开 ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# 防止后端机器应答虚拟 IP 的 arp 信息
echo ‘2′ > /proc/sys/net/ipv4/conf/lo/arp_announce
echo ‘1′ > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo ‘2′ > /proc/sys/net/ipv4/conf/all/arp_announce
echo ‘1′ > /proc/sys/net/ipv4/conf/all/arp_ignore

# 在 lo:0 上面配置虚拟 IP
ifconfig lo:0 10.0.0.10 netmask 255.255.255.255
# 增加到 lo:0 的路由
route add -host 10.0.0.10 dev lo:0

设置Real server

为了方便我们将所有步骤写成一个shell script.

#!/bin/bash
echo "0" > /proc/sys/net/ipv4/ip_forward (关闭ip_forward)
ifconfig lo:100 10.83.33.100 broadcast 10.83.33.100 netmask 0xffffffff up (设置虚拟IP)
route add -host 10.83.33.100 dev lo:100 (设置达到虚拟Ip的路由)
echo "1" > /proc/sys/net/ipv4/conf/all/hidden (开启No-ARP)
echo "1" > /proc/sys/net/ipv4/conf/lo/hidden  (开启No-ARP)

以上是2中不同说法,到底怎么解释呢?

锦上情书 2022-07-20 10:59:27

问下2楼的     为什么有的人说用 lo呢?  不明白啊.

另外hidden-2.6.9-1.diff这个noarp包一定需要吗?

我在使用hidden-2.6.9-1.diff 时候,有不正常:
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -ur v2.6.9/linux/Documentation/filesystems/proc.txt linux/Documentation/filesystems/proc.txt
|--- v2.6.9/linux/Documentation/filesystems/proc.txt    2004-10-19 10:00:33.000000000 +0300
|+++ linux/Documentation/filesystems/proc.txt   2004-10-19 11:53:53.438336280 +0300
--------------------------
File to patch:

看不懂了. 谢谢

于我来说 2022-07-19 07:27:23

你需要打noarp包。内核重新编译

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文