一、问题描述:

在修改了cce-lb2的nginx配置后,重启服务VIP切换到cce-lb1后,cce首页无法访问。最后通过重启lb2上的keepalived进程后恢复(service keepalived restart),lb2是好的,lb1有类似偶发问题。

二、当前进展:

lb1和lb2的keepalived配置文件及check_nginx脚本如下:

image.png
两张网卡192和224,分别查看网关配置

  1. [root@cce-lb2 caasuser]# ip add |grep ens224
  2. 3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
  3. inet 10.144.246.74/24 brd 10.144.246.255 scope global noprefixroute ens224
  4. inet 10.144.246.75/24 scope global secondary ens224
  5. [root@cce-lb2 caasuser]# ip add |grep ens192
  6. 2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
  7. inet 10.144.245.74/24 brd 10.144.245.255 scope global noprefixroute ens192
  8. inet 10.144.245.204/24 scope global secondary ens192
  1. [root@cce-lb1 caasuser]# ip add |grep ens224
  2. 3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
  3. inet 10.144.246.73/24 brd 10.144.246.255 scope global noprefixroute ens224
  4. [root@cce-lb1 caasuser]# ip add |grep ens192
  5. 2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
  6. inet 10.144.245.73/24 brd 10.144.245.255 scope global noprefixroute ens192
  7. [root@cce-lb1 caasuser]#

两张网卡192和224,分别查看网关配置中,在192网卡配置项里,将gateway没有注释,而在正常的lb2的192网卡上gateway网关注释了。
image.png

image.png

lb1上ens192网卡配置的网关10.144.245.1 ping不通,

  1. NAME=ens192
  2. DEVICE=ens192
  3. ONBOOT=yes
  4. IPADDR=10.144.245.73
  5. NETMASK=255.255.255.0
  6. GATEWAY=10.144.245.1

lb2上ens192网卡到网关互通

  1. NAME=ens192
  2. # UUID=d2e7a805-f6c1-4005-8563-90f05218aa53
  3. DEVICE=ens192
  4. ONBOOT=yes
  5. IPADDR=10.144.245.74
  6. NETMASK=255.255.255.0
  7. #GATEWAY=10.144.245.1

各自ping网关10.144.245.1和10.144.246.1,对比发现lb1上唯独ping 这个网关10.144.245.1不通;导致VIP( vip_intra)10.144.245.204飘到这个在lb1上转发不出去;traceroute跟踪没有路由条目。
image.png
image.png0

路由表第一行表示默认路由,所有的流量通过默认路由出去,但是除了从第二行开始的剩余条目之外。也就意味着除了第二条到末尾的这些路由之外的其他所有流量都走默认的0.0.0.0网关。目前lb1上出不去10.144.245.1这个网关。正常的lb2上的192网卡将gateway=10.144.245.1配置注释,也就意味着该网卡流量通过0.0.0.0直接广播,而lb1上的192网卡强制配置了gateway=10.144.245.1所以vip—-10.144.245.204根本出不去网段(网关10.144.245.1)

(1)在lb2上,要走10.144.245.1按照第四行条目走直接广播;
image.png
(2)在lb1(异常)上,要走245.1则先要去自己的网关因为配置了gateway=10.144.245.1;发现在第二列的
245.1的条目里面并没有目的地址为10.144.245.0的网段!
image.png

三、解决方案

因为是生产环境,无法及时验证,推测注释掉lb1上192网卡配置文件里的gateway选项以便10.144.245.0网段走0.0.0.0网关。
根据公开的信息发现,双网卡双网关方案不可取,lb1的网关多余了。

keepalived多个虚IP的双机集群
http://blog.sina.com.cn/s/blog_5670025101015lnc.html
image.png

双网卡双网关设置问题

https://blog.csdn.net/weixin_34037515/article/details/91771826
image.png

  1. [caasuser@cce-lb1 ~]$ ip route
  2. default via 10.144.246.1 dev ens224 proto static metric 101
  3. 10.144.245.0/24 dev ens192 proto kernel scope link src 10.144.245.73 metric 100
  4. 10.144.246.0/24 dev ens224 proto kernel scope link src 10.144.246.73 metric 101
  5. 10.245.19.128/25 via 10.144.245.1 dev ens192
  6. 10.245.97.0/25 via 10.144.245.1 dev ens192
  7. 10.249.39.0/24 via 10.144.245.1 dev ens192
  8. 10.249.112.128/25 via 10.144.245.1 dev ens192
  9. 10.249.132.128/25 via 10.144.245.1 dev ens192
  10. 10.249.152.128/25 via 10.144.245.1 dev ens192
  11. 10.249.154.0/24 via 10.144.245.1 dev ens192
  12. 10.249.154.128/25 via 10.144.245.1 dev ens192
  13. 10.249.170.0/24 via 10.144.245.1 dev ens192
  14. 10.249.171.128/25 via 10.144.245.1 dev ens192
  15. 10.249.217.128/25 via 10.144.245.1 dev ens192
  16. 10.249.220.128/25 via 10.144.245.1 dev ens192
  17. 10.251.102.128/25 via 10.144.245.1 dev ens192
  18. 10.251.103.128/25 via 10.144.245.1 dev ens192
  19. 10.251.203.128/25 via 10.144.245.1 dev ens192
  20. 10.251.212.0/24 via 10.144.245.1 dev ens192
  21. 10.251.213.128/25 via 10.144.245.1 dev ens192
  22. 10.251.215.128/25 via 10.144.245.1 dev ens192
  23. 10.251.233.128/25 via 10.144.245.1 dev ens192
  24. 10.251.235.128/25 via 10.144.245.1 dev ens192
  25. 10.251.243.0/24 via 10.144.245.1 dev ens192
  26. 10.252.134.0/23 via 10.144.245.1 dev ens192
  27. 10.252.195.128/25 via 10.144.245.1 dev ens192
  28. 10.252.230.0/24 via 10.144.245.1 dev ens192
  29. 10.252.232.0/24 via 10.144.245.1 dev ens192
  30. 10.253.197.0/25 via 10.144.245.1 dev ens192
  31. 10.253.197.0/24 via 10.144.245.1 dev ens192
  32. 10.253.197.128/25 via 10.144.245.1 dev ens192
  33. 10.254.227.128/25 via 10.144.245.1 dev ens192
  34. 192.168.116.32/27 via 10.144.245.1 dev ens192
  35. 192.168.168.2 dev tun0 proto kernel scope link src 192.168.168.1
  36. [caasuser@cce-lb1 ~]$ route -n
  37. Kernel IP routing table
  38. Destination Gateway Genmask Flags Metric Ref Use Iface
  39. 0.0.0.0 10.144.246.1 0.0.0.0 UG 101 0 0 ens224
  40. 10.144.245.0 0.0.0.0 255.255.255.0 U 100 0 0 ens192
  41. 10.144.246.0 0.0.0.0 255.255.255.0 U 101 0 0 ens224
  42. 10.245.19.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  43. 10.245.97.0 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  44. 10.249.39.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  45. 10.249.112.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  46. 10.249.132.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  47. 10.249.152.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  48. 10.249.154.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  49. 10.249.154.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  50. 10.249.170.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  51. 10.249.171.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  52. 10.249.217.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  53. 10.249.220.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  54. 10.251.102.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  55. 10.251.103.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  56. 10.251.203.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  57. 10.251.212.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  58. 10.251.213.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  59. 10.251.215.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  60. 10.251.233.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  61. 10.251.235.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  62. 10.251.243.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  63. 10.252.134.0 10.144.245.1 255.255.254.0 UG 0 0 0 ens192
  64. 10.252.195.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  65. 10.252.230.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  66. 10.252.232.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  67. 10.253.197.0 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  68. 10.253.197.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  69. 10.253.197.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  70. 10.254.227.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  71. 192.168.116.32 10.144.245.1 255.255.255.224 UG 0 0 0 ens192
  72. 192.168.168.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
  73. [caasuser@cce-lb1 ~]$
  1. [caasuser@cce-lb2 ~]$ ip route
  2. default via 10.144.246.1 dev ens224 proto static metric 101
  3. 10.11.204.128/25 via 10.144.245.1 dev ens192
  4. 10.144.245.0/24 dev ens192 proto kernel scope link src 10.144.245.74 metric 100
  5. 10.144.246.0/24 dev ens224 proto kernel scope link src 10.144.246.74 metric 101
  6. 10.245.19.128/25 via 10.144.245.1 dev ens192
  7. 10.245.97.0/25 via 10.144.245.1 dev ens192
  8. 10.245.97.0/24 via 10.144.245.1 dev ens192
  9. 10.249.39.0/24 via 10.144.245.1 dev ens192
  10. 10.249.112.128/25 via 10.144.245.1 dev ens192
  11. 10.249.132.128/25 via 10.144.245.1 dev ens192
  12. 10.249.152.128/25 via 10.144.245.1 dev ens192
  13. 10.249.154.0/24 via 10.144.245.1 dev ens192
  14. 10.249.154.128/25 via 10.144.245.1 dev ens192
  15. 10.249.170.0/24 via 10.144.245.1 dev ens192
  16. 10.249.171.128/25 via 10.144.245.1 dev ens192
  17. 10.249.217.128/25 via 10.144.245.1 dev ens192
  18. 10.249.220.128/25 via 10.144.245.1 dev ens192
  19. 10.251.102.128/25 via 10.144.245.1 dev ens192
  20. 10.251.103.128/25 via 10.144.245.1 dev ens192
  21. 10.251.193.0/24 via 10.144.245.1 dev ens192
  22. 10.251.203.128/25 via 10.144.245.1 dev ens192
  23. 10.251.212.0/24 via 10.144.245.1 dev ens192
  24. 10.251.213.128/25 via 10.144.245.1 dev ens192
  25. 10.251.215.128/25 via 10.144.245.1 dev ens192
  26. 10.251.233.128/25 via 10.144.245.1 dev ens192
  27. 10.251.235.128/25 via 10.144.245.1 dev ens192
  28. 10.251.243.0/24 via 10.144.245.1 dev ens192
  29. 10.252.134.0/23 via 10.144.245.1 dev ens192
  30. 10.252.195.128/25 via 10.144.245.1 dev ens192
  31. 10.252.230.0/24 via 10.144.245.1 dev ens192
  32. 10.252.232.0/24 via 10.144.245.1 dev ens192
  33. 10.253.197.0/25 via 10.144.245.1 dev ens192
  34. 10.253.197.128/25 via 10.144.245.1 dev ens192
  35. 10.254.227.128/25 via 10.144.245.1 dev ens192
  36. 10.255.32.12 via 10.144.245.1 dev ens192
  37. 10.255.243.0/24 via 10.144.245.1 dev ens192
  38. 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
  39. 192.168.116.32/27 via 10.144.245.1 dev ens192
  40. [caasuser@cce-lb2 ~]$ route -n
  41. Kernel IP routing table
  42. Destination Gateway Genmask Flags Metric Ref Use Iface
  43. 0.0.0.0 10.144.246.1 0.0.0.0 UG 101 0 0 ens224
  44. 10.11.204.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  45. 10.144.245.0 0.0.0.0 255.255.255.0 U 100 0 0 ens192
  46. 10.144.246.0 0.0.0.0 255.255.255.0 U 101 0 0 ens224
  47. 10.245.19.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  48. 10.245.97.0 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  49. 10.245.97.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  50. 10.249.39.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  51. 10.249.112.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  52. 10.249.132.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  53. 10.249.152.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  54. 10.249.154.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  55. 10.249.154.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  56. 10.249.170.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  57. 10.249.171.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  58. 10.249.217.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  59. 10.249.220.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  60. 10.251.102.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  61. 10.251.103.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  62. 10.251.193.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  63. 10.251.203.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  64. 10.251.212.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  65. 10.251.213.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  66. 10.251.215.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  67. 10.251.233.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  68. 10.251.235.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  69. 10.251.243.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  70. 10.252.134.0 10.144.245.1 255.255.254.0 UG 0 0 0 ens192
  71. 10.252.195.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  72. 10.252.230.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  73. 10.252.232.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  74. 10.253.197.0 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  75. 10.253.197.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  76. 10.254.227.128 10.144.245.1 255.255.255.128 UG 0 0 0 ens192
  77. 10.255.32.12 10.144.245.1 255.255.255.255 UGH 0 0 0 ens192
  78. 10.255.243.0 10.144.245.1 255.255.255.0 UG 0 0 0 ens192
  79. 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
  80. 192.168.116.32 10.144.245.1 255.255.255.224 UG 0 0 0 ens192
  81. [caasuser@cce-lb2 ~]$