For chinese version README, see README.md
.
中文文档请见README.md
。
VProxy Software Switch.
VPSS is a switch instead of a router, but it has SDN capabilities to filter and modify packets, and provides much more features than traditional l3 switches and routers.
- switching
- routing
- virtual networks and vlans
- remote switch (need to be used with vproxy)
- ipv6 (can be enabled or disabled)
- statistics
- mac and arp tables operations
- black/white list
- ratelimit
- custom flow table
- vpws-agent
- x86 machine (arm still in progress)
- linux based operating system
- kernel version at least 5.4. It's recommended to use 5.10 or higher.
- You can install ubuntu 20.04 hwe edge (5.11) or debian 11 (5.10).
- No need to configure your modem: keep it in router mode and enable dhcp. This is by default for home modems. VPSS will automatically configure the network with dhcp, and use its SDN capabilities to perform routing functions.
Docker is required:
apt-get update
apt-get install -y docker.io
Copy the script and run:
bash ./install.sh
vpss
should be put between the router and your devices:
+--------+ +------+ +----+ +-------+
| Router |----| VPSS |----+-----| AP |·))) (((·| Phone |
+--------+ +------+ | +----+ +-------+
or modem | bridge
in router |
mode | +----+
+-----| PC |
+----+
You will need a switch that supports VLAN.
+--------+ +------+ +----+ +-------+
| Router |-------------+ | VPSS | +-------------| AP |·))) (((·| Phone |
+--------+ | +------+ | +----+ +-------+
or modem vlan101 | nvlan101 || | vlan 201 bridge
in router (access)| trunk || | (access)
mode +---------------------------+ +----+
| VLAN Switch |-----------| PC |
+---------------------------+ +----+
vlan101 |
(access)|
|
admin
Note:
- In VLAN Switch: native VLAN of the port to VPSS should be set to the
Router
vlan (in this example:101
) - In VPSS: VLAN settings should be manually configured
- The first time you launch vpss, you will need to connect to the admin port, and manually set your device's ip to
100.118.103.118
and mask to/31
or255.255.255.254
(in some os, you will need to set the mask to/28
or255.255.255.240
because it treats100.118.103.119
as broadcast address instead of two hosts network).
On your device, visit http://vgw.special.vproxy.io
or http://100.118.103.119
in your browser.
If it's the first time you visit the system, use username admin
and any password you would like to set to login into the system. The password will be persisted and you will need to use this password for the next time. You may change the password after logging-in.
After configuring, remember to check and persist the configuration otherwise it will be lost after rebooting.
VPSS itself is a switch, so it must be careful when using with switches not to connect the ports of VPSS in the same VLAN to ports of switch in the same VLAN, otherwise it will trigger broadcast storm.
It's important to note that, VPSS uses DHCP to automatically configure the network when launching, it will add all managed ports registered in configuration file (or all physical ports if no config or no managed ports registered) to the same virtual network, and transmitted packets will not carry 802.1q tags.
As a result, on switches supporting VLAN, you must configure native VLAN on the port for VPSS to access the DHCP server (usually your router/modem), and ensure that other ports for VPSS disable native VLAN or are configured to another native VLAN, to prevent broadcast storm.
This project is open source under GPLv2
And includes the source code or binary of the following open source projects:
- vproxy
- jquery
- chartjs
- semantic ui
- vue, vue-i18n, vue-resource
- js-cookie
- noto
See doc/en/develop.md