Skip to content

Latest commit

 

History

History
128 lines (89 loc) · 4.49 KB

README.md

File metadata and controls

128 lines (89 loc) · 4.49 KB

vpss

For english version README, see README_EN.md.

VProxy软件交换机。

VPSS是一个交换机而非路由器,但它通过SDN能力过滤并修改数据包,以此提供比传统三层交换机和路由器更多的功能。

一、支持的功能

  1. 交换
  2. 路由
  3. 虚拟网络和VLAN
  4. 远端交换机(需要配合vproxy使用)
  5. ipv6 (可开启或关闭)
  6. 统计数据
  7. 操作mac/arp表
  8. 黑/白名单
  9. 流控
  10. 自定义流表
  11. vpws-agent

二、配置安装

2.1 硬件和操作系统

  1. x86机器
  2. linux操作系统
  3. 内核版本最低5.4。推荐使用5.10或者更高.
  1. 你可以使用 ubuntu 20.04 hwe edge (5.11) 或者 debian 11 (5.10)。
  2. 无需配置你的光猫:使用路由模式并开启DHCP。这也是家用光猫默认的配置。VPSS会通过dhcp自动配置网络,并使用SDN能力来完成路由功能。

2.2 软件

需要安装Docker:

apt-get update
apt-get install -y docker.io

2.3 安装

复制并执行该脚本:

bash ./install.sh

这里你可以直接给脚本传参,以定义vpss的启动参数,例如--ignore-network-interfaces=enp3s0

三、网络拓扑

3.1 如果你的机器有两个或者更多的网口

需要将vpss放在路由器和你的设备之间:

+--------+    +------+          +----+          +-------+
| Router |----| VPSS |----+-----| AP |·)))  (((·| Phone |
+--------+    +------+    |     +----+          +-------+
 or modem                 |     bridge
 in router                |
 mode                     |     +----+
                          +-----| PC |
                                +----+

3.2 如果你的机器只有一个网口

你需要一个支持VLAN的交换机:

+--------+                      +------+                     +----+          +-------+
| Router |-------------+        | VPSS |       +-------------| AP |·)))  (((·| Phone |
+--------+             |        +------+       |             +----+          +-------+
 or modem      vlan101 |  nvlan101 ||          | vlan 201    bridge
 in router     (access)|     trunk ||          | (access)
 mode                +---------------------------+           +----+
                     |        VLAN Switch        |-----------| PC |
                     +---------------------------+           +----+
               vlan101 |
               (access)|
                       |
                     admin

注意:

  1. 在VLAN交换机上:连接VPSS的端口的本征VLAN需要设置为Router所在的vlan(这个例子里vlan是101
  2. 在VPSS上:你需要手动配置VLAN
  3. 第一次启动VPSS后,你需要连接admin网口,并手动配置你的设备的IP为100.118.103.118,并配置子网掩码为/31或者255.255.255.254(对于某些操作系统,你需要配置子网掩码为/28或者255.255.255.240,因为它可能认为100.118.103.119是广播地址而不是two hosts网络)。

四、配置网络

在你的设备上,使用浏览器访问http://vgw.special.vproxy.io或者http://100.118.103.119

如果你第一次访问该系统,你需要使用admin作为用户名,并使用你希望设置的密码进入系统。这次登录输入的密码会被记录并且后续登录时均需要使用该密码。进入系统后也可以重新设置密码。

配置完成后,不要忘记检查并持久化配置,否则重启后配置会丢失。

五、注意事项

5.1 配合交换机使用

由于VPSS也是一个交换机,所以需要特别注意,不能将两个VPSS的同VLAN的端口同时连接到同一个交换机的同一个VLAN上,否则会触发广播风暴。

这里要注意的是,在VPSS启动时,会通过DHCP自动获取网络配置,此时会将所有配置文件中受管控的端口加入同一个虚拟网络(如果没有配置文件或者没有受管控的端口,那么所有可用的物理端口均会被加入虚拟网络),并且此时报文不带802.1q tag。
所以,在支持VLAN的交换机上,必须给VPSS通往DHCP服务器(通常来说就是路由器/光猫)的端口配置本征VLAN,并且保证连接到同一交换机的其他端口不允许非802.1q报文,或者配置不同的本征VLAN,以避免广播风暴。

六、开源协议

本项目使用GPLv2开源。

并通过源代码或二进制依赖如下开源项目:

  1. vproxy
  2. jquery
  3. chartjs
  4. semantic ui
  5. vue, vue-i18n, vue-resource
  6. js-cookie
  7. noto

七、开发、编译、打包

请查看doc/develop.md