Host1 服务器上实施基本虚拟网络配置方案
一、命令参考
二、命令详解
1.ip netns add VM1
ip netns add命令用于在Linux系统中添加一个新的网络命名空间,网络命名空间是 Linux 提供的一种功能,允许创建多个隔离的网络环境,每个环境都有自己的网络接口、路由表、IP 地址等。所以ip netns add VM1这将创建一个名为 VM1 的新网络命名空间。
创建好后,可以用ip netns exec命令在VM1中执行命令,例如ip netns exec VM1 ping 目标IP。当不需要该网络命名空间时可以使用 ip netns delete 命令来删除它,例如 ip netns delete VM1。
2.ip link add h1-eth0 type veth peer s1-h1(注意第4条命令有错)
该命令用于在 Linux 系统中创建一对虚拟以太网接口,这对接口是相互连接的,即从一个接口发送的数据包会直接被另一个接口接受。这种机制用于容器和虚拟机之间的网络连接,以及在同一主机上模拟不同的网络环境。在这个命令中:ip link add 是添加网络接口的命令。h1-eth0 是你要创建的一个虚拟以太网接口的名称。type veth 指定了接口类型为虚拟以太网。peer s1-h1 指定了与 h1-eth0 配对的另一个虚拟以太网接口的名称。但它们都显示未激活状态,因为没有为它们分配IP或启用它们。启用命令是:ip link set(例如:ip link set h1-eth0 up)。也有可能需要为接口分配IP地址,以便它们能够在网络上进行通信,命令为:ip addr add(例如:ip addr add 192.168.1.1/24 dev h1-eth0)。
3.ovs-vsctl add-br s1-vxlan
该命令用于在Open vSwitch中 一个新的网桥(bridge),Open vSwitch是一个开源的多层虚拟交换机,通常用于大型虚拟环境中的网络自动化和管理。所以这条命令增加了一个名为s1-vxlan的网桥,可以通过ovs-vsctl list-br命令来验证网桥是否已经成功创建。这个新创建的网桥 s1-vxlan 最初是没有任何配置和接口的,它只是一个逻辑上的交换机。为了使其在网络中发挥作用,需要进一步配置它,比如添加接口、设置流规则等。
4.ovs-vsctl show
该命令用于显示Open VSwitch的当前配置状态,这个命令会输出 OVS 数据库中所有网桥(bridges)、接口(interfaces)、流规则(flow rules)以及其他相关配置的信息。
5.brctl show
该命令用于显示Linux系统上所有桥接的信息(桥接是一种网络设备,它可以将多个网络接口连接在一起,以形成一个单一的逻辑接口,从而实现网络流量的转发和过滤。对于桥接的添加:brctl addbr,删除:brctl delbr(例如:brctl addbr docker0)。
6.ovs-vsctl add-port s1-vxlan s1-h1
该命令用于在Open vSwitch中将名为s1-h1的接口添加到名为s1-vxlan的网桥上。这意味着是s1-h1接口将成为s1-vxlan网桥的一部分,能接收和发送拖过该网桥的数据包。注意:在执行前应该确保:①s1-vxlan网桥已存在②s1-h1接口已存在
7.ip link set h1-eth0 netns VM1
该命令用于将名为 h1-eth0 的网络接口从当前的命名空间(通常是根命名空间或默认命名空间)移动到名为 VM1 的网络命名空间中。注意在执行前应该确保:①h1-teh0接口已经存在且无连接②VM1网络命名空间已经存在
8.brctl addif docker0 s1-h3
该命令用于将名为是s1-h3的接口添加到名为docker0的桥接中
9.ip netns exec VM1 ifconfig h1-eth0 10.0.0.11 netmask 255.255.255.0 up(可能需要安装ifconfig包)
该命令用于在名为 VM1 的网络命名空间中配置名为 h1-eth0 的网络接口,分配给h1-eth0接口的IP地址为:10.0.0.11,子网掩码为:255.255.255.0(用于确定IP地址哪部分属于网络地址,哪一部分属于主机地址),up关键字用于将该接口启用以传输数据。所以作用为:将在 VM1 网络命名空间中为 h1-eth0 接口配置 IP 地址 10.0.0.11,子网掩码 255.255.255.0,并启用该接口
解决参考:
10.ip netns exec VM1 ifconfig lo up
该命令用于在VM1的网络命名空间中配置并启用名为lo的网络接口(lo通常是系统的回环接口,用于在网络软件的同一节点上的客户端服务器通信),启用回环接口通常是为了确保网络软件(如 TCP/IP 栈)能够正常地在本地进行通信。
11.ifconfig s1-h1 up
该命令命令用于启用名为 s1-h1 的网络接口,使其开始传输数据。
12.ovs-vsctl add-port s1-vxlan vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=<Host2 外网 ip>
该命令使用 ovs-vsctl,Open vSwitch的管理工具,来向一个名为 s1-vxlan 的虚拟交换机(可能是 Open vSwitch 中的一个 bridge)中添加一个新的端口,并配置该端口的类型为 VXLAN。add-port s1-vxlan vxlan0:这部分命令指示在名为 s1-vxlan 的虚拟交换机上添加一个名为 vxlan0 的新端口。这里的 vxlan0 将成为该虚拟交换机的网络接口名称。-- set interface vxlan0 type=vxlan:这是一个设置选项,指定新添加的 vxlan0 端口的类型为 VXLAN。VXLAN 是一种网络封装技术,常用于虚拟机或容器之间的网络通信,特别是在需要跨越不同物理网络的情况下。options=<Host2 外网 IP>:这设置了 VXLAN 接口的远程 IP 地址。在这个上下文中,<Host2 外网 IP> 应被替换为实际的主机外部 IP 地址,该地址是 VXLAN 对端(即另一个通过 VXLAN 通信的设备)的公共 IP。这意味着 vxlan0 将与具有此 IP 地址的对端进行通信。
13.ip netns exec VM1 route add default gw 10.0.0.254
该命令用于在名为VM1的网络命名空间中添加一条默认路由。这条路由指定了所有未明确指定目的网络的数据包都应该通过网关 10.0.0.254 进行转发。
三、温馨提示
理解不一定正确,仅供参考。