3 changed files with 90 additions and 14 deletions
@ -0,0 +1,57 @@ |
|||||
|
<?php |
||||
|
require_once __DIR__ . '/../vendor/autoload.php'; |
||||
|
|
||||
|
error_reporting(E_ALL); |
||||
|
|
||||
|
use \RouterOS\Config; |
||||
|
use \RouterOS\Client; |
||||
|
use \RouterOS\Query; |
||||
|
|
||||
|
// Create config object with parameters
|
||||
|
$config = |
||||
|
(new Config()) |
||||
|
->set('host', '192.168.5.1') |
||||
|
->set('pass', 'admin') |
||||
|
->set('user', 'admin') |
||||
|
->set('legacy', true); |
||||
|
|
||||
|
// Initiate client with config object
|
||||
|
$client = new Client($config); |
||||
|
|
||||
|
/* |
||||
|
* Create VLAN 100 on 3-8 ports |
||||
|
* 200 on 9-16 |
||||
|
* 300 on 17-24 |
||||
|
*/ |
||||
|
$vlans = [ |
||||
|
100 => [3, 4, 5, 6, 7, 8], |
||||
|
200 => [9, 10, 11, 12, 13, 14, 15, 16], |
||||
|
300 => [17, 18, 19, 20, 21, 22, 23, 24], |
||||
|
]; |
||||
|
|
||||
|
// Run commands for each vlan
|
||||
|
foreach ($vlans as $vlanId => $ports) { |
||||
|
|
||||
|
// Add bridges
|
||||
|
$query = new Query('/interface/bridge/add'); |
||||
|
$query->add("=name=vlan$vlanId-bridge")->add('vlan-filtering=no'); |
||||
|
$response = $client->write($query)->read(); |
||||
|
print_r($response); |
||||
|
|
||||
|
// Add ports to bridge
|
||||
|
foreach ($ports as $port) { |
||||
|
$bridgePort = new Query('/interface/bridge/port/add'); |
||||
|
$bridgePort->add("=bridge=vlan$vlanId-bridge")->add("=pvid=$vlanId")->add("=interface=ether$port"); |
||||
|
$response = $client->write($bridgePort)->read(); |
||||
|
print_r($response); |
||||
|
} |
||||
|
|
||||
|
// Add untaged ports to bridge with tagging
|
||||
|
foreach ($ports as $port) { |
||||
|
$vlan = new Query('/interface/bridge/vlan/add'); |
||||
|
$vlan->add("=bridge=vlan$vlanId-bridge")->add("=untagged=ether$port")->add("=vlan-ids=5"); |
||||
|
$response = $client->write($vlan)->read(false); |
||||
|
print_r($response); |
||||
|
} |
||||
|
|
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue