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

posted on 2019-10-02 23:58  绝对密位  阅读(2886)  评论(0编辑  收藏  举报

导航