基于KSZ9897VLAN 虚拟WAN网络接口

目录

1:先看看高通的8327是如何虚拟网络接口

2: Linux 内核中选上802.1Q

3: 实际效果展示

4:配置使用



1:先看看高通的8327是如何虚拟网络接口


root@OpenWrt:~# cat /etc/config/wireless

config wifi-device 'wifi0'
        option type 'qcawifi'
        option macaddr '68:89:75:04:e9:c0'
        option hwmode '11ng'
        option htmode 'HT20'
        option channel '4'
        option txpower '0'

config wifi-iface
        option device 'wifi0'
        option mode 'ap'
        option ssid 'OpenWrttest'
        option network 'lan'
        option encryption 'psk2'
        option key '12345678'

config wifi-device 'wifi1'
        option type 'qcawifi'
        option channel 'auto'
        option macaddr '68:89:75:04:e9:c1'
        option hwmode '11ac'
        option disabled '1'

config wifi-iface
        option device 'wifi1'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

root@OpenWrt:~# ifconfig
ath0      Link encap:Ethernet  HWaddr 68:89:75:04:E9:C0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1099 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:158 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:244211 (238.4 KiB)  TX bytes:0 (0.0 B)

br-lan    Link encap:Ethernet  HWaddr 68:89:75:04:E9:BB
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6a89:75ff:fe04:e9bb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1480 errors:0 dropped:0 overruns:0 frame:0
          TX packets:919 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:246795 (241.0 KiB)  TX bytes:279067 (272.5 KiB)

eth0      Link encap:Ethernet  HWaddr 68:89:75:04:E9:BB
          inet6 addr: fe80::6a89:75ff:fe04:e9bb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1520 errors:0 dropped:74 overruns:0 frame:0
          TX packets:1505 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:392488 (383.2 KiB)  TX bytes:271968 (265.5 KiB)
          Interrupt:4

eth0.88   Link encap:Ethernet  HWaddr 68:89:75:04:E9:BB
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:380 errors:0 dropped:0 overruns:0 frame:0
          TX packets:732 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:42182 (41.1 KiB)  TX bytes:122441 (119.5 KiB)

eth0.99   Link encap:Ethernet  HWaddr 68:89:75:04:E9:BB
          inet addr:192.168.50.165  Bcast:192.168.50.255  Mask:255.255.255.0
          inet6 addr: fdac:5b71:2b57:0:6a89:75ff:fe04:e9bb/64 Scope:Global
          inet6 addr: fe80::6a89:75ff:fe04:e9bb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:988 errors:0 dropped:0 overruns:0 frame:0
          TX packets:766 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:305141 (297.9 KiB)  TX bytes:142917 (139.5 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wifi0     Link encap:UNSPEC  HWaddr 68-89-75-04-E9-C0-00-00-00-00-00-00-00-00-00-00
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4654 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2979 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:2699
          RX bytes:958592 (936.1 KiB)  TX bytes:841975 (822.2 KiB)
          Interrupt:47 Memory:b8100000-b8120000

root@OpenWrt:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.50.1    0.0.0.0         UG    0      0        0 eth0.99
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lan
192.168.50.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0.99
root@OpenWrt:~# cat /etc/config/network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'lan'
        option ifname 'eth0.88'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ieee1905managed '1'

config interface 'wan'
        option ifname 'eth0.99'
        option proto 'dhcp'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '44'
        option ports '0t 1 2 3 4'
        option vid '88'

config switch_vlan
        option device 'switch0'
        option vlan '55'
        option ports '0t 5'
        option vid '99'

在openwrt中,我们需要注意的是字段:option vid '99' 和 option vid '88',这个表示switch内部使用的VID是多少,跟option vlan '55'和option vlan '44'没有任何关系,个人觉得是VLAN的名称而已,可以任意设置.

2: Linux 内核中选上802.1Q

3: 实际效果展示

root@yachtsense-main:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.50.1    0.0.0.0         UG    10     0        0 eth0.99
192.168.50.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0.99
198.18.0.0      0.0.0.0         255.255.248.0   U     203    0        0 eth0
root@yachtsense-main:~# ping www.baidu.com
PING www.a.shifen.com (183.2.172.185) 56(84) bytes of data.
64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=1 ttl=50 time=9.04 ms
64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=2 ttl=50 time=8.90 ms
64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=3 ttl=50 time=8.90 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 6018ms
rtt min/avg/max/mdev = 8.904/8.953/9.047/0.101 ms
root@yachtsense-main:~# cat /etc/resolv.conf
nameserver 240e:1f:1:0:0:0:0:1 # IPV6 wwan0
nameserver 240e:1f:1:0:0:0:0:33 # IPV6 wwan0
nameserver 202.96.128.86
nameserver 202.96.134.133
root@yachtsense-main:~# ifconfig
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          UP NOARP  MTU:16  Metric:1
          RX packets:1865 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:14920 (14.5 KiB)  TX bytes:0 (0.0 B)
          Interrupt:191

eth0      Link encap:Ethernet  HWaddr 00:11:c7:11:10:88
          inet addr:198.18.2.99  Bcast:198.18.7.255  Mask:255.255.248.0
          inet6 addr: fe80::211:c7ff:fe11:1088/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1295 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1055 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:249867 (244.0 KiB)  TX bytes:416396 (406.6 KiB)

eth0.99   Link encap:Ethernet  HWaddr 00:11:c7:11:10:88
          inet addr:192.168.50.56  Bcast:192.168.50.255  Mask:255.255.255.0
          inet6 addr: fe80::211:c7ff:fe11:1088/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:242 errors:0 dropped:0 overruns:0 frame:0
          TX packets:123 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:30250 (29.5 KiB)  TX bytes:13675 (13.3 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:404308 errors:0 dropped:0 overruns:0 frame:0
          TX packets:404308 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:13561857 (12.9 MiB)  TX bytes:13561857 (12.9 MiB)

root@yachtsense-main:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.50.1    0.0.0.0         UG    10     0        0 eth0.99
192.168.50.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0.99
198.18.0.0      0.0.0.0         255.255.248.0   U     203    0        0 eth0
root@yachtsense-main:~# udhcpc -i eth0.99
udhcpc: started, v1.27.2
udhcpc: sending discover
udhcpc: sending select for 192.168.50.56
udhcpc: lease of 192.168.50.56 obtained, lease time 86400
/etc/udhcpc.d/50default: Adding DNS 192.168.50.1
root@yachtsense-main:~# cat /etc/resolv.conf
nameserver 192.168.50.1
root@yachtsense-main:~# ping www.baidu.com
PING www.a.shifen.com (183.2.172.42) 56(84) bytes of data.
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=1 ttl=50 time=7.90 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=2 ttl=50 time=7.84 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 5022ms
rtt min/avg/max/mdev = 7.844/7.875/7.906/0.031 ms
root@yachtsense-main:~#

4:配置使用

由于KSZ9897 有5个带phy的端口,在当前的项目中,5个port都是LAN口,即接到电脑下面的PC都从设备上面获取IP地址,即设备提供DHCP server 的功能。

目前希望将5个port中的任何一个用来做WAN口,使这个port作为设备的上行有线网络接口。此处我们使用port2

每一个端口使用一个bit来表示

All=0x7F, port2=0x2, port3=0x4, ports 2&3=0x6, port4=0x8, port5=0x10
port1 =0x01 sw0
port2 =0x02 sw1
port3 =0x04 sw2
port4 =0x08 sw3
port5 =0x10 sw4 

下面的port6和port7用来与主控CPU进行连接

port6 =0x20 
port7 =0x40 -

ifconfig eth0 up 
vconfig add eth0 99
iptables -t nat -A POSTROUTING -o eth0.99 -j MASQUERADE
cd /sys/devices/platform/30a40000.i2c/i2c-2/2-005f
echo 99 > sw1/1_vid
echo 1  > sw/vlan
echo 99 > sw/vlan_index
echo 0 > sw2/1_ingress
echo 99 > sw/vlan_fid
echo 0x42 > sw/vlan_ports
echo 0x2 > sw/vlan_untag
echo 0x1 > sw/vlan_valid
#==========================================			
echo 1  > sw/vlan
echo 8 > sw/vlan_index
echo 8 > sw/vlan_fid
echo 0x7D > sw/vlan_ports
echo 0x7D > sw/vlan_untag
echo 0x1 > sw/vlan_valid	
udhcpc -i eth0.99 &

上面的配置参考下面的资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/223718.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一篇文章带你详细了解C++智能指针

一篇文章带你详细了解C智能指针 为什么要有智能指针内存泄漏1.什么是内存泄漏,它的危害是什么2.内存泄漏的分类3.如何避免内存泄漏 智能指针的使用及原理1.RAII2.智能指针的原理3.auto_ptr4.unique_ptr5.shared_ptr6.weak_ptr 为什么要有智能指针 C引入智能指针的主…

flink源码分析之功能组件(四)-slot管理组件I

简介 本系列是flink源码分析的第二个系列,上一个《flink源码分析之集群与资源》分析集群与资源,本系列分析功能组件,kubeclient,rpc,心跳,高可用,slotpool,rest,metrics&…

从零开发短视频电商 Jmeter压测示例模板详解(无认证场景)

文章目录 添加线程组添加定时器添加HTTP请求默认值添加HTTP头管理添加HTTP请求添加结果断言响应断言 Response AssertionJSON断言 JSON Assertion持续时间断言 Duration Assertion 添加察看结果树添加聚合报告添加表格察看结果参考 以压测百度搜索为例 https://www.baidu.com/s…

[NAND Flash 2.2] NAND闪存及控制器的市场趋势 [2023]

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< 一、NAND闪存市场分析 据欧洲知名半导体分析机构Yole发布的报告显示&#xff0c;2020年起&#xff0c;NAND闪存市场发展趋势保持稳定…

【Angular开发】Angular中的高级组件

在这个博客中&#xff0c;我将解释Angular中的几个高级组件和机制&#xff0c;它们增强了灵活性、可重用性和性能。 通过熟悉这些高级组件和机制&#xff0c;您可以提高您的Angular开发技能&#xff0c;并在应用程序中利用灵活性、可重用性和性能优化的能力。让我们开始吧&…

使用dockerfile 构建自己的nacos-mysql

前言 在部署nacos的时候触发的脑袋灵光一闪&#xff0c;每次部署nacos都要部署下mysql服务器&#xff0c;然后导入sql语句&#xff0c;配置nacos配置文件&#xff0c;那有没有简单的方法实现一键部署nacos和nacos-mysql 呢? 答案是肯定&#xff01;如下目录图&#xff1a; …

ctfhub技能树_web_信息泄露

目录 二、信息泄露 2.1、目录遍历 2.2、Phpinfo 2.3、备份文件下载 2.3.1、网站源码 2.3.2、bak文件 2.3.3、vim缓存 2.3.4、.DS_Store 2.4、Git泄露 2.4.1、log 2.4.2、stash 2.4.3、index 2.5、SVN泄露 2.6、HG泄露 二、信息泄露 2.1、目录遍历 注&#xff1…

寻找峰值00

题目链接 寻找峰值 题目描述 注意点 数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即可对于所有有效的 i 都有 nums[i] ! nums[i 1]可以假设 nums[-1] nums[n] -∞ 解答思路 可以根据二分查找保证在O(log n)的时间复杂度找到峰…

数据中心的操作系统——kubernets

操作系统的功能和模块与 Kubernetes 的功能和模块做了一个对比&#xff1a; Kubernetes 作为数据中心的操作系统还是主要管理数据中心里面的四种硬件资源&#xff1a;CPU、内存、存储、网络。 对于 CPU 和内存这两种计算资源的管理&#xff0c;我们可以通过 Docker 技术完成。…

【数据分享】11个城市的出租车(网约车)数据(免费获取)

出租车&#xff08;网约车&#xff09;GPS数据是我们最常使用的交通大数据之一&#xff0c;但是出租车&#xff08;网约车&#xff09;GPS数据没有公开的获取渠道&#xff0c;有些学者可能能通过与相关机构合作拿到数据&#xff0c;但是对于绝大多数普通人是没有这个机会的&…

跳水比赛(C++)

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…

navicate16 2059 plugin http could not be loaded

plugin http could not be loaded 乱码 library path http.dll 今天新装一台机子的navicate遇到这个问题。 查了半天都是说 caching_sha2_password’的解决办法。 然后是咋解决的呢&#xff0c;真是丢脸 由于我是直接从浏览器复制下来的ip&#xff0c;所以虽然我只复制了ip地…

Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules。Android studio纯java代码报错

我使用java代码 构建项目&#xff0c;初始代码运行就会报错。我使用的是Android Studio Giraffe&#xff08;Adroid-studio-2022.3.1.18-windows&#xff09;。我在网上找的解决办法是删除重复的类&#xff0c;但这操作起来真的太麻烦了。 这是全部报错代码&#xff1a; Dupli…

QGraphicsView实现简易地图7『异步加载-多瓦片-无底图』

前文链接&#xff1a;QGraphicsView实现简易地图6『异步加载-单瓦片-无底图』 前一篇文章提到的异步单瓦片加载&#xff0c;是指线程每准备好一个瓦片数据后&#xff0c;立刻抛出信号让主线程加载。而本篇异步多瓦片加载是指线程准备好所有瓦片数据后&#xff0c;一起抛出信号让…

迅软DSE:为企业描绘安全蓝图,构建无忧网络办公天地

企业员工的不规范上网行为已成为管理人员面临的挑战&#xff0c;而利用上网行为管理软件则成为解决问题的最佳途径。 上网行为管理软件具备全面监控功能&#xff0c;可监控QQ、微信、电脑邮件、文件外发等行为&#xff0c;保证监控过程隐蔽而安全。通过实时屏幕监控功能&#…

[NAND Flash 2.3] 闪存芯片国产进程

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< 目录 前言1 闪存介质1.1 NOR 闪存国产技术发展1.2 NAND 闪存国产技术 2 闪存国产厂商与产品2.1 NOR FLASH 国产厂商与产品2.2 NAND FA…

【Redis】redis 高性能--线程模型以及epoll网络框架

目录 一.前言 二.多线程的弊端 2.1 锁的开销问题 2.2 多线程上下文切换带来的额外开销 2.3 多线程占用内存成本增高 三.基本IO模型与epoll 模式 3.1 基本IO模型 3.2 单线程处理机制 四.总结 一.前言 我们经常讨论到&#xff0c;redis 是单线程&#xff0c;那为什么单线…

玩弄GPTs:人人都会的Prompt模板

角色定义 分享一个自用的Prompt模板&#xff0c;只要学会了这个模板&#xff0c;当遇到新场景时&#xff0c;直接套用就行。 简单总结&#xff1a; 角色定义(Master)背景(Background)规则(rule)技能(skill)限制(constaints)工作流(workflow) 经过实际测试发现&#xff0c;这…

矩阵快速幂及应用实战[C/C++]

矩阵快速幂 矩阵快速幂可以用来优化递推问题&#xff0c;如状态机DP&#xff0c;需要一丢丢线性代数里面矩阵的概念&#xff0c;只需要知道简单的矩阵乘法&#xff0c;结合我们普通的二分快速幂就能很快的掌握矩阵快速幂。 问题引入 三步问题。有个小孩正在上楼梯&#xff0c;楼…

Axure RP免费版:详细信息抢先知道

Axure RP收费吗&#xff1f; 是的&#xff0c;AxureRP是一种收费的原型设计工具。它提供了两种选择&#xff1a;免费试用版和付费版。免费试用版可免费使用30天&#xff0c;功能与付费版相同&#xff0c;但导出时会有Axure水印&#xff0c;文件无法保存。付费版分为Pro版和Tea…