ITPub博客

首页 > 数据库 > PostgreSQL > 关于ECS 无法使用VIP的问题 - SDN , openflow

关于ECS 无法使用VIP的问题 - SDN , openflow

原创 PostgreSQL 作者:digoal 时间:2018-10-08 10:55:31 0 删除 编辑

背景

给ECS虚拟机配置VIP,无法通讯,原因?

HOST A

[root@pg11 ~]# ip addr show eth0  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000  
    link/ether 00:16:3e:0a:5c:f1 brd ff:ff:ff:ff:ff:ff  
    inet 172.17.20.29/20 brd 172.17.31.255 scope global dynamic eth0  
       valid_lft 313883835sec preferred_lft 313883835sec

HOST B

postgres@pg11-> ip addr show eth0  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000  
    link/ether 00:16:3e:12:2f:48 brd ff:ff:ff:ff:ff:ff  
    inet 172.17.20.30/20 brd 172.17.31.255 scope global dynamic eth0  
       valid_lft 313883847sec preferred_lft 313883847sec

互相在同一个VPC(vswitch , hub)

相互可以访问

a ping b  
ping 172.17.20.29  
PING 172.17.20.29 (172.17.20.29) 56(84) bytes of data.  
64 bytes from 172.17.20.29: icmp_seq=1 ttl=64 time=0.156 ms  
64 bytes from 172.17.20.29: icmp_seq=2 ttl=64 time=0.102 ms  
  
b ping a  
ping 172.17.20.30  
PING 172.17.20.30 (172.17.20.30) 56(84) bytes of data.  
64 bytes from 172.17.20.30: icmp_seq=1 ttl=64 time=0.166 ms  
64 bytes from 172.17.20.30: icmp_seq=2 ttl=64 time=0.112 ms

配置VIP,无法跨机访问

host a

[root@pg11 ~]# ip addr add 172.17.20.39/20 brd + dev eth0 label eth0:1  
[root@pg11 ~]# ifconfig  
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  
        inet 172.17.20.29  netmask 255.255.240.0  broadcast 172.17.31.255  
        ether 00:16:3e:0a:5c:f1  txqueuelen 1000  (Ethernet)  
        RX packets 22221492822  bytes 33552649055304 (30.5 TiB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 631860042  bytes 42907936724 (39.9 GiB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  
        inet 172.17.20.39  netmask 255.255.240.0  broadcast 172.17.31.255  
        ether 00:16:3e:0a:5c:f1  txqueuelen 1000  (Ethernet)  
  
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536  
        inet 127.0.0.1  netmask 255.0.0.0  
        loop  txqueuelen 1  (Local Loopback)  
        RX packets 959417  bytes 111291935 (106.1 MiB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 959417  bytes 111291935 (106.1 MiB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
  
[root@pg11 ~]# ping 172.17.20.39  
PING 172.17.20.39 (172.17.20.39) 56(84) bytes of data.  
64 bytes from 172.17.20.39: icmp_seq=1 ttl=64 time=0.012 ms  
64 bytes from 172.17.20.39: icmp_seq=2 ttl=64 time=0.008 ms

host b

[root@pg11 ~]# ping 172.17.20.39  
PING 172.17.20.39 (172.17.20.39) 56(84) bytes of data.

无防火墙

[root@pg11 ~]# iptables -L -v -n  
Chain INPUT (policy ACCEPT 8 packets, 528 bytes)  
 pkts bytes target     prot opt in     out     source               destination           
  
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)  
 pkts bytes target     prot opt in     out     source               destination           
  
Chain OUTPUT (policy ACCEPT 6 packets, 1000 bytes)  
 pkts bytes target     prot opt in     out     source               destination

原因

宿主机通过openflow进行流控,未注册的vm+ip可以被拒绝。具体可参考SDN文档。

删除VIP

[root@pg11 ~]# ip addr del 172.17.20.39/20 brd + dev eth0 label eth0:1  
[root@pg11 ~]# ifconfig  
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  
        inet 172.17.20.29  netmask 255.255.240.0  broadcast 172.17.31.255  
        ether 00:16:3e:0a:5c:f1  txqueuelen 1000  (Ethernet)  
        RX packets 22221492889  bytes 33552649060975 (30.5 TiB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 631860095  bytes 42907943783 (39.9 GiB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536  
        inet 127.0.0.1  netmask 255.0.0.0  
        loop  txqueuelen 1  (Local Loopback)  
        RX packets 959424  bytes 111292619 (106.1 MiB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 959424  bytes 111292619 (106.1 MiB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

参考

《linux IP 命令使用举例》

A Virtual Switch Platform for Host SDN in the Public Cloud

https://www.microsoft.com/en-us/research/wp-content/uploads/2017/09/login_fall17_02_firestone.pdf

https://www.opennetworking.org/

https://www.cisco.com/c/en/us/about/press/internet-protocol-journal/back-issues/table-contents-59/161-sdn.html

https://en.wikipedia.org/wiki/OpenFlow

原文地址:https://github.com/digoal/blog/blob/master/201810/20181005_01.md

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23503672/viewspace-2215535/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
周正中 阿里云高级技术专家, 网名: 德哥 ( digoal );PostgreSQL 中国社区 发起人之一;PostgreSQL 象牙塔 发起人之一;DBA+社群 联合发起人之一;10余项数据库相关专利;完成了对数据库HA、容灾、备份、恢复、分布式、数据仓库架构设计和建设;数据库管理和开发的标准化体系建立。

注册时间:2018-09-30

  • 博文量
    55
  • 访问量
    69828