I'm trying to change linux bridge in openwrt with openvswitch, with I compile openwrt with openvswitch package for tp-link tlwr1043nd, it's done... the problem is when I delete the br-lan (linux brige) and replace it with openvswitch, it's always error and bricked
This is the script that I use to change to ovs :
I run this with ((/root/ovs-tplink.sh > /dev/null 2&>1)&)&
so that can be running in background,
#!/bin/sh
OVS_BR=ovslan
#IP Controller, Port for OvS Manager, Linux Bridge
IP_CONTROLLER=192.168.0.100
PORT_CONTROLLER=6633
LINUX_BRIDGE=br-lan
echo -e "\033[0;32m Declare Necessary Variable Successful"
# Add Bridge Open vSwitch
ovs-vsctl --may-exist add-br $OVS_BR
echo -e "\033[0;32m Add OvS Bridge $OVS_BR Succesful"
sleep 2
#Delete Port if added to $LINUX_BRIDGE
for i in eth0.1 eth0.2 eth0.3 eth0.4 eth0.5 eth0.6
do
brctl delif $LINUX_BRIDGE $i
echo -e "\033[0;32m Delete Port $i in $LINUX_BRIDGE successful"
sleep 1
done
# Add Port to Bridge
for i in eth0.1 eth0.2 eth0.3 eth0.4 eth0.5 eth0.6 wlan0
do
ovs-vsctl --may-exist add-port $OVS_BR $i
echo -e "\033[0;32m Add OvS Port $i to $OVS_BR successful"
sleep 1
done
# Up The Interface
for i in eth0.1 eth0.2 eth0.3 eth0.4 eth0.5 eth0.6 wlan0 ovslan
do
ifconfig $i up
echo -e "\033[0;32m Up interface $i"
sleep 1
done
#Set All Options Necessary for Controller
ovs-vsctl set bridge $OVS_BR stp_enable=true
echo -e "\033[0;32m Set STP Enabled True in $OVS_BR Successful"
sleep 1
ovs-vsctl set-controller $OVS_BR tcp:$IP_CONTROLLER:$PORT_CONTROLLER
echo -e "\033[0;32m Set IP:$IP_CONTROLLER as Controller in $OVS_BR and Successful"
sleep 1
ovs-vsctl set-fail-mode $OVS_BR standalone
echo -e "\033[0;32m Set Standalone Mode in $OVS_BR and Successful"
sleep 1
ovs-vsctl set bridge $OVS_BR protocols=OpenFlow13
echo -e "\033[0;32m Set OpenFlow Protocol to 1.3 in $OVS_BR Successful"
sleep 1
ovs-vsctl set-manager ptcp:6640
sleep 1
ovs-ofctl del-flows $OVS_BR
echo -e "\033[0;32m Delete Previous Flows in $OVS_BR and Successful"
sleep 1
echo -e "\033[0;32m Restart Network Service. . . . . . "
/etc/init.d/network restart
echo -e "\033[0;32m Restart Network Service Successful"
# Check Result
echo -e "\033[0;32m Result : "
ovs-vsctl show
echo " "
reboot
exit 0
And this is the network configuration in /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 globals 'globals'
option ula_prefix 'fded:6c7d:48c4::/48'
config interface 'lan'
option type 'bridge'
option ifname 'eth0.1 eth0.2 eth0.3 eth0.4 eth0.5 eth0.6'
option proto 'static'
option ipaddr '192.168.0.110'
option netmask '255.255.255.0'
option gateway '192.168.0.1'
config interface 'ovslan'
option ifname 'ovslan'
option proto 'static'
option ipaddr '192.168.0.111'
option netmask '255.255.255.0'
option gateway '192.168.0.1'
config interface 'eth0_1'
option ifname 'eth0.1'
option proto 'static'
config interface 'wan'
option ifname 'ovs-wan'
option proto 'dhcp'
config interface 'eth0_2'
option ifname 'eth0.2'
option proto 'dhcp'
config interface 'ovs1'
option proto 'static'
option ifname 'eth0.3'
option proto 'dhcp'
config interface 'ovs2'
option proto 'static'
option ifname 'eth0.4'
option proto 'dhcp'
config interface 'ovs3'
option proto 'static'
option ifname 'eth0.5'
option proto 'dhcp'
config interface 'ovs4'
option proto 'static'
option ifname 'eth0.6'
option proto 'dhcp'
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '0t 6'
option vid '1'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '0t 5'
option vid '2'
config switch_vlan
option device 'switch0'
option vlan '3'
option vid '3'
option ports '0t 4'
config switch_vlan
option device 'switch0'
option vlan '4'
option vid '4'
option ports '0t 3'
config switch_vlan
option device 'switch0'
option vlan '5'
option vid '5'
option ports '0t 2'
config switch_vlan
option device 'switch0'
option vlan '6'
option vid '6'
option ports '0t 1'
I use ovslan to give statistic IP when using openvswitch bridge, Please help me fix this everyone...
thanks for the answer...
[Solved]
The script is fine, just edit manually the lan configuration via ssh with nano
or vi
/etc/config/network
to be like this :
config interface 'lan'
#option type 'bridge' <= delete this
#option ifname 'eth0.1 eth0.2 eth0.3 eth0.4 eth0.5 eth0.6' <= edit
option ifname 'ovslan' <= add this
option proto 'static'
option ipaddr '192.168.0.110'
option netmask '255.255.255.0'
option gateway '192.168.0.1'
And then run the script above with ((/root/ovs-tplink.sh > /dev/null 2&>1)&)&
, wait, and check with ovs-vsctl show
Bassically We :
Add vlan in our network configuration in /etc/config/network
Disabe our firewall and DHCP Server, to use parent configuration in our network because we use openvswitch ( We set Up a dump ap router)
Delete br-lan like above (delete option type 'bridge'
), rename ifname with ovs bridge you like
Run the script above :
The script basically tell to :
In this case, I use OpenWRT in TP-Link TL-WR1043nd v4, I think this same in v3 or v2, Thanks everyone,