- 浏览: 1475120 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (691)
- linux (207)
- shell (33)
- java (42)
- 其他 (22)
- javascript (33)
- cloud (16)
- python (33)
- c (48)
- sql (12)
- 工具 (6)
- 缓存 (16)
- ubuntu (7)
- perl (3)
- lua (2)
- 超级有用 (2)
- 服务器 (2)
- mac (22)
- nginx (34)
- php (2)
- 内核 (2)
- gdb (13)
- ICTCLAS (2)
- mac android (0)
- unix (1)
- android (1)
- vim (1)
- epoll (1)
- ios (21)
- mysql (3)
- systemtap (1)
- 算法 (2)
- 汇编 (2)
- arm (3)
- 我的数据结构 (8)
- websocket (12)
- hadoop (5)
- thrift (2)
- hbase (1)
- graphviz (1)
- redis (1)
- raspberry (2)
- qemu (31)
- opencv (4)
- socket (1)
- opengl (1)
- ibeacons (1)
- emacs (6)
- openstack (24)
- docker (1)
- webrtc (11)
- angularjs (2)
- neutron (23)
- jslinux (18)
- 网络 (13)
- tap (9)
- tensorflow (8)
- nlu (4)
- asm.js (5)
- sip (3)
- xl2tp (5)
- conda (1)
- emscripten (6)
- ffmpeg (10)
- srt (1)
- wasm (5)
- bert (3)
- kaldi (4)
- 知识图谱 (1)
最新评论
-
wahahachuang8:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
websocket的helloworld -
q114687576:
http://www.blue-zero.com/WebSoc ...
websocket的helloworld -
zhaoyanzimm:
感谢您的分享,给我提供了很大的帮助,在使用过程中发现了一个问题 ...
nginx的helloworld模块的helloworld -
haoningabc:
leebyte 写道太NB了,期待早日用上Killinux!么 ...
qemu+emacs+gdb调试内核 -
leebyte:
太NB了,期待早日用上Killinux!
qemu+emacs+gdb调试内核
组播:
试验:
在三台机器上
192.168.139.251
192.168.139.252
192.168.139.253
每台机器建立上建立一个namespace,通过vxlan相连
在任何一台机器上建的vm都可以和其他机器的vm互通。
每台机器上对应的内网的ip
192.168.139.251----namespace:10.1.0.5/24------------vm:10.3.0.11
192.168.139.252----namespace:10.1.0.6/24------------vm:10.4.0.12
192.168.139.253----namespace:10.1.0.7/24
★★第一步
zubo.sh
#################
###################################
依次在
192.168.139.252
192.168.139.253
修改脚本:
ip netns exec zou ip addr add 10.1.0.5/24 dev zouveth1
上把局域网ip 10.1.0.5/24改成 10.1.0.6/24 和10.1.0.7/24
ip link add vxlan-10 type vxlan id 10 group 239.1.1.1 local 192.168.139.251 dev eth0
local 192.168.139.251改成
local 192.168.139.252
和
local 192.168.139.253
测试:
注意这里,
如果执行脚本的顺序是251,252,253
#则需要从253上ping 前两个机器,否则ping不通,因为执行251的时候,252和253的数据没同步吧,怎么同步?
似乎简单ip后就没有重现了(eth0上有ip),如果是复杂的网桥会有类似问题。
ip netns exec zou ping 10.1.0.5
ip netns exec zou ping 10.1.0.6
★★★第二步
测试vm:
启动vm是的脚本
qemu_net.sh内容为
##########################
#########################
删除vm时的脚本
delbr0.sh
######################
#####################
建立一个桥,vm的内网
在
qemu.sh:
################
#############
ip netns exec zou ./qemu.sh
在namespace上建vm是为了
脚本里面的内容建立在namespace中
ip netns exec zou ip a
ip netns exec zou brctl show
然后在vm中执行:
###############
#################
在vm中ping外面
ping 10.3.0.1
ping 10.1.0.5
ping 10.1.0.6
ping 10.1.0.7
vm已经能访问另两台机器的namespace,但是另两台的namespace并不能访问这台vm,
如果192.168.139.252的namespace想访问vm:10.3.0.11
则需要在192.168.139.252上操作:
ip netns exec zou ip route add 10.3.0.0/24 via 10.1.0.5
ip netns exec zou ping 10.3.0.11
同理在192.168.139.252上建立10.4.0.12的vm
qemu_net.sh
##################
################################
启动vm:
注意mac地址的变更,不要和建立过的相同
############
#############
然后在vm中执行:
###############
################
在这个vm中是可以 ping 10.3.0.11的
因为这个vm的namespace已经ip route过了
如果想251上的vm:10.3.0.11也能ping通252上的vm:10.4.0.12
则
在251上执行
ip netns exec zou ip route add 10.4.0.0/24 via 10.1.0.6
进入251上的vm:10.3.0.11
ping 10.4.0.12则通了
★★★★★★★★★★★★★★★★★★★★★★★
#################
################
试验如果是点对点:
就把
#这里的ip改变,设置成自己的,dev后面设置带ip的网卡名
ip link add vxlan-10 type vxlan id 10 group 239.1.1.1 local 192.168.139.251 dev eth0
改成
ip link add vxlan-10 type vxlan id 10 remote 192.168.139.252 dev eth0
remote是指的对方节点的ip
试验:
在三台机器上
192.168.139.251
192.168.139.252
192.168.139.253
每台机器建立上建立一个namespace,通过vxlan相连
在任何一台机器上建的vm都可以和其他机器的vm互通。
每台机器上对应的内网的ip
192.168.139.251----namespace:10.1.0.5/24------------vm:10.3.0.11
192.168.139.252----namespace:10.1.0.6/24------------vm:10.4.0.12
192.168.139.253----namespace:10.1.0.7/24
★★第一步
zubo.sh
#################
#!/bin/sh ip netns add zou ip link add zouveth0 type veth peer name zouveth1 ip link set zouveth1 netns zou #这里改变,设置这个namespace内的局域网ip ip netns exec zou ip addr add 10.1.0.5/24 dev zouveth1 ip netns exec zou ip addr brctl addbr br-zou brctl addif br-zou zouveth0 #这个是单点的设置,remote后面对应对方的ip地址 #ip link add vxlan-10 type vxlan id 10 remote 192.168.139.252 dev eth0 #这里的ip改变,设置成自己的,dev后面设置带ip的网卡名 ip link add vxlan-10 type vxlan id 10 group 239.1.1.1 local 192.168.139.251 dev eth0 brctl addif br-zou vxlan-10 ip -d link show vxlan-10 ip link set dev zouveth0 up ip netns exec zou ip link set dev zouveth1 up ip netns exec zou ip link set dev lo up ip link set dev br-zou up ip link set dev vxlan-10 up
###################################
依次在
192.168.139.252
192.168.139.253
修改脚本:
ip netns exec zou ip addr add 10.1.0.5/24 dev zouveth1
上把局域网ip 10.1.0.5/24改成 10.1.0.6/24 和10.1.0.7/24
ip link add vxlan-10 type vxlan id 10 group 239.1.1.1 local 192.168.139.251 dev eth0
local 192.168.139.251改成
local 192.168.139.252
和
local 192.168.139.253
测试:
注意这里,
如果执行脚本的顺序是251,252,253
#则需要从253上ping 前两个机器,否则ping不通,因为执行251的时候,252和253的数据没同步吧,怎么同步?
似乎简单ip后就没有重现了(eth0上有ip),如果是复杂的网桥会有类似问题。
ip netns exec zou ping 10.1.0.5
ip netns exec zou ping 10.1.0.6
★★★第二步
测试vm:
启动vm是的脚本
qemu_net.sh内容为
##########################
#!/bin/sh brctl addbr br0 ip link set br0 up ip link set tap1 up brctl addif br0 tap1 ip addr add 10.3.0.1/24 dev br0 iptables -t nat -A POSTROUTING -s "10.3.0.0/24" ! -d "10.3.0.0/24" -j MASQUERADE
#########################
删除vm时的脚本
delbr0.sh
######################
#!/bin/sh ip link set br0 down brctl delbr br0
#####################
建立一个桥,vm的内网
在
qemu.sh:
################
/usr/libexec/qemu-kvm -kernel bzImage -drive file=hda.img,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1" -nographic -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:21,model=e1000,addr=08 -net tap,name=haha,ifname=tap1,script=qemu_net.sh,downscript=delbr0.sh
#############
ip netns exec zou ./qemu.sh
在namespace上建vm是为了
脚本里面的内容建立在namespace中
ip netns exec zou ip a
ip netns exec zou brctl show
然后在vm中执行:
###############
#!/bin/sh ip addr add 10.3.0.11/24 dev eth0 ip link set eth0 up ip route add default via 10.3.0.1
#################
在vm中ping外面
ping 10.3.0.1
ping 10.1.0.5
ping 10.1.0.6
ping 10.1.0.7
vm已经能访问另两台机器的namespace,但是另两台的namespace并不能访问这台vm,
如果192.168.139.252的namespace想访问vm:10.3.0.11
则需要在192.168.139.252上操作:
ip netns exec zou ip route add 10.3.0.0/24 via 10.1.0.5
ip netns exec zou ping 10.3.0.11
同理在192.168.139.252上建立10.4.0.12的vm
qemu_net.sh
##################
#!/bin/sh brctl addbr br0 ip link set br0 up ip link set tap1 up brctl addif br0 tap1 ip addr add 10.4.0.2/24 dev br0 iptables -t nat -A POSTROUTING -s "10.4.0.0/24" ! -d "10.4.0.0/24" -j MASQUERADE
################################
启动vm:
注意mac地址的变更,不要和建立过的相同
############
/usr/libexec/qemu-kvm -kernel bzImage -drive file=hda.img,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1" -nographic -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:22,model=e1000,addr=08 -net tap,name=haha,ifname=tap1,script=qemu_net.sh,downscript=delbr0.sh
#############
然后在vm中执行:
###############
#!/bin/sh ip addr add 10.4.0.11/24 dev eth0 ip link set eth0 up ip route add default via 10.4.0.2
################
在这个vm中是可以 ping 10.3.0.11的
因为这个vm的namespace已经ip route过了
如果想251上的vm:10.3.0.11也能ping通252上的vm:10.4.0.12
则
在251上执行
ip netns exec zou ip route add 10.4.0.0/24 via 10.1.0.6
进入251上的vm:10.3.0.11
ping 10.4.0.12则通了
★★★★★★★★★★★★★★★★★★★★★★★
#################
################
试验如果是点对点:
就把
#这里的ip改变,设置成自己的,dev后面设置带ip的网卡名
ip link add vxlan-10 type vxlan id 10 group 239.1.1.1 local 192.168.139.251 dev eth0
改成
ip link add vxlan-10 type vxlan id 10 remote 192.168.139.252 dev eth0
remote是指的对方节点的ip
发表评论
-
建立tap设备的c的代码
2019-01-08 19:09 470tapper.c #include <stdio.h& ... -
jslinux总结帖
2019-01-04 21:33 1127注意个问题: chrome不要用两个tab页,否则ping不通 ... -
br0和tap0的互相影响
2019-01-02 19:17 810转载 http://www.cnblogs.com/wlei/ ... -
M版openstack(ovs,dvr,动态迁移)
2017-06-09 10:30 1786主要内容 1.先搭建三个节点的环境,dvr模式 2.建一个vm ... -
M版本的openstack的例子(linuxbridge)
2017-05-23 15:05 556做两个节点控制节点和计算节点 mcontroller521 ... -
jslinux-deobfuscated-network
2017-02-13 22:37 708基础知识 查看网络包 tcpdump -i eth0 -e ... -
vxlan多台主机的vm之间相同网段互通
2016-09-19 16:30 2239三台机器 建立namespace ... -
qemu用tap方式启动vm的网络试验(ip route)
2016-09-14 11:29 2800ip route add 192.168.8.0/24 via ... -
openstack的M版本的neutron的实验
2016-09-01 20:00 3127试验步骤: 1.创建内部 ... -
socket的方式使用qemu建立虚拟机
2016-06-24 17:54 1900qemu的-net参数 -net nic 必须有,基本配置mo ... -
tap的方式使用qemu建立虚拟机NAT网络
2016-06-23 18:03 9822基本概念: vm:虚拟机 ... -
qemu用nat的方式使用tap建立虚拟机
2016-06-23 16:15 11普通桥接参考 http://haoningabc.iteye. ... -
tap的方式使用qemu建立虚拟机桥接网络
2016-06-22 20:53 7815需求:建立一个虚拟机,使网络和内网一样,当一台普通接入内网的服 ... -
can't initialize iptables table错误
2016-04-26 10:05 786can't initialize iptables table ... -
linux下TUN/TAP虚拟网卡的使用
2016-03-31 18:46 4882tun在网络层 tap在二层 ls ... -
openstack L版本(openvswitch的安装和应用)
2016-03-24 15:04 3019参考L版本的linuxbridge的安装方式 和k版本的ov ... -
neutron router试验
2016-03-17 20:41 964上接 http://haoningabc.iteye.com/ ... -
openstack L版本(使用linux bridge的vxlan)
2016-03-12 23:35 2378参考 http://docs.openstack.org/li ... -
neutron基础九(qemu nat网络)
2016-02-06 17:21 1618接上基础八,kvm透传nested忽略 1.在主机ce ... -
neutron基础八(qemu 桥接网络)
2016-02-06 13:13 1542qemu的桥接和nat的qemu启动命令是一样的,但是后续的脚 ...
相关推荐
VXLAN手动隧道 集中式网关,不同子网互访。VXLAN手动隧道 集中式网关,不同子网互访。VXLAN手动隧道 集中式网关,不同子网互访。VXLAN手动隧道 集中式网关,不同子网互访。VXLAN手动隧道 集中式网关,不同子网互访。...
1. **组网准备**:确保虚拟机加入到同一个VXLAN,并且VXLAN主机已经加入到多播组。 2. **ARP请求**:虚拟机VM1发出ARP请求,请求中包含自身的MAC地址。该请求经过VTEP1封装后,以多播方式在VxLAN网络中传播。 3. **...
VXLAN技术可以基于三层网络结构来构建二层虚拟网络,通过VXLAN技术可以将处于不同网段网络设备整合在同一个逻辑链路层网络中,对于终端用户而言,这些网络设备似乎“真实地”部署在了同一个链路层网络中。
1.2.2 学习MAC地址:VXLAN使用动态学习或静态配置的方式学习主机的MAC地址,实现二层通信。 1.2.3 接入模式:包括集中式和分布式接入模式,不同模式下VTEP有不同的配置。 1.2.4 转发单播流量:VXLAN通过学习到的MAC...
- 网络覆盖:VXLAN通过封装帧的方式实现了在不同网络之间通信,因此网络设计时应考虑如何有效地管理和优化这些封装流量。 - 性能:由于VXLAN使用额外的封装层,因此它可能对网络性能产生一定影响。设计VXLAN解决方案...
VXLAN的数据平面学习机制是通过多目标分发树实现的,其中所有边缘设备都加入了这一分布树。这种方法利用了协议学习,允许边缘设备之间通过协议广告主机信息。 另外,VXLAN数据包结构的设计是整个技术实现的关键。...
VXLAN通过使用IP多播或者单播的方式建立隧道,在隧道两端的VTEP之间传递数据。 ##### VXLAN报文封装格式 VXLAN报文封装是在原始二层帧的基础上添加了UDP/IP头部和VXLAN头部。具体结构如下: - **原始二层帧**:...
- **虚拟机移动性增强**:借助VXLAN技术,虚拟机可以在不同物理服务器之间自由迁移,而无需改变其网络配置,这对于提高资源利用率和灵活性至关重要。 - **大规模扩展能力**:VXLAN支持超过1600万个不同的虚拟网络...
3. VXLAN网关:VXLAN网关用于连接VXLAN网络和传统VLAN网络,VXLAN网关实现VNI和VLAN ID之间的映射。 VXLAN技术的应用: 1.灵活部署应用:在VXLAN环境中,应用部署不受物理位置和3层网络边界限制,例如某应用的地址...
它解决了在不同数据中心(Data Center,DC)之间的二层网络打通问题,允许虚拟机(VM)在多个地理位置的数据中心之间移动,同时保持相同的网络连接性和配置不变。这种技术的主要贡献者包括Arista、Broadcom、Cisco、...
首先,VXLAN 是通过在二层网络上叠加三层网络来实现的,它通过在IP报文中封装二层VLAN帧,从而打破了传统VLAN的4096个标签限制,理论上可以支持多达1600万个不同的VLAN ID。这使得大型数据中心或云计算环境能够更...
VXLAN 解决了这些挑战的方法是,将管理员规划的同一区域内的 VM 发出的原始报文封装成新的 UDP 报文,并使用物理网络的 IP 和 MAC 地址作为外层头,这样报文对网络中的其他设备只表现为封装后的参数。因此,极大降低...
2. 多租户隔离:通过VNI来区分不同的租户,每个VXLAN网络可以视为一个独立的广播域,与物理位置无关,实现了网络的隔离。 3. 灵活性:VXLAN封装格式支持在IP网络上传输,使得虚拟机可以跨数据中心迁移,而无需更改...
在VXLAN网络中,IS-IS用于在不同的VXLAN域之间建立连接,使得跨域通信成为可能。 3. VXLAN技术基础:VXLAN通过在IP网络上传输二层数据帧,使用一个24位的VXLAN网络标识符(VNID)来标识不同的VXLAN实例,这样每个...
VXLAN通过在IP网络上封装二层以太网帧来扩展传统的二层网络,使得虚拟机(VM)可以在不同的物理网络段之间通信,而无需依赖传统的 VLAN 扩展方法。VXLAN 使用24位的VNI(VXLAN Network Identifier)来标识不同的...
VXLAN的协议规范定义了VXLAN报文的封装、传输和解析等一系列标准,确保不同厂商的设备能够在VXLAN网络中互通。 七、配置VXLAN 配置VXLAN主要包括以下任务: 1. VXLAN配置任务简介:介绍配置VXLAN需要完成的步骤和...
这就要求网络能够支持虚拟机在物理主机之间迁移,同时保持其网络配置(如IP地址、MAC地址)不变,即“无感知”迁移。 传统的数据中心网络架构通常基于二层(数据链路层)和三层(网络层)的分层设计,以VLAN技术为...