基于组播跨主机通信vxlan实现

框架图

采用两个虚拟机,客户机ubuntu 和 centos 分别在上面创建一个虚拟网桥和一对虚拟网络对,peer一边插到bridge上,另一头放到网络命名空间中,模拟类似于虚机或docker设备,通过配置二者的vxlan,定义出口设备,加入共同的多播组,实现两个网络命名空间里的进程通信.
image

Ubuntu

# 确认内核版本需大于3.7
root@bogon:~# uname -r
3.16.0-30-generic

# 创建网桥,虚拟对设备,网络命名空间,VXLAN

ip link add br0 type bridge
ip addr add 192.168.1.2/24 dev br0
ip link set br0 up

ip link add veth0 type veth peer name veth1
ip link set veth0 up
ip link set veth1 up

# attach 到网桥br0, veth0可以不设置ip
ip link set veth0 master br0

ip netns add ns1
# 将veth1 插到 ns1 网络空间 并设置ip
ip link set veth1 netns ns1
ip netns exec ns1 ip addr add 192.168.1.100/24 dev veth1
ip netns exec ns1 ip link set veth1 up


ip link add vxlan0 type vxlan id 110 group 239.1.1.1 dev eth0 dstport 4789
ip link set vxlan0 up
ip link set vxlan0 master br0

# 查看linux内核已设置好对udp.4789端口的监听
root@bogon:~# netstat -lu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 *:4789                  *:*                                

#查看组播ip信息,确认eth1出口已加入到vxlan0的组播ip中
root@bogon:~# netstat -gn
IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      224.0.0.1
eth0            1      239.1.1.1
...             ...     ...

# 查看vxlan详细信息
root@bogon:~# ip -d link show dev vxlan0
33: vxlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue master bridge1 state UNKNOWN mode DEFAULT group default 
    link/ether 32:4c:96:da:d6:f0 brd ff:ff:ff:ff:ff:ff promiscuity 1 
    vxlan id 110 group 239.1.1.1 dev eth0 srcport 32768 61000 dstport 4789 ageing 300 
    bridge_slave 

Centos

ip命令配置同上;
注:
    关闭每个虚拟设备的rp_filter策略,防止协议栈“丢包” echo 0 > /proc/sys/net/ipv4/conf/veth0/rp_filter
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值