路由器开发知识汇总

ip route get <address>
/proc/net/nf_contrack,NAT操作只会修改回复方向(第二个)四元组。
QNX route get <address>

Windows IP = 0.0.0.0

1 路由器RoC
1.1 基本概念
路由器RoC(Router on a Chip)一般都会集成多口以太网switch。
连接到路由器的USB存储设备,一般通过ftp访问。

1.2 MT7628K eCos写MAC地址
ra0的MAC是读取0x0004、0x0006和0x0008三个寄存器。
假设MAC地址:00:0C:43:76:20:58
用USB2UART线进入eCos命令行后。
cd net
iwpriv ra0 e2p 04=0C00
iwpriv ra0 e2p 06=7643
iwpriv ra0 e2p 08=5820

1.3 MT7620
1)集成了6口以太网交换机(MT7530)。
2)MT7628K类似于MT7620,运行eCos,其中的WLAN模块,可以实现桥接功能,即AP-Client。
3)switch不支持为每一个port配置PVID,而是几个port配置为一个组,然后为这个组内的端口配置公用的PVID,PVID的默认值为1。
4)片上总线包括Pbus (Peripheral bus) 和Rbus (Ralink bus)。
5)USB设备IP使用CAST CUSB2,CAST 8051 and USB core come from Poland Evatronix SA(OTG 3.0 spec),Evatronix SA was acquired by Cadence in 2013。
6)MT7620的EHCI和OHCI是2个平台设备。
ETH: 0x1010_0000
SPH EHCI: 0x101c_0000
SPH OHCI: 0x101c_1000
https://github.com/hynnet/openwrt-mt7620
7) Refer to page248 2.19.6.2 ACL Rule Table of MT7620_ProgrammingGuide.pdf.
ACL包解析器一般将MAC帧分割成每两个字节为一组送入ACL查找表,根据定义好的两字节偏移格式类型和两字节偏移进行匹配,一旦命中就输出index,index再送入action表。
8) Refer to page29 of MT7620datasheet.pdf for Reverse RGMII.

2 无线路由器当无线交换机使用方法
2.1 交换芯片对应的网络节点
1)eth0.1是VLAN1分出的LAN口
2)eth0.2是VLAN2分出的WAN口
3)无线路由器的br-lan = eth0.1 + ra0,即将有线LAN口和WLAN桥接组成一个新的LAN

2.2 无线路由器配置成无线交换机
1)外部网线连到4个LAN口中的一个,IE登陆路由器后,禁止DHCP服务
2)其它设备搜索WLAN信号,输入用户名密码

3 Linux DSA
Linux交换机驱动目录:
drivers/net/dsa
net/dsa/slave.c
dsa_slave_create()

4 NAT
4.1 iptables static NAT
PREROUTING:DNAT专用。
POSTROUTING:SNAT专用。
MASQUERADE:SNAT转换时,如果--to-source的地址经常变化,那么就无法在iptables命令中固定,譬如路由器WAN口上的IP地址,内网设备通过WAN口访问外网时,只要指定使用MASQUERADE参数,iptables就会统一将内网设备的IP地址替换为路由器WAN口的IP地址。
Figure 4-1 NAT chain

eth0: 192.168.0.99
eth1: 192.168.5.99

# client -> eth1 -> eth0 -> server
iptables -t nat -A PREROUTING -d 192.168.5.99 -i eth1 -j DNAT --to-destination 192.168.0.99
# client -> eth0 -> eth1 -> server
iptables -t nat -A POSTROUTING -s 192.168.0.99 -o eth1 -j SNAT --to-source 192.168.5.99
echo 1 > /proc/sys/net/ipv4/ip_forward

Android TCP Server: busybox nc -lvz -s 192.168.0.99 -p 8001
Windows SocketTool

4.2 硬件NAT
参考AR8327N(N表示支持硬件NAT)page 50的NAT Entry Table,NAT有32个entries,每个entry的长度是80 bits。表编辑控制寄存器是Entry Edit Control Register。

iptables FORWARD对接net_device_ops中的函数指针ndo_flow_offload实现HNAT。

AR8327N的VLAN Table访问控制寄存器是VTU_FUNC_REG0和VTU_FUNC_REG1。

4.3 Cone NAT and Symmetric NAT
4.3.1 NAT - NAPT - Cone NAT
只要是从同一个内部IP和port出来的包,无论目的地址是否相同,NAT都将它转换成同一个外部IP1和port1。同一个外部IP1和port1与无论目的地址是否相同形成了一个类似锥形的网络结构,也是这一名称的由来。

P2P原理:
[12th-May-2022]
1)2个局域网客户端连接公网服务器,服务器将client1的公网IP和port发送给客户端client2,同样服务器也将client2的公网IP和port发送给客户端client1。
2)然后client1发送数据给client2对应的公网IP和port,会失败,但是client1所在路由器的Cone NAT中包含了client1到client2公网IP和port的NAT session,接着client2也发送数据给client1对应的公网IP和port,因为client1所在路由器的Cone NAT已经包含了client1到client2公网IP和port的NAT session,所以这次client1可以收到client2的数据。
3)以上client1所在路由器的Cone NAT包含了2条NAT session,一条是client1到服务器,另外一条是client1到client2;同样client2所在路由器的Cone NAT也包含了2条NAT session,一条是client2到服务器,另外一条是client2到client1。
4)根据3的分析,client1或者client2访问2个外部地址,使用了同一个NAT源地址,所以这里的NAT类型是Cone NAT。
5) Linux NAT session numbers
/proc/net/ip_conntrack
/proc/sys/net/netfilter/nf_conntrack_max

4.3.2 NAT - NAPT - Symmetric NAT
Linux MASQUERADE在进行NAT转换时,会遵循两个原则:
尽量不去修改源端口,也就是说,IP伪装后的源端口尽可能保持不变。
更为重要的是,IP伪装后必须保证伪装后的源地址/端口与目标地址/端口(即所谓的socket)唯一。

5 MT7620 WiFi
5.1 物理层的组成
PLCP:Physical Layer Convergence Procedure,物理层汇聚子层
PMD:Physical Medium Dependent,物理媒介相关层;调制解调就是这一层

5.2 MRMC Concurrency
1)MRMC是multi-role multi-channel operation的缩写。
2)The WiLink8.0 supports the multi-channel operation as time division multiplexing (TDM)-based concurrency. Each role gets a portion of the air time. The core of the multi-role operation is the scheduler that decides on each given time what role should be activated, and protects the role that should be suspended before moving to a new role.
3)TI WLAN+SoftAP是单信道TDM并发。
4)Cypress WLAN+P2P采用不同的信道实现TDM并发。
5)Linux中每一个role叫做vif。

5.3 SRAM Table
1)WiFi AP MAC Search Table
- MT7620有256个entry,每个entry占用8个字节,保存一个Client的MAC地址和2个字节的属性。
- 256个entry保存256个Wireless Client MAC地址。
- 256个entry保存128个Wireless Client MAC地址和128个WCIDn_TX_RATE(仅仅占用每个entry的2个字节,高6个字节未使用)。
2)WiFi AP Beacon Table
- Linux kernel中每创建一个带有AP功能的vif(Multi BSSID Mode),驱动就会在Beacon Table中增加一个entry。
- 包括Beacon在内的管理帧通过3个发送队列之一的Tx0Q发送。

5.4 RT3070 4-way handshake
ap/ap_auth.c
ap/ap_assoc.c
ap/ap_wpa.c
1)AP和STA计算各自的PTK(Pairwise Transient Key),GTK(Group Temporal Key)由AP计算,并发送给STA。
2)AP和STA双方使用PTK对单播进行加密,使用GTK对组播进行加密。
3)PTK保存在Pairwise Key Table(offset 0x4000)中,GTK保存在Shared Key Table(offset 0x6C00)中。

5.5 MT7628K AP-Client
0) AP-Client is similar to an ethernet switch, without DHCP enabled.
[7th-May-2022]
DA/SA/BSSID, AP-Client + AP MAT core will do MAC Address Translation for DA, SA and BSSID, there are two BSSID, one is repeater, another is main router. MAT is an AP-Client core technology.
无线终端像手机、笔记本类的如果是通过中继设备(也可以叫副路由器)上网,他们的地址都会被中继设备替换为自身的MAC。
Refer to zhihu 消失的MAC地址。
Beacon packet has three MAC DA/SA/BSSID, DA is FF:FF:FF:FF:FF:FF, SA and BSSID are equal to AP BSSID.

1)APCLI模式保持了无线网络名称(SSID)的一致性,在公司园区或者其它公共场所,都需要保持无线网络名称的一致性。
2)APCLI使用了软件网桥功能,ra0和apcli0都attach到网桥br0上。
3)apcli0的MAC地址是在ra0的MAC地址基础上加1,并且ra0的MAC地址第6个字节也即是最右边那个字节必须是4的倍数。
4)Secondary router需要禁止DHCP功能,IP地址由上级路由器分配。

5.6 WDS
1)WDS模式保持了无线网络名称(SSID)的一致性,在公司园区或者其它公共场所,都需要保持无线网络名称的一致性。
2)Secondary router需要禁止DHCP功能,IP地址由上级路由器分配。
3)
WDS: DA/SA/TA/RA
Normal: DA/SA/BSSID

5.7 WiFi mesh
[14th-May-2022]
Role decision is based on BSSID and RSSI.
WiFi mesh不改变WiFi原来的3地址(DA/SA/BSSID)或者4地址(DA/SA/TA/RA)结构,而是将mesh header放置于WiFi Frame Body帧体的最前面,mesh payload is an ethernet frame。

6 debug
6.1 switch port mirror
Read my blog “以太网交换机EtherSwitch”。

6.2 iptables port mirror
1) Linux iptables TEE
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NETFILTER_XT_TARGET_TEE=m

# eth0 -> USB eth1 (192.168.2.5) -> Windows NIC (192.168.2.100)
iptables -A PREROUTING -t mangle -i eth0 -j TEE --gateway 192.168.2.100
iptables -A POSTROUTING -t mangle -o eth0 -j TEE --gateway 192.168.2.100

TEE复制报文时,同时替换复制报文的源和目的MAC地址分别到USB eth1和Windows NIC的MAC地址(组播MAC地址也被替换成了Windows NIC的MAC),IP地址不做替换,所以没有路由功能,报文止步于Windows NIC。其缺点是阻碍了原始数据包的快速通过。

2) Windows Tools
Netmon: uses LWF (Light-Weight Filter) NDIS driver
Wireshark: uses NPcap

Windows 10上,Netmon可以抓取所有TEE后的报文,而Wireshark不可以,必须要用SocketTool或者其它工具监听对应的IP和port,才能够抓到相应的报文。

7 Abbreviations
ADSL: BCM6338
DSA:Linux Distributed Switch Architecture
gsw:Mediatek Gigabit Switch
IOS: Cisco Internetwork Operating System, Apple iOS got Cisco IOS authorization
IPQ:Internet Processor Qualcomm,采用Snapdragon ARM架构的路由器SoC
LuCI: OpenWRT Lua Configuration Interface
MIPS 24KEc:K表示1000,E表示expanded-precision,也即是具有DSP指令,c表示core
mtk_esw:Ralink Fast Ethernet Embedded Switch
NAPT:Network Address and Port Translation
nftables: netfilter tables
OpenWRT:Wireless RouTer
promiscuous: sniff mode
QCA:Qualcomm Atheros,一般都是MIPS架构
RTMP: Ralink Technology Miniport
vif:Linux WLAN Virtual Interface

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2022年12月15日星期四 1 华为MPLS基础知识培训教程 华为MPLS基础知识培训教程全文共37页,当前为第1页。 前言 基于MPLS(多协议标签交换技术),开发此课程。 本课程旨在了解MPLS技术的基础知识,理解MPLS在MSTP传输网络中的实际应用。 Page 2 华为MPLS基础知识培训教程全文共37页,当前为第2页。 学习指南 本课程的重点是MPLS的技术细节和工作原理。 本课程的难点是理解MPLS在MSTP传输网络中的实际应用。 Page 3 华为MPLS基础知识培训教程全文共37页,当前为第3页。 参考资料 MPLS基础原理知识 MPLS L2 VPN原理知识 数据单板开局指导书 Page 4 华为MPLS基础知识培训教程全文共37页,当前为第4页。 课程目标 学习完此课程,您应能: 了解MPLS的概念和发展由来 理解MPLS的技术细节和工作原理 理解MPLS在传输网络中的实际应用 Page 5 华为MPLS基础知识培训教程全文共37页,当前为第5页。 内容介绍 MPLS简介 MPLS技术细节和工作原理 MPLS的实际应用 Page 6 华为MPLS基础知识培训教程全文共37页,当前为第6页。 MPLS MPLS——Multi-Protocol Label Switching Multi-Protocol:支持多种三层协议,如IP、IPv6、IPX等,它通常处于二层和三层之间,俗称2.5层。 Label:是一种短的、等长的、易于处理的、不包含拓扑信息、只具有局部意义的信息内容。 Switching: MPLS报文交换和转发是基于标签的。针对IP业务,IP包在进入MPLS网络时,入口的路由器分析IP包的内容并且为这些IP包选择合适的标签,然后所有MPLS网络中节点都是依据这个简短标签来作为转发依据。当该IP包最终离开MPLS网络时,标签被出口的边缘路由器分离。 Page 7 华为MPLS基础知识培训教程全文共37页,当前为第7页。 起源:为了将IP与ATM结合 面向无连接的控制平面 面向无连接的转发平面 IP 面向连接的控制平面 面向连接的转发平面 ATM 面向无连接的控制平面 面向连接的转发平面 MPLS Page 8 华为MPLS基础知识培训教程全文共37页,当前为第8页。 传统IP转发 每一跳分析IP头,效率低 QoS难于部署,而且效率低 所有路由器都要知道整个网络的所有路由 分析IP头 映射到下一跳 分析IP头 映射到下一跳 分析IP头 映射到下一跳 Page 9 华为MPLS基础知识培训教程全文共37页,当前为第9页。 ATM的交换过程 面向连接,有N2 问题 靠链路层选路,基于VPI/VCI或标签 业务质量有保证,可保证实时业务 虚通路连接 (VCC) 虚通道连接(VPC) VP交换 VC交换 VC交换 NNI NNI VPI = 2VCI = 44 VPI = 1VCI = 1 VPI = 26VCI = 44 VPI = 20VCI = 30 UNI UNI Page 10 华为MPLS基础知识培训教程全文共37页,当前为第10页。 结合ATM与IP优点的技术 Layer 3 路由 -- 可伸缩性和灵活性 Layer 2 交换 -- 高可靠性和流量工程管理 + X R = X Router ATM switch MPLS Router MPLS——多协议标签交换 Page 11 华为MPLS基础知识培训教程全文共37页,当前为第11页。 MPLS基本概念 LSR:Label Switch Router LER:Label Edge Router LSP:Label Switch Path LER LER LER LER LSR LSR LSR MPLS域 IP MPLS LSP Page 12 华为MPLS基础知识培训教程全文共37页,当前为第12页。 MPLS 基本工作过程 Core LSR IP IP L1 IP L2 IP L3 IP 传统IP转发 传统IP转发 标签转发 边缘LSR 边缘LSR Page 13 华为MPLS基础知识培训教程全文共37页,当前为第13页。 MPLS的优点 以短的、固定长度的标签代替IP头作为转发依据,提高转发速度 IP与ATM更好地结合 提供增值业务,同时不损害效率: VPN 流量工程 QOS Page 14 华为MPLS基础知识培训教程全文共37页,当前为第14页。 为什么使用MPLS MPLS 结合了网络层的灵活连接和可扩展性,以及ATM的标签转发的可靠传输和QoS 支持多种标准的路由协议,如BGP、OSPF 支持多种标签生成协议,如LDP、RSVP 支持多种网络层协议,包括IPv4、IPv6、IPX等 有效解决QoS问题 具有标签转发的高性能 支持二层

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值