mirror of
https://github.com/luscis/openlan.git
synced 2025-10-05 16:47:11 +08:00
68 lines
1.5 KiB
Bash
Executable File
68 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
## Load configuration.
|
|
cfg="eth0.cfg"
|
|
if [ $# -ge 1 ]; then
|
|
cfg="$1"
|
|
shift
|
|
fi
|
|
if [ -e "$cfg" ]; then
|
|
. $cfg
|
|
fi
|
|
|
|
## Check enviroment.
|
|
if [ -z "$PHY" ] || [ -z "$ADDR" ] || [ -z "$PREFIX" ]; then
|
|
echo "Variable(PHY|ADDR|PREFIX) is NULL"
|
|
exit
|
|
fi
|
|
|
|
yum install bridge-utils -y
|
|
|
|
## Set variable
|
|
phy="$PHY"
|
|
addr="$ADDR"
|
|
prefix="$PREFIX"
|
|
br=br-"$PHY"
|
|
gw="$GATEWAY"
|
|
dns1="$DNS1"
|
|
|
|
## Configure script
|
|
brCfg=/etc/sysconfig/network-scripts/ifcfg-"$br"
|
|
phyCfg=/etc/sysconfig/network-scripts/ifcfg-"$phy"
|
|
|
|
## Generate bridge configure
|
|
echo "## Generate by OpenLAN project" > $brCfg
|
|
echo "STP=\"yes\"" >> $brCfg
|
|
echo "DELAY=\"2\"" >> $brCfg
|
|
echo "TYPE=\"Bridge\"" >> $brCfg
|
|
echo "NAME=\"$br\"" >> $brCfg
|
|
echo "DEVICE=\"$br\"" >> $brCfg
|
|
echo "BOOTPROTO=\"none\"" >> $brCfg
|
|
if [ -n "$addr" ]; then
|
|
echo "IPADDR=\"$addr\"" >> $brCfg
|
|
fi
|
|
if [ -n "$prefix" ]; then
|
|
echo "PREFIX=\"$prefix\"" >> $brCfg
|
|
fi
|
|
if [ -n "$gw" ]; then
|
|
echo "GATEWAY=\"$gw\"" >> $brCfg
|
|
fi
|
|
if [ -n "$dns1" ]; then
|
|
echo "DNS1=\"$dns1\"" >> $brCfg
|
|
fi
|
|
echo "ONBOOT=\"yes\"" >> $brCfg
|
|
echo "NM_CONTROLLED=\"no\"" >> $brCfg
|
|
|
|
## Generate physical configure
|
|
echo "## Generate by OpenLAN project" > $phyCfg
|
|
echo "TYPE=\"Ethernet\"" >> $phyCfg
|
|
echo "NAME=\"$phy\"" >> $phyCfg
|
|
echo "DEVICE=\"$phy\"" >> $phyCfg
|
|
echo "BOOTPROTO=\"none\"" >> $phyCfg
|
|
echo "ONBOOT=\"yes\"" >> $phyCfg
|
|
echo "NM_CONTROLLED=\"no\"" >> $phyCfg
|
|
echo "BRIDGE=\"$br\"" >> $phyCfg
|
|
echo "BRIDGING_OPTS=\"path_cost=4\"" >> $phyCfg # 4: 1G, 2: 10G, 19: 100Mb and 100: 1Mb.
|
|
|
|
ifdown "$br"; ifdown "$phy"; ifup "$br"; ifup "$phy";
|