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マスカレードができるようになりました。

使いどころは微妙なところではありますが、イベントなどで使うことあるかもしれないので備忘録として残しました。