本篇分享 mtk7621 路由板的 vlan 参数配置、vlan 的 DHCP 地址池的参数配置。
原理简述
mtk7621A这款双核mips指令集芯片,内部集成 mt7530 硬交换芯片,0~5 端口都是mt7530口输出,该芯片自带PHY口,芯片MAC层管理是通过内部MDIO接口管理 mt7530 ,mt7530驱动中提供 vlan 的管理功能。
环境简介
- 硬交换
以 mtk7621 为主控芯片的路由器 vlan 属于二层硬交换、软路由应用; - 软交换
没有采用交换芯片、是通过linux内核bridge方式实现的vlan交换,称为软交换、软路由;
搞清楚他们之间的区别,自然就明白他们之间的特性。
请读者先回想一下vlan相关概念,如果有点模糊,可参考这篇 《vlan 原理详解》。
network 参数说明
openwrt 的网络参数配置文件,路径/etc/config/netwrok 文件,文件格式采用 配置节方法,配置命令采用uci set | get 方式。
config switch
option name 'switch0'
option reset '1'
option enable '1'
#打开 switch 交换功能,即使用 mt7530 交换芯片
config switch_vlan
option device ’switch0'
option vlan '0'
option ports " 0 1 2 3 6t"
option vid '0'
#port1、2、3口属于vlan 0;第6个口是 mtk7530 上联到mtk7621的 eth0 网口 truck 类型口。
config switch_vlan
option device ’switch0'
option vlan '1'
option ports "4 6t"
option vid '1'
#port4 口配置属于 vlan 1
config interface lan
option type bridge # 此网桥还负责桥接 无线WIFI通道,wifi也属于lan域。
option ifname eth0.0
# 把vlan 0 配置成lan口,即port0、1、2、3都属于lan 侧接口 。
option proto static
option ipaddr 192.168.0.168
option netmask 255.255.255.0
# lan 属性 interface 的地址、掩码和协议类型
option gateway 192.168.0.1
option dns 192.168.0.1
# lan 出口网关地址、DNS、NAT地址转换功能,lan侧具有上网功能。
config interface wan
option ifname eth0.1 #把vlan 1配置成wan口,即port4就是wan口。
option proto dhcp # wan 口是DHCP的客户端,即自动向上级路由获取IP地址
#也就是说 mtk7621 路由方案采用的是单臂路由模式,数据从port口 --> lan侧(网桥)到 eth0 进入linux内核协议栈;linux协议栈--> wan侧 --> port4 口进入网络;数据出、入都是由 mtk7621 的eth0 网口完成。
config switch_vlan
option device ’switch0'
option vlan '3'
option ports "0t 6t"
option vid '15'
#设置 vlan 15 采用 port0 端口,并打 vlan-tag 标识,即 port0 口也具有 truck 功能。
config interface vlan15 # 该 interface 名称为 vlan15
option ifname 'eth0.15' # 该 interface 采用的接口是vlan15,此处需重点理解
option proto 'static' # 接口采用静态协议
option ipaddr 172.118.0.10
option netmask 255.255.0.0
option dns '114.114.114.114' # ipv4 的 dns 服务器地址
OpenWRT的wifi部分配置及参数说明请读者浏览本人openWRT专栏中《wireless参数配置详解》。
通过vlan15的配置,我们可以对参数 如: 6t 、 0t 理解就更加具体,其实就是配置 交换机 port0 为 truck 属性的方法;物理意义就是 port0 可以属于lan侧的ACCESS端口、也是 truck 端口。在给 服务器网络提供服务时,一般如此使用。ACCESS口做服务器物理机常规网络口, vlan 的 truck 提供给虚拟机集群使用,通过DHCP为每台虚拟机提供 IP 地址管理能力。
DHCP 参数说明
本文采用的 dnsmasq 组件实现的 dns、dhcp功能,openwrt的 DHCP 参数配置文件/etc/config/dhcp,内容如下:
config dnsmasq #dnsmasq 参数配置
option domainneeded '1'
option boguspriv '1'
option filterwin2k '0'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option nonegcache '0'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.auto'
option nonwildcard '1'
option localservice '1'
config odhcpd 'odhcpd' #odhcpd 参数配置
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
config dhcp 'lan' # lan的 dhcp 配置,向主机提供DHCP服务
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv6 'server'
option ra 'server'
config dhcp 'wan' # wan 的 dhcp 配置
option interface 'wan'
option ignore '1' #忽略dhcp服务功能,wan口作为 DHCP 客户端
config dhcp 'vlan15' # interface vlan15 的 dhcp 配置
option interface 'vlan15'
option limit '150'
option leasetime '12h'
option force '1' #强制向端口提供 DHCP 服务功能
list dns '114.114.115.115' # 宣告 ipv6 的 dns 服务器
本文重点介绍如何给 vlan 端口配置 DHCP 地址池,主要步骤总结如下:
第一点, 建立 vlan 端口,确定端口属性 truck;
第二点, 建立 interface 接口,该接口的 ifname 属性绑定 vlan15 ;
第三点, 让该接口具有提供 DHCP 服务功能,即完成 vlan具有自动分配 ip 地址能力。