Linux上VLAN的创建

注明:以下内容来自于我对这篇博客的理解 来自于大佬:FromScratch

https://www.cnblogs.com/justart/p/7944256.html

好不容易找到了篇好文章,非常感谢

估计是先入为主的原因导致我还是以思科交换机的方式理解Linux上的vlan(虽然我之前玩的是锐捷的设备)

我的测试环境是两台电脑

GE60 (Kali) 使用KVM虚拟两台虚拟机(archlinux)

GE62 (archlinux)使用KVM虚拟两台虚拟机(archlinux)

网络管理软件都用的NetworkManager和iptables

一台5口非网管二层交换机(貌似还不支持自动翻转,害得我又重新做交叉线去了,网线越来越短了。。。)

以一台电脑为例(因为两台电脑配置过程一样,额 可能起名不一样 无所谓啦)

首先我有个物理网卡,接口名eth0

我要把它当二层交换机用 我自己的电脑也要上网的啊 那么就虚拟个网卡然后接到上面

1、new一个虚拟网卡(网桥)

nmcli con add type bridge con-name br0 ifname br0

2、new一个以太网接口做交换机用,并把刚new的虚拟网卡绑上去,这里的接口用物理网卡的接口eth0

nmcli con add type bridge-slave con-name switcher ifname eth0 master br0

我的交换机接的路由器,这个交换机貌似不支持自动翻转,用直通线我eth0也能获到路由器分到的IP,而且因为这俩mac地址一样

获取到的IP也是一样的  于是  不能上网了 换了交叉线就好了(貌似把ipv4.method设置成disabled就可以了。。。)

我要吐槽:电信光猫给的网线就是垃圾(联通你也是)插上之后连接速度居然10M/s 本以为是水晶头有问题 铰开一看简直就是三类线 颜色我都分不清 而且根本不缠绕 橙白绿白棕白蓝白都一个色 我淘宝买俩网卡让店家给我送根线 店家还给我送个超五的线 那线粗的 要是长些双股做秋千都没问题

其实这里虚拟机就可以通过br0直接连到路由器那里了 不过这里没有划分vlan 所以继续

按照NetworkManager的操作顺序 其实也是先划lan然后再划v

3、new俩个虚拟网卡(网桥)给虚拟机用(我觉得这是俩vlan交换机)

参照他的博客是用的vconfig和brctl创建的网桥和vlan,然后我重启之后都木有了。。。

于是按照brctl的创建结果用NetworkManager创建 这样就能存下来了

nmcli con add type bridge con-name brvlan10 ifname brvlan10 ipv4.method disabled ipv6.method link-local
nmcli con add type bridge con-name brvlan20 ifname brvlan20 ipv4.method disabled ipv6.method link-local

我也不知道为啥ipv6要搞成这个 brctl的创建结果就是这 我也就这么写了

4、new一个vlan并划给刚创建的虚拟网卡用 vlan10 和 vlan20

con-name咋写都行;dev我选的是我的物理网卡;id后面跟vlan-id;master后面跟绑在哪个网卡上;

nmcli con add type vlan con-name eth0.10 dev eth0 id 10 master brvlan10

nmcli con add type vlan con-name eth0.20 dev eth0 id 20 master brvlan20

弄完之后就会出现俩个新设备eth0.10 eth0.20 然后我想起了路由器的虚拟接口和单臂路由

感觉这两步就相当于

int f0/0.1

encapsulation dot1Q 10

这个感觉 总想往上配ip啊 还想no shut一下 emmm...

5、看看都启动了没有

nmcli con show

NetworkManager最大的好处就是通过颜色可以看到当前连接的活动状态

绿色表示连接已建立

黄色表示正在获取地址

白色表示连接已断开

之前没设置ipv4.method为disabled 于是连接黄了一会就白了 根本up不起来

这里只用看四个 brvlan10 brvlan20 eth0.10 eth0.20 其他的不用管。。。

额 我还是说一下把

docker0和docker_gwbridge是安装docker的时候它自己创建的 前者是容器上网用的 后者是docker集群用的 我没有集群 但也懒得管

switcher是虚拟交换机,就是把网卡当交换机用了,电脑上网就用虚拟出来的br0,ip要配在br0上

vroute0和vroute1是我虚拟出来的俩网卡,给虚拟机用,前者是nat出去,后者是本机网络

不用kvm创建网络是因为它会改我的防火墙策略,每次开机都要恢复一次(弄得现在养成习惯了,开机先恢复防火墙策略)

vnet0和vnet1是虚拟机的接口

另一台电脑也是相同的配置

一共四台虚拟机

GE60上 arch70(brvlan10:192.168.0.2) arch71(brvlan20:192.168.0.3)

GE62上 arch66(brvlan10:192.168.0.4) arch67(brvlan20:192.168.0.5)

这个网络没有网关

实验结果

arch70和arch66是互通的

arch71和arch67是互通的

arch70和arch71不通

arch66和arch67不通

如果设置了防火墙要注意把brvlan10和brvlan20放通

这是iptables的配置

注意是filter表 nat表不用管 额 nat表里面貌似没有forward链。。。

-A FORWARD -i brvlan10 -j ACCEPT

-A FORWARD -o brvlan10 -j ACCEPT

-A FORWARD -i brvlan20 -j ACCEPT

-A FORWARD -o brvlan20 -j ACCEPT

KVM开虚拟机貌似就是把网卡加到网桥里了

brctl addif brvlan10 vnet0
brctl addif brvlan20 vnet1

这个感觉就像

int f0/1

switchport access vlan 10

原文地址:https://www.cnblogs.com/panther1942/p/11618829.html

时间: 2024-10-29 18:26:47

Linux上VLAN的创建的相关文章

如何用golang获取linux上文件的创建/修改时间

在linux上想获取文件的元信息,我们需要使用系统调用lstat或者stat. 在golang的os包里已经把stat封装成了Stat函数,使用它比使用syscall要方便不少. 这是os.Stat的原型: func Stat(name string) (FileInfo, error) Stat returns a FileInfo describing the named file. If there is an error, it will be of type *PathError. 返

在Linux上使用cmake创建CodeBlocks工程

最近在linux上使用cmake,对于使用GUI习惯的还真不能适应,真是想尽一切办法把原来使用cmake的工程创建成CodeBlocks工程.工程小了还能接受,工程大了太麻烦了. 看了一下cmake的官方文档从2.2.8以后的版本可以直接使用命令生成codeblocks工程,我的小心脏啊...不过相关文章不太多,可能有我这想法的也不太多,一般使用CMake的都是高手了,不会再这么倒腾,废话不多说了,下面直接从最简单的工程开始吧. 因为cmake官方建议使用外部编译,我们最好也用外部编译.新建一个

Oracle 11g在Linux上的安装

Oracle 11g在Linux上的安装 创建所需用户和组 vim mk_user.sh groupadd -g 501 oinstallgroupadd -g 502 dbagroupadd -g 503 operuseradd -u 501 -g oinstall -G dba,oper oracle sh mk_user.sh 创建所需的目录vim mk_dir.sh mkdir -p /u01/app/oraInventorychmod -R 775 /u01/app/oraInvent

怎么使用Python和Flask在Linux上创建应用

无论你在linux上娱乐还是工作,这对你而言都是一个使用python来编程的很好的机会,也是一个从零基础开始学习python开发(http://www.maiziedu.com/course/python/)的一个好机会,pyhon学起来很有趣且在实际的应用如yum包管理器中很有用. 给大家分享一个关于很赞的教程贴,本篇教程会带你使用python和一个称为flask的微型框架来构建一个简单的应用,来显示诸如每个进程的内存使用,CPU百分比之类有用的信息. 前置需求 Python基础.列表.类.函

ASP.NET Core MVC 在linux上的创建及发布

前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲试,准备搞一下ASP.NET Core mvc的创建和部署,于是便有了这篇文章,希望能够帮助到你. 环境准备 这是我的开发环境,使用的nginx是nginx 1.6.3 直接yum install,然后需要安装dotnet环境,可以参照官网教程https://www.microsoft.com/ne

在LINUX上创建GIT服务器【转】

转自:http://blog.csdn.net/xiongmc/article/details/9176785 如果使用git的人数较少,可以使用下面的步骤快速部署一个git服务器环境. 1. Client生成 SSH 公钥,以便Server端识别. 每个需要使用git服务器的工程师,自己需要生成一个ssh公钥 进入自己的~/.ssh目录,看有没有用 文件名 和 文件名.pub 来命名的一对文件,这个 文件名 通常是 id_dsa 或者 id_rsa. .pub 文件是公钥,另一个文件是密钥.假

NET Core MVC 在linux上的创建及发布

NET Core MVC 在linux上的创建及发布 前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲试,准备搞一下ASP.NET Core mvc的创建和部署,于是便有了这篇文章,希望能够帮助到你. 环境准备 这是我的开发环境,使用的nginx是nginx 1.6.3 直接yum install,然后需要安装dotnet环境,可以参照官网教程h

So Easy! Oracle在Linux上的安装配置系列三使用create database创建数据库

本文为So Easy! Oracle在Linux上的安装配置系列的第三篇,使用create database创建数据库,本序列第一篇介绍了学习实验环境的搭建包括:在win 7中使用VMware Workstation 创建虚拟机,安装CentOS-6.6-x86_64,网络配置 和使用xshell连接远程linux服务器,上传Oracle软件和使用操作系统安装光盘搭建本地yum源,第二篇专门说了Oracle11g R2在CentOS6.6上的安装,包括Oracle安装前的准备工作,并以图文详细介

在Linux上创建webrev(cont)[基于svn]

在前文中,基于git介绍了webrev工具.实际上,webrev工具还支持hg和svn.最近的工作中不可避免地要使用svn,故在此总结一下如何基于svn在Linux上创建webrev.顺便吐个槽,没有网页版的代码比对,用svn diff简直就是刀耕火种茹毛饮血啊!技术再娴熟的老司机,也架不住让你在高速公路上开拖来机Orz! 以前工作上一直用版本管理工具Mercurial (命令为hg), 个人学习的话用Git, 但从来没用过Subversion (命令为svn等) .所以,下面的先简单介绍一下如