LoginSignup
0
0

More than 1 year has passed since last update.

Arch Linuxで複数NICの設定をする

Posted at

有線LANと無線LANを両方同じサブネットに接続しようとしてハマったのでメモがてら。

構成

・Archがインストールされているマシンには無線LANと有線LANの2つのNICがある
・有線LANと無線LANの両方を同じネットワークに接続したい
・有線LANが優先的に使われてほしい
・それぞれ固定IPを振る(DHCPは使用しない)
・netctlのみで管理する

やること

余計なサービスを無効化する

sudo systemctl disable dhcpcd
sudo systemctl disable systemd-resolved
sudo systemctl disable NetworkManager

DNSの設定

/etc/resolv.confにDNSサーバのIPを追記
nameserver 8.8.8.8
nameserver 192.168.0.1 # ルーター内蔵DNS

netctlの設定

NICごとにプロファイルをつくる

有線LAN

sudo vim /etc/netctl/ethernet(新規作成)

Interface=enp1s0
Connection=ethernet
IP=static
AutoWired=yes
Address=('192.168.0.122/24')
Routes=("default via 192.168.0.1 dev enp1s0 src 192.168.0.122")
# DNS=('192.168.0.1')

無線LAN

sudo vim /etc/netctl/wlan0

Description='A simple WPA encrypted wireless connection'
Interface=wlan0
Connection=wireless

Security=wpa
IP=static
Address='192.168.0.121/24'
Routes=("default via 192.168.0.1 dev wlan0 src 192.168.0.121 metric 303")

ESSID='XXXxX'
Key='XXXX'

Routesで有線LANより高いmetricを指定すると、無線LANの優先度が下がる

(必要であれば)IPv6無効化

sudo vim /etc/sysctl.d/40-ipv6.conf (新規作成)

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.enp1s0.disable_ipv6 = 1

netctlの各プロファイル有効化

sudo systemctl enable netctl@ethernet
sudo systemctl enable netctl@wlan0
再起動

/etc/netctl/example/配下にコンフィグの例が置いてあるが、そのとおりだとNICが立ち上がらなかった。
netctlのプロファイルからGatewayおよびDNSを削除したらうまくいった。

確認

  • ipアドレス
    ip a
  • ルート
    ip route
  • ping
    ping google.com
    ping -I wlan0 google.com
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0