说真的,如果没有以下条件,就没有办法设置接入点:

说真的,如果没有以下条件,就没有办法设置接入点:

如何通过 .link 文件中的网络守护进程将模式设置为设备(例如监视器/ap 到 wlan)???

因为我想在 wlan 设备的 .network 中设置桥接,并且只有将其设置为特定模式后才能执行此操作。

##################################
# /etc/systemd/network/eth0.link # 
##################################
[Match]
MACAddress=xxxxxxxxxx

[Link]
Description=Top Ethernet Port
Type=ether
Name=eth0
#MACAddressPolicy=persistent 
MACAddress= rewrite mac 
WakeOnLan=off

#####################################
# /etc/systemd/network/eth0.network #
#####################################
[Match]
Name=eth0

[Address]
Address=192.168.0.101/24
Broadcast=192.168.0.101

[Network]
Bridge=br0

###################################
# /etc/systemd/network/br0.netdev #
###################################
[NetDev]
Name=br0
Kind=bridge
MACAddress=set mac

####################################
# /etc/systemd/network/br0.network #
####################################
[Match]
Name=br0

[Address]
Address=192.168.0.100/24
Broadcast=192.168.0.100

[Network]
Description=Default network through bridge
Gateway=192.168.0.1
DHCP=ip4
IPv6PrivacyExtensions=true
DNS=8.8.8.8
DNS=8.8.4.4

[DHCP]
UseDNS=false

[Bridge]

[Route]
#Gateway=192.168.0.1
#Destination=192.168.0.0/24
#Scope=link

###################################
# /etc/systemd/network/at0.link   #
###################################
[Match]
# See: udevadm info /sys/class/net/at0
Type=wlan
OriginalName=wlan0
#MACAddress=
Driver=ath9k

[Link]
Description=Top Wireless Lan Port
Name=at0
Type=wlan
MACAddress= rewrite mac
BitsPerSecond=100M
WakeOnLan=off

####################################
# /etc/systemd/network/at0.network #
####################################
[Match]
Name=at0

[Address]
Address=192.168.0.102/24
Broadcast=192.168.0.102

[Network]
Bridge=br0            <---- THIS FAILS 

#

$ networkctl 
IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           carrier     configured
  2 eth0             ether              routable    configured
  3 at0              wlan               no-carrier  configured
  4 br0              ether              routable    configured


$ networkctl status 
●      State: routable
     Address: 192.168.0.101 on eth0
              192.168.0.102 on at0
              192.168.0.100 on br0
              fe80::cb4:a1ff:fea2:111 on eth0
              fe80::cb4:a1ff:fea2:110 on br0
     Gateway: 192.168.0.1 (Cisco SPVTG) on br0
         DNS: 8.8.4.4
              8.8.8.8

附注

我知道如何通过网络创建桥接和接口以及如何向桥接添加接口 - 但我不知道如何将特定接口(无线网卡)的模式更改为其他模式而不使用 wpa 请求者或 iw / iw conf

从 :https://wiki.archlinux.org/index.php/systemd-networkd

无线适配器

为了使用 systemd-networkd 连接到无线网络,需要配置有其他服务(例如 wpa_supplicant)的无线适配器。本例中对应需要启用的systemd服务文件为 [电子邮件受保护]

但我不想连接!我想制作临时 - ap

所以我想:

  • 例如将模式设置为 ap/monitor(混杂模式)
  • 设置wpa essid
  • 设置 wpa 密钥

说真的,如果没有以下条件,就没有办法设置接入点:

  • WPA请求者
  • 主机

附注我只找到了使用 wpa_supplicant 作为单位的方法

# create wpa supplicant config for interface at0 
#
    $ nano / cat /etc/wpa_supplicant/wpa_supplicant_at0.conf 

    ctrl_interface=/var/run/wpa_supplicant
    eapol_version=1
    ap_scan=1
    fast_reauth=1
    network={
        ssid="..."
    #psk="..."
    }

# create unit
#
    $ nano /etc/systemd/system/[email protected] 

[Unit]
Description=WPA supplicant (%i)
After=systemd-networkd.service
Requires=systemd-networkd.service
Before=network-online.target
ConditionPathIsSymbolicLink=/sys/class/net/%i

[Service]
Type=forking
ExecStartPre=/sbin/ip link set %i up
ExecStart=/sbin/wpa_supplicant -s -i %i -D nl80211,wext -c/etc/wpa_supplicant/wpa_supplicant_%i.conf -B -P /run/wpa_supplicant.%i.pid
ExecStopPost=/sbin/ip addr flush %i
ExecStopPost=/sbin/ip link set %i down
PIDFile=/run/wpa_supplicant.%i.pid

[Install]
WantedBy=multi-user.target

# reload systemctl daemon 
#
   $ systemctl daemon-reload 

# enable supplicant on interface on boot 
# 
   $ systemctl enable wpa_supplicant@at0

PS2。我挖出了这个:

https://wiki.archlinux.org/index.php/Talk:Ad-hoc_networking

基本:

网络拓扑

802.11 无线网络中有两种流行的网络拓扑。我讨论的第一个拓扑是基础设施 BSS 模式,这是最流行的。您会在家庭无线网络和办公室中遇到基础设施 BSS 无线网络。稍后我会讨论IBSS(Ad Hoc)模式。请注意,IBSS 不是基础设施 BSS; IBSS 是独立 BSS,它是一个 ad hoc 网络,将在本节后面讨论。

基础设施BSS

当工作在基础设施 BSS 模式时,有一个称为接入点 (AP) 的中央设备和一些客户端站。它们共同构成了BSS(基本服务集)。这些客户站必须首先针对 AP 执行关联和验证,才能通过 AP 传输数据包。在许多情况下,客户端站会在身份验证和关联之前执行扫描,以便获取有关 AP 的详细信息。关联是排他性的:客户端在给定时刻只能与一个 AP 关联。当客户端与 AP 成功关联时,它会获得一个 AID(关联 ID),这是一个范围为 1-2007 的唯一编号(对于该 BSS)。 AP 实际上是一种带有一些硬件附加功能的无线网络设备(例如以太网端口、LED、重置为制造商默认值的按钮等)。 AP 设备上运行管理守护程序。此类软件的一个示例是 hostapd 守护程序。该软件处理 MLME 层的一些管理任务,例如身份验证和关联请求。它通过注册自身以通过 nl80211 接收相关管理帧来实现这一点。 hostapd 项目是一个开源项目,它使多个无线网络设备能够作为 AP 运行。客户端可以通过向 AP 发送数据包来与其他客户端(或桥接到 AP 的不同网络中的站)进行通信,数据包由 AP 中继到最终目的地。如果需要覆盖较大的区域,可以部署多个AP并通过有线方式连接。这种类型的部署称为扩展服务集 (ESS)。在ESS部署中,有两个或多个BSS。在一个 BSS 中发送的组播和广播可能会到达附近的 BSS,但会被附近的 BSS 站点拒绝(802.11 标头中的 bssid 不匹配)。在此类部署中,每个接入点通常使用不同的信道来最大程度地减少干扰。

IBSS,或 Ad Hoc 模式

IBSS 网络通常无需预先规划即可形成,仅在需要 WLAN 时使用。 IBSS 网络也称为 ad hoc 网络。创建 IBSS 的过程很简单。您可以通过从命令行运行此 iw 命令来设置 IBSS(请注意,2412 参数用于使用通道 1):

 iw wlan0 ibss join AdHocNetworkName 2412

或者使用 iwconfig 工具时,使用以下两个命令:

iwconfig wlan0 mode ad-hoc
iwconfig wlan0 essid AdHocNetworkrName

这通过调用 ieee80211_sta_create_ibss() 方法 (net/mac80211/ibss.c) 触发 IBSS 创建。然后,必须手动(或以其他方式)将 ssid(在本例中为 AdHocNetworkName)分发给想要连接到 ad hoc 网络的每个人。使用 IBSS 时,您没有 AP。 IBSS的bssid是一个随机的48位地址(基于调用get_random_bytes()方法)。 Ad Hoc 模式下的电源管理比基础设施 BSS 中的电源管理稍微复杂一些;它使用公告流量指示图 (ATIM) 消息。 ATIM 不受 mac802.11 支持,本章不予讨论。下一节介绍省电模式,这是 mac80211 网络堆栈最重要的机制之一......

无线模式

您可以将无线网络接口设置为在多种模式下运行,具体取决于其预期用途及其部署的网络拓扑。在某些情况下,您可以使用 iwconfig 命令设置模式,而在某些情况下,您必须使用像 hostapd 这样的工具来设置模式。请注意,并非所有设备都支持所有模式。请参阅 www.linuxwireless.org/en/users/Drivers 以获取支持不同模式的 Linux 驱动程序列表。或者,您还可以检查 wiphy 成员(在 ieee80211_hw 对象中)的 interface_modes 字段在驱动程序代码中初始化为哪些值。 Interface_modes 初始化为 nl80211_iftype 枚举的一种或多种模式,例如 NL80211_IFTYPE_STATION 或 NL80211_IFTYPE_ADHOC(请参阅:include/uapi/linux/nl80211.h)。以下是这些无线模式的详细说明:

  • AP 模式:在此模式下,设备充当 AP (NL80211_IFTYPE_AP)。 AP 维护并管理关联站的列表。网络 (BSS) 名称是 AP (bssid) 的 MAC 地址。 BSS 还有一个人类可读的名称,称为 SSID。
  • 站基础设施模式:基础设施模式下的受管站 (NL80211_IFTYPE_STATION)。
  • 监控模式:在监控模式 (NL80211_IFTYPE_MONITOR) 下,所有传入数据包均未经过滤地处理。这对于嗅探很有用。通常可以在监视模式下传输数据包。这称为数据包注入;这些数据包标有特殊标志(IEEE80211_TX_CTL_INJECTED)。
  • Ad Hoc (IBSS) 模式:ad hoc (IBSS) 网络 (NL80211_IFTYPE_ADHOC) 中的站点。使用 Ad Hoc 模式时,网络中没有 AP 设备。
  • 无线分布式系统 (WDS) 模式:WDS 网络中的站 (NL80211_IFTYPE_WDS)。
  • 网状模式:网状网络 (NL80211_IFTYPE_MESH_POINT) 中的站点,将在本章后面的“网状网络 (802.11s)”部分中讨论。

来源:https://books.google.pl/books?id=96V4AgAAQBAJ

答案1

根据Systemd-networkd您需要创建一个虚拟桥接口;

nano /etc/systemd/network/MyBridge.netdev

过去以下内容

[NetDev]
Name=br0
Kind=bridge

然后重新启动systemd-networkd.service

验证类型ip a

下一步为网桥创建网络配置文件

 nano /etc/systemd/network/MyBridge.network

并过去以下内容:

[Match]
Name=br0

[Network]
DHCP=ipv4

编辑

要设置接入点,您可以使用create_ap github_create_ap

安装

yaourt -S create_ap

对于其他发行版

git clone https://github.com/oblique/create_ap
cd create_ap
make install

例子

无密码(开放网络):

 create_ap wlan0 eth0 MyAccessPoint

WPA + WPA2 密码:

 create_ap wlan0 eth0 MyAccessPoint MyPassPhrase

没有互联网共享的AP:

 create_ap -n wlan0 MyAccessPoint MyPassPhrase

桥接互联网共享:

 create_ap -m bridge wlan0 eth0 MyAccessPoint MyPassPhrase

桥接互联网共享(预先配置的桥接接口):

 create_ap -m bridge wlan0 br0 MyAccessPoint MyPassPhrase

从同一 WiFi 接口共享互联网:

 create_ap wlan0 wlan0 MyAccessPoint MyPassPhrase

选择不同的 WiFi 适配器驱动程序

 create_ap --driver rtl871xdrv wlan0 eth0 MyAccessPoint MyPassPhrase

使用管道无密码(开放网络):

 echo -e "MyAccessPoint" | create_ap wlan0 eth0

使用管道的 WPA + WPA2 密码:

 echo -e "MyAccessPoint\nMyPassPhrase" | create_ap wlan0 eth0

启用 IEEE 802.11n

  create_ap --ieee80211n --ht_capab '[HT40+]' wlan0 eth0 MyAccessPoint MyPassPhrase

客户端隔离:

 create_ap --isolate-clients wlan0 eth0 MyAccessPoint MyPassPhrase

系统服务

使用持久性 systemd 服务

立即开始服务:

systemctl start create_ap

开机启动:

systemctl enable create_ap

相关内容