此处我们只讨论虚拟网络
背景:公司架构为kvm+ceph+(linux bridge+frr) vxlan架构,我们分为计算节点、网络节点和存储节点
目地:最近对公司内部应用根据部门和应用类型进行网络隔离,形成类似于云计算多租户隔离。
配置:
1、在各机上配置各虚拟网络的虚拟交换机和vxlan大二层网络,一个网桥和一个vlxan接口对应一个虚拟网络,如:other虚拟网络——br-other虚拟交换机——vxlan30
kvm物理机1(计算节点):
添加other虚拟网络交换机和vxlan接口
ip link add br-other type bridge
ip link set dev br-other up
ip link add vxlan30 type vxlan id 30 dstport 5789 nolearning dev enp88s0f3 #vxlan id 为30,nolearning 不学习mac地址,通过frr 来学习mac,消除东西流量瓶颈,减少BUM包,
ip link set dev vxlan30 up
ip link set dev vxlan30 master br-other
把各虚拟机网络接口配置到br-other 虚拟交换机即可以添加到other虚拟网络
2、配置frr为各虚拟机提供vxlan网络的MAC地址学习功能,并使vxlan自动连接,消除东西流量瓶颈和单节点故障;frr 我分为spine和leaf节点,spine我设置了2台用于高可用(虚拟机搭建),所有的计算节点都是leaf节点
1)spine配置:
router bgp 6000
bgp router-id 10.112.112.254
bgp bestpath as-path multipath-relax
neighbor fabric peer-group
neighbor fabric remote-as external
neighbor 10.112.112.2 peer-group fabric #leaf1 ,把所有的计算节点都添加进来了。 ip 计算节点的ip 同时也时各虚拟机之间vxlan通讯ip
neighbor 10.112.112.3 peer-group fabric #leaf2
!
address-family l2vpn evpn
neighbor fabric activate
exit-address-family
!
2)leaf节点即计算节点1配置:
router bgp 6002
bgp router-id 10.112.112.3
bgp bestpath as-path multipath-relax
neighbor fabric peer-group
neighbor fabric remote-as external
neighbor 10.112.112.252 peer-group fabric #spine 1
neighbor 10.112.112.254 peer-group fabric #spine 2
!
address-family l2vpn evpn
neighbor fabric activate
advertise-all-vni
exit-address-family
!
3、网络节点配置,虚拟机南北流量即外网流量全部集中在网络节点。可以用keepalived做高用
在网络节点上创建多个namespace,每个虚拟网络一个namespace,起到网络隔离作用
ip netns add other #添加other虚拟网络,同时提供此网络的网关路由和防火墙功能。
ip link add br-other type bridge
ip link set dev br-other up
#虚拟机内部接口
ip link add vxlan30 type vxlan id 30 dstport 5789 nolearning dev enp88s0f3
ip link set dev vxlan30 up
ip link set dev vxlan30 master br-other
ip link add n2o type veth peer name o2n netns other
ip link set dev n2o up
ip link set dev n2o master br-other
ip link exec other ip link set lo up
ip link exec other ip link set o2n up
ip link exec other ip addr add 192.168.30.1/24 dev o2n #为other虚拟网络的网关
#虚拟机外网访问接口
ip link add br-ex type bridge #添加一个外网访问虚拟交换机,
ip link set dev xxxx master br-ex #把连接外网物理接口接入到此交换机
ip link set dev br-ex up
ip link add w2o type veth peer name o2w netns other
ip link set dev w2o up
ip link set dev w2o master br-ex
ip netns exec other ip link set dev o2w up
ip netns exec other ip addr add 123.123.123.123/26 dev o2w #添加外网访问公网IP
ip netns exec other ip route add default via 123.123.123.1 dev o2w #添加默认路由
4、配置iptables ,提供防火墙和SNAT,DNAT功功能,简单配置:
ip netns exec other iptables -A FORWARD -s 192.168.30.0/24 -j ACCEPT
ip netns exec other iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o o2w -j MASQUERADE
结束,以上针对other虚拟网络,从计算节点到网络节点配置完成。