initial
commit
cc7b1c7542
|
@ -0,0 +1,14 @@
|
||||||
|
FROM scratch
|
||||||
|
# ADD https://downloads.openwrt.org/releases/19.07.1/targets/x86/64/openwrt-19.07.1-x86-64-generic-rootfs.tar.gz \
|
||||||
|
ADD openwrt-19.07.1-x86-64-generic-rootfs.tar.gz /
|
||||||
|
RUN mkdir -p /var/lock
|
||||||
|
RUN opkg update && \
|
||||||
|
opkg install luci \
|
||||||
|
wpa-supplicant \
|
||||||
|
hostapd \
|
||||||
|
iw-full \
|
||||||
|
kmod-mac80211 \
|
||||||
|
iperf3
|
||||||
|
ADD network /etc/config/network
|
||||||
|
ADD wireless /etc/config/wireless
|
||||||
|
CMD [ "/sbin/init" ]
|
|
@ -0,0 +1,13 @@
|
||||||
|
config interface 'loopback'
|
||||||
|
option ifname 'lo'
|
||||||
|
option proto 'static'
|
||||||
|
option ipaddr '127.0.0.1'
|
||||||
|
option netmask '255.0.0.0'
|
||||||
|
|
||||||
|
config interface 'lan'
|
||||||
|
option type 'bridge'
|
||||||
|
option ifname 'eth0 wlan0'
|
||||||
|
option proto 'static'
|
||||||
|
option ipaddr '172.17.0.2'
|
||||||
|
option gateway '172.17.0.1'
|
||||||
|
option netmask '255.255.0.0'
|
|
@ -0,0 +1,47 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
CONTAINER='openwrt_1'
|
||||||
|
IFACE=$1
|
||||||
|
PHY=$(cat /sys/class/net/$IFACE/phy80211/name) || { echo "interface $IFACE not found"; exit 1; }
|
||||||
|
|
||||||
|
function _get_dev_from_phy {
|
||||||
|
for dev in /sys/class/net/*; do
|
||||||
|
test -f $dev/phy80211/name && phy=$(cat $dev/phy80211/name 2>/dev/null)
|
||||||
|
if [[ "$phy" = "$1" ]]; then
|
||||||
|
IFACE_NEW=$(basename $dev)
|
||||||
|
break
|
||||||
|
else
|
||||||
|
IFACE_NEW=''
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function _cleanup {
|
||||||
|
docker stop openwrt_1
|
||||||
|
while [[ -z $IFACE_NEW ]]; do
|
||||||
|
_get_dev_from_phy $PHY
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
sudo ip link set dev $IFACE_NEW down
|
||||||
|
sudo ip link set dev $IFACE_NEW name $IFACE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
nmcli dev set $IFACE managed no
|
||||||
|
# sudo iw phy $PHY interface add $IFACE_AP type managed
|
||||||
|
|
||||||
|
docker run --rm -it \
|
||||||
|
--network=bridge \
|
||||||
|
-p8080:80 -d \
|
||||||
|
--cap-add NET_ADMIN \
|
||||||
|
--cap-add NET_RAW \
|
||||||
|
--name $CONTAINER openwrt
|
||||||
|
|
||||||
|
pid=$(docker inspect -f '{{.State.Pid}}' $CONTAINER)
|
||||||
|
|
||||||
|
sudo iw phy "$PHY" set netns $pid
|
||||||
|
|
||||||
|
|
||||||
|
trap "_cleanup" EXIT
|
||||||
|
cat
|
|
@ -0,0 +1,14 @@
|
||||||
|
config 'wifi-device' 'wlan0'
|
||||||
|
option 'type' 'mac80211'
|
||||||
|
option 'macaddr' '18:d6:c7:1b:dc:95'
|
||||||
|
option 'hwmode' '11a'
|
||||||
|
option 'channel' '36'
|
||||||
|
option 'vhtmode' 'VHT20'
|
||||||
|
|
||||||
|
config 'wifi-iface' 'wl0'
|
||||||
|
option 'device' 'wlan0'
|
||||||
|
option 'network' 'lan'
|
||||||
|
option 'mode' 'ap'
|
||||||
|
option 'ssid' 'test123'
|
||||||
|
option 'encryption' 'psk2'
|
||||||
|
option 'key' '12345678'
|
Loading…
Reference in New Issue