2015年2月27日金曜日

ルータとして動かしているCentOS 7にNICを追加

サーバ兼ルータとして動かしてる PCにLANポートを増やしたくてヤフオクでNICを落札した。

Silicom PXG2BPi - Dual Port Copper Gigabit Ethernet PCI-X Bypass Server Adapter Intel® based

PCI-Xで1Gbpsポートが2個ついてて1000円だった。家庭用で1Gbpsのものはまだ高価だけどサーバ用のものは100Gbpsとか出てて1Gbpsなんて産廃みたいなもん。

PCI-XはPCIの後から出た規格で互換がある規格。バイパスサーバーアダプタ(?)っていう物らしいけど普通のNICとして使えた。

PCIに刺し、lspciでボードは認識されてるけどドライバが無いらしくてそのままでは使えない。

ボードのIDを調べたら1374:0029らしいがググってもヒットしない。チップはIntel 82546GBを使ってるらしく、Intelの標準ドライバe1000で動くらしいがインストールしても動かない。

メーカーのサイトからダウンロードしようとしたところログインしろって言われるが、会員登録のページがない…

仕方なくメーカーにガバガバな英語でメールを送ってみたら返信が来た。
Please use:
Username: drivers

Password: all

ユーザ名drivers、パスワードallらしい。

ログインしてLinuxドライバをダウンロード

インストール
# unzip PxGxBP_Linux.zip
# cd PxGxBP_Linux/Linux/Drivers/Intel_e1000BPx/Kernel_31x
# tar xf e1000bp-7.3.21-k8.silc.6.1.tar.gz
# cd e1000bp-7.3.21-k8.silc.6.1/src
# make install

エラーとか何もなく通った。

有効化
# modprobe e1000bp

起動時に自動的に有効化
# vi /etc/modules-load.d/e1000bp.conf
e1000bp

あとはIP設定してNICにdhcpd有効にするだけ
ぽぬぽぬ: CentOS 7でルータを作る

2015年2月17日火曜日

CentOS 7でhostapd

NetworkManagerでアクセスポイント構築してたけど不安定だからhostapdを使う。

ぽぬぽぬ: NetworkManagerで無線LANアクセスポイント構築

構成:CentOS 7、GW-USMicro300

dhcpd、IPマスカレードを有効にしておく


hostapdのインストール
# yum -y install hostapd

設定ファイルの編集
# vi /etc/hostapd/hostapd.conf

interface=wlp0s26f7u1
driver=nl80211
ssid=SSIDを入力
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=WPAキー
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

インターフェースがNetworkManagerに管理されてると起動できないので管理外に
# vi /etc/NetworkManager/NetworkManager.conf

[keyfile]
unmanaged-devices=mac:MACアドレスを入力

サービス登録
# systemctl enable hostapd


再起動
# reboot


おしまい

2015年2月5日木曜日

NetworkManagerで無線LANアクセスポイント構築

NetworkManagerの機能を使って無線LANアクセスポイントを構築する。

hostapdを用いるのが一般的だけどドライバの設定とか面倒なので使わない。

アダプタはPlanex GW-USMicro300を使う


手順としては、
NetworkManagerの機能で無線LANアダプタをアクセスポイント化、

dhcpdでIPを配ってfirewalldでIPマスカレードさせることでインターネット接続できるようにする。


ぽぬぽぬ CentOS 7でルータを作る

NetworkManagerの設定

まずGUIからネットワークの設定を開き、Wifiを選択する。「アクセスポイントとして使用」をクリック。SSIDがホスト名、セキュリティWEPで適当なキーの電波が飛ぶ。普通に繋がる状態なのでこだわりとか無いしインターネットしたいだけっていうならこれでOK。

これで設定ファイルができたので編集
# vi /etc/NetworkManager/system-connections/Hotspot

[connection]
id=Hotspot
uuid=a1009acb-660b-48b9-a6e9-3a8169084932
type=wifi
timestamp=1423032842
autoconnect=true
[wifi]
ssid=SSIDを入力
mode=ap
mac-address=00:22:CF:4A:56:78
security=802-11-wireless-security
hidden=true
[wifi-security]
key-mgmt=wpa-psk
psk=キーを入力
[ipv4]
method=manual
dns=8.8.8.8;
address1=192.168.1.1/32,192.168.1.1
gateway=192.168.1.1
[ipv6]
method=auto

dhcpdの設定

無線LANのIPは192.168.1.xを割り当てたいのでdhcpd.confにsubnetを追加

# vi /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
    option routers    192.168.1.1;
    option subnet-mask    255.255.255.0;
    range dynamic-bootp    192.168.1.10 192.168.1.100;
    option domain-name-servers    8.8.8.8;
    option broadcast-address    192.168.1.255;
}
dhcpdを有効にしたいNICを記述
# vi /etc/systemd/system/dhcpd.service
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid enp3s1 wlp0s26f7u1

firewalldの設定

# firewall-cmd --zone=external --add-masquerade
# firewall-cmd --zone=external --add-masquerade --permanent
# firewall-cmd --zone=external --change-interface=ppp0
# firewall-cmd --zone=external --change-interface=ppp0 --permanent
# firewall-cmd --zone=internal --change-interface=wlp0s26f7u1
# firewall-cmd --zone=internal --change-interface=wlp0s26f7u1 --permanent

開始

# nmcli con up Hotspot ifname wlp0s26f7u1

 

これだと一応繋がったけどインターネットに接続されない。

試しに/etc/NetworkManager/system-connections/Hotspotのipv4のmethodをautoにしてみたら繋がってdhcpdも機能してる(?)

あと時間経つとなぜかアクセスポイントが落ちてしまうしどこか間違ってるのかな…