CentOSを使って無線を有線にしなければならないことができたので、備忘録として書きます。
構築
APから飛ばしたものをCentOS RouterでIPマスカレードし、Clientから体外にアクセスできるようにします。
前提条件として
WLAN側:DHCP(ここでは、172.16.100.100がDHCPより取得したと仮定する)
LAN側:172.16.200.1/24
WLANインターフェース:wlp2s0
LANインターフェース:eth0
とします。
1.無線側の設定
1.1.WLAN側インターフェースを確認する
NetworkManagerのデバイスを一覧で出してみます。
nmcli device
とすると、
DEVICE TYPE STATE CONNECTION
---------------------------------------------
eth0 ethernet disconnected --
wlp2s0 wifi disconnected --
wlp2s0がunmanagedになっている場合は、 nmcliで無線がunmanagedの場合の対処法 こちらに対処法を記事にしたのでご覧ください。
1.2.WLANのSSIDを設定する
nmcli device wifi connect [ssid] password [password]
[ssid]にWiFiのSSIDを、[password]にはSSIDに対するパスワードを入力してください。
2.有線側の設定
2.1.IPアドレスを固定で設定する
nmcli connection modify eth0 ipv4.method manual
nmcli connection modify eth0 ipv4.addresses "172.16.200.1/24"
172.16.200.1/24の部分にLAN側のIPアドレスを記入します。
2.2.DHCPサーバを構築する
DHCPサーバをインストールする
yum -y install dhcp
/etc/dhcp/dhcpd.conf
authoritative;
subnet 172.16.200.0 netmask 255.255.255.0 {
range dynamic-bootp 172.16.200.100 172.16.200.200;
option routers 172.16.200.1;
}
この設定では172.16.200.100から172.16.200.200の間で割り振られる設定になっています。
systemctl start dhcpd
systemctl enable dhcpd
サービスを起動+自動起動を有効にします。
3.ルーティングの設定
3.1.IPフォワーディングを有効
/etc/sysctl.conf
net.ipv4.ip_forward=1
を書き加える。
このままでは再起動するまで反映されないので、
sysctl -p
このコマンドを用いて即反映させる。
3.2.firewalldの無効化
iptablesを手打ちで打つので、邪魔なfirewalldには動いてもらわないようにします。
systemctl stop firewalld
systemctl disable firewalld
3.3.NATの設定
NATの設定をするためにiptablesを使用します。
ここではLAN側からWAN側につなぎたいのでPOSTROUTINGを使用します。
iptables -t nat -A POSTROUTING -o wls1 -j MASQUERADE
wls1の部分にWAN側インターフェースを指定します。
逆に、WAN側から特定のポートにアクセスしたい場合はPREROUTINGを使用します。
永続化設定する場合は、
iptables-save > /etc/sysconfig/iptables
のコマンドを走らせます。
まとめ
これで、とりあえず無線から有線にIPマスカレードができるようになりました。
使いどころは微妙なところではありますが、イベントなどで使うことあるかもしれないので備忘録として残しました。