.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サービスファイルは次のとおりです。 [Eメール保護]。
しかし、接続したくない! ad hoc-apを作りたい
だから私はこう考えました:
- たとえば、モードを ap/monitor(混合モード)に設定します。
- WPA essidの設定
- WPAキーの設定
真剣に、次のことなくアクセスポイントを設定する方法はありません。
- WPA申請者
- 所有者
PS: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 ワイヤレスネットワークには、広く使用されている 2 つのネットワークトポロジがあります。私が議論する最初のトポロジーは、最も広く使用されているインフラストラクチャBSSパターンです。ホームワイヤレスネットワークとオフィスでは、インフラストラクチャBSSワイヤレスネットワークに触れます。 IBSS(Ad Hoc)モードについては後で説明します。 IBSSはインフラストラクチャBSSではありません。 IBSSは一時的なネットワークである独立したBSSであり、このセクションの後半で説明します。
インフラBSS
インフラストラクチャBSSモードで動作している場合は、アクセスポイント(AP)と呼ばれる中央デバイスと複数のクライアントステーションがあります。これらは一緒に基本サービスセット(BSS)を構成します。これらのクライアントステーションは、APを介してパケットを送信する前に、まずAPに接続して認証する必要があります。ほとんどの場合、クライアントステーションは認証および接続の前にスキャンを実行し、APに関する詳細情報を取得します。接続は排他的です。クライアントは、特定の瞬間に1つのAPにのみ接続できます。クライアントがAPに正常に接続すると、そのBSSに対して1〜2007の範囲の一意の番号であるAID(Association ID)が取得されます。 APは、実際にはいくつかのハードウェアアドオン(イーサネットポート、LED、製造元のデフォルトにリセットするボタンなど)を含むワイヤレスネットワークデバイスです。管理デーモンはAPデバイスで実行されます。そのようなソフトウェアの例にはhostapdデーモンがあります。このソフトウェアは、認証や接続要求などの MLME レイヤーの一部の管理タスクを処理します。これは、nl80211を介して関連する管理フレームを受信するように登録することによって行われる。 Hostapdプロジェクトは、複数のワイヤレスネットワークデバイスがAPとして機能できるようにするオープンソースプロジェクトです。クライアントは、最終宛先に中継されたパケットをAPに送信して、他のクライアント(またはAPにブリッジされた他のネットワーク上のステーション)と通信できます。より広いエリアをカバーする必要がある場合は、複数のAPを展開して有線方式で接続できます。このタイプの展開を拡張サービスセット(ESS)と呼びます。 ESS展開には複数のBSSがあります。 1つの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 ツールを使用する場合は、次の 2 つのコマンドを使用します。
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(Announcement Traffic Indication Map)メッセージを使用します。 ATIMはmac802.11ではサポートされていないため、この章では説明しません。次のセクションでは、mac80211ネットワークスタックの最も重要なメカニズムの1つである省電力モードを紹介します。
ワイヤレスモード
用途と展開されたネットワークトポロジに応じて、複数のモードで動作するようにワイヤレスネットワークインターフェイスを設定できます。 iwconfigコマンドを使用してモードを設定できる場合があり、モードを設定するにはHostapdなどのツールを使用する必要があります。すべてのデバイスですべてのモードがサポートされるわけではありません。さまざまなモードをサポートするLinuxドライバのリストについては、www.linuxwireless.org/en/users/Driversを参照してください。あるいは、ドライバコードで、wiphyメンバー(ieee80211_hwオブジェクトにある)のinterface_modesフィールドがどの値に初期化されているかを確認できます。 Interface_modesは、NL80211_IFTYPE_STATIONやNL80211_IFTYPE_ADHOCなどのnl80211_iftype列挙型の1つ以上のモードで初期化されます(include/uapi/linux/nl80211.hを参照)。以下は、これらの無線モードの詳細な説明である。
- APモード:このモードでは、デバイスはAP(NL80211_IFTYPE_AP)として機能します。 AP は接続ステーションのリストを維持し管理します。ネットワーク(BSS)名はAPのMACアドレス(bssid)です。 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)」のセクションで説明します。
ベストアンサー1
~によるとシステムネットワーク仮想ブリッジインターフェイスを作成する必要があります。
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
システムサービス
継続的なシステムサービスの使用
今サービスを開始してください:
systemctl start create_ap
新兵:
systemctl enable create_ap