文章目录
- 建立基于OpenvSwitch的GRE隧道
 - 1. 使用VMware安装2个CentOS 7虚拟机,安装时记得都开启CPU虚拟化,第一台命名为“Docker”,第二台命名为“KVM”。
 - 2. 安装完虚拟机后,进入虚拟机,修改网络配置(onboot改为yes)并重启网络服务,查看相应IP地址,并使用远程连接软件进行连接。
 - 3. 把老师所给Packages包、centos的docker镜像以及cirros镜像使用winSCP传送至虚拟机(centos6.5传送至docker虚拟机,cirros传送至KVM虚拟机),并解压Packages包至/opt目录下。
 - 4. 两台虚拟机都配置默认镜像yum源,并且把Packages包也一起配置到本地yum源当中。
 - 5. 修改主机名,方便区分。第一台虚拟机(命名为Docker那台)修改主机名为docker,第二台虚拟机(命名为KVM那台)修改主机名为kvm。如下图所示。
 
- 配置虚拟机Docker
 - 6. 修改网络配置,新增一行NM_CONTROLLER=no,如下图所示:
 - 7. 关闭防火墙
 - 8. 开启内核转发
 - 9. 安装openvswitch、bridge-utils、tunctl、docker-io服务
 - 10. 更新下路由,看是否有最新路由版本。
 - 11. 启动openvswitch服务以及docker服务。
 - 12. 检查OVS是否安装好。
 - 13. 创建br0网桥,并创建名字为br-int的OVS开放虚拟交换机,并重启网络。
 - 14. 安装net-tools,并给br0设置地址为30.1.0.1/24
 - 15. 把br0桥接到br-int上
 - 16. 把br0桥接到br-int上
 - 17. 在OVS交换机br-int上创建gre接口,地址指向kvm虚拟机IP
 - 18. 启动br0和br-int;
 - 19. 添加一条路由信息,使30.2.0.0网段的路由指向kvm虚拟机的ens33网卡
 - 20. 修改docker配置信息。配置完成后启动docker。
 - 21. 把开始上传的镜像包导入docker,并添加tag。
 - 22. 启动docker,并查看docker的CONTAINER ID
 - 23. 进入docker,查看docker的IP
 
- 配置虚拟机KVM
 - 24. 进入网络配置目录,复制一个网络配置文件,命名为ifcfg-br-ex,并修改其配置,如下图所示
 - 25. 修改ens33网卡配置,如下图所示
 - 25. 关闭防火墙规则
 - 26. 开启内核转发
 - 27. 关闭防火墙
 - 28. 更新路由到最新版本
 - 28. 安装openvswitch、qemu-kvm、libvirt、dnsmasq、net-tools服务
 - 29. 开启openvswitch服务,并新建br-int虚拟交换机
 - 30. 给br-int设置ip地址为30.2.0.1/24并开启
 - 31. 在br-int上新添加gre接口,使其指向docker虚拟宿主机
 - 32. 新增一条路由信息,指向docker虚拟宿主机的IP地址
 - 33. 配置dnsmasq;
 - 34. 重新启动dnsmasq;
 - 35. 新建ovs-ifup和if-down脚本。
 - 36. 给两个脚本赋予执行权限
 - 37. 为防止冲突,删除tap0接口
 - 38. 启动kvm虚拟机
 - 39. 使用给的账号密码登录进入
 - 40. 查看kvm虚拟机ip地址
 
- 测试连通性
 - 1.kvm虚拟宿主机ping docker虚拟宿主机网桥br0的IP(30.1.0.1),证明两个主机间连通。
 - 2.docker虚拟宿主机ping kvm虚拟宿主机网桥br0的IP(30.2.0.1),证明两个主机间连通。
 - 3.docker中ping kvm虚拟宿主机IP。
 - 4.docker中ping docker宿主机IP。
 - 5.kvm虚拟机中ping通docker
 - 6.docker虚拟机中ping通kvm
 
建立基于OpenvSwitch的GRE隧道
实验前准备:编辑虚拟机网络配置,使VMnet8处在192.168.10.0网段。
1. 使用VMware安装2个CentOS 7虚拟机,安装时记得都开启CPU虚拟化,第一台命名为“Docker”,第二台命名为“KVM”。
2. 安装完虚拟机后,进入虚拟机,修改网络配置(onboot改为yes)并重启网络服务,查看相应IP地址,并使用远程连接软件进行连接。
3. 把老师所给Packages包、centos的docker镜像以及cirros镜像使用winSCP传送至虚拟机(centos6.5传送至docker虚拟机,cirros传送至KVM虚拟机),并解压Packages包至/opt目录下。

 
 
4. 两台虚拟机都配置默认镜像yum源,并且把Packages包也一起配置到本地yum源当中。
镜像yum源配置教程详见:CentOS如何配置本地yum源。
 Packages包本地yum源配置详见:实训5-1
5. 修改主机名,方便区分。第一台虚拟机(命名为Docker那台)修改主机名为docker,第二台虚拟机(命名为KVM那台)修改主机名为kvm。如下图所示。
docker那台:
 
 KVM那台:
 
配置虚拟机Docker
6. 修改网络配置,新增一行NM_CONTROLLER=no,如下图所示:

 
 
7. 关闭防火墙


8. 开启内核转发
小知识:为什么我们需要开启内核转发?
 linux服务器经常被用来提供防火墙、路由器、NAT等功能,在这些场景下,linux内核需要将网卡上收到的报文转发给其他网络设备。linux内核提供了ip_forward参数用于开关内核的报文转发功能,只有这个开关被打开时,内核才会执行报文的转发。
 
9. 安装openvswitch、bridge-utils、tunctl、docker-io服务

 
10. 更新下路由,看是否有最新路由版本。

11. 启动openvswitch服务以及docker服务。

 
12. 检查OVS是否安装好。

13. 创建br0网桥,并创建名字为br-int的OVS开放虚拟交换机,并重启网络。

 
14. 安装net-tools,并给br0设置地址为30.1.0.1/24

 
15. 把br0桥接到br-int上

16. 把br0桥接到br-int上

17. 在OVS交换机br-int上创建gre接口,地址指向kvm虚拟机IP
ovs-vsctl add-port br-int gre0 -- set interface gre0 type=gre options:remote_ip=192.168.10.*(这里为KVM宿主机IP地址)
 
18. 启动br0和br-int;

19. 添加一条路由信息,使30.2.0.0网段的路由指向kvm虚拟机的ens33网卡
ip route add 30.2.0.0/24 via 192.168.10.*(这里为kvm虚拟宿主机IP地址) dev ens33
 
20. 修改docker配置信息。配置完成后启动docker。

 
 
21. 把开始上传的镜像包导入docker,并添加tag。

22. 启动docker,并查看docker的CONTAINER ID

23. 进入docker,查看docker的IP

配置虚拟机KVM
24. 进入网络配置目录,复制一个网络配置文件,命名为ifcfg-br-ex,并修改其配置,如下图所示

 
25. 修改ens33网卡配置,如下图所示

 
25. 关闭防火墙规则

26. 开启内核转发

27. 关闭防火墙
(执行 setenforce 0 时,它会关闭 SELinux 防火墙。SELinux 是一个内核模块,它提供了访问控制安全策略,以防止未授权的进程访问系统资源。)
 
28. 更新路由到最新版本

28. 安装openvswitch、qemu-kvm、libvirt、dnsmasq、net-tools服务

 
 
29. 开启openvswitch服务,并新建br-int虚拟交换机

30. 给br-int设置ip地址为30.2.0.1/24并开启

31. 在br-int上新添加gre接口,使其指向docker虚拟宿主机
ovs-vsctl add-port br-int gre0 -- set interface gre0 type=gre options:remote_ip=192.168.10.*(这里为docker虚拟宿主机的IP地址)
 
32. 新增一条路由信息,指向docker虚拟宿主机的IP地址

33. 配置dnsmasq;
/usr/sbin/dnsmasq --strict-order --bind-interfaces --interface=br-int --except-interface=lo --pid-file=/var/run/qdhcp.pid --leasefile-ro --dhcp-range=30.2.0.3,30.2.0.254,255.255.255.0,12h --conf-file=
 
34. 重新启动dnsmasq;

35. 新建ovs-ifup和if-down脚本。


 
 
36. 给两个脚本赋予执行权限

37. 为防止冲突,删除tap0接口

38. 启动kvm虚拟机
/usr/libexec/qemu-kvm -m 512 -drive file=cirros-0.3.3-x86_64-disk.img,if=virtio -net nic,model=virtio -net tap,script=ovs-ifup -nographic -vnc :1 
 

39. 使用给的账号密码登录进入

40. 查看kvm虚拟机ip地址

测试连通性
1.kvm虚拟宿主机ping docker虚拟宿主机网桥br0的IP(30.1.0.1),证明两个主机间连通。

2.docker虚拟宿主机ping kvm虚拟宿主机网桥br0的IP(30.2.0.1),证明两个主机间连通。

3.docker中ping kvm虚拟宿主机IP。

4.docker中ping docker宿主机IP。

5.kvm虚拟机中ping通docker

6.docker虚拟机中ping通kvm




















