非標準的な方法でLinuxボックスのWi-Fiポートとイーサネットポートを設定しようとしています。私はこれまでこのようなことにさらされたことがなかったので、私の無実を許してください。私は基本的に最初に文書化部分にYOLOを適用し、それがうまくいくのに大きな進歩を遂げました。しかし、まだ奇妙なことがあり、なぜ動作するのかを完全に理解していません。だから可能であれば、これを完全に説明したいと思います。そして、より多くの知識を持つ人がいる場合は、私を訂正して、私が間違っている部分を説明してください。
私は2つのイーサネットポートと1つのWi-Fiを備えたミニコンピュータを持っています。インターネットが1つのイーサネットポートを介して受信し、WIFIと別のイーサネットポートを介してブロードキャストされるように設定しようとしています。デフォルトでは、WiFiルーターのように動作するように設定します。
だから。
これは私の/etc/netplan/01-network-manager-all.yamlです。
network:
version: 2
renderer: networkd
ethernets:
enp0s31f6:
dhcp4: true
enp1s0:
addresses:
- 192.168.2.1/24
dhcp4: false
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search: []
wlp2s0:
addresses:
- 10.42.0.1/24
dhcp4: false
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search: []
bridges:
br0:
interfaces: [enp0s31f6, enp1s0, wlp2s0]
dhcp4: true
addresses:
- 100.80.0.1/24
parameters:
stp: false
forward-delay: 0
これは私の/etc/default/dhcpd.confです。
INTERFACES="enp1s0 wlp2s0"
これは私の/etc/dhcp/dhcpd.confです。
option domain-name "whatever.you.want";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
log-facility local7;
subnet 10.42.0.1 netmask 255.255.255.0 {
range 10.42.0.101 10.42.0.200;
option subnet-mask 255.255.255.0;
option routers 10.42.0.1;
option broadcast-address 10.42.0.255;
}
subnet 100.80.0.1 netmask 255.255.255.0 {
range 100.80.0.101 100.80.0.200;
option subnet-mask 255.255.255.0;
option routers 100.80.0.1;
option broadcast-address 100.80.0.255;
}
subnet 192.168.2.1 netmask 255.255.255.0 {
range 192.168.2.101 192.168.2.200;
option subnet-mask 255.255.255.0;
option routers 192.168.2.1;
option broadcast-address 192.168.2.255;
}
正しいコマンドをすべて実行しました。 (私の考えでは)
sudo netplan --debug generate
sudo netplan apply
sudo systemctl restart isc-dhcp-server
sudo systemctl enable isc-dhcp-server
sudo systemctl status isc-dhcp-server
だからこれはうまくいきます。しかし、私はおそらく私が何か間違っていることを知っています。また、欠点があります。ランダムに数回中断され、何も言わないエラーが表示されるようです。さらに、特定の4Gホットスポットに接続しようとすると機能しませんが、その4Gホットスポットは他のデバイスにインターネットを正常に送信し、他のイーサネットソースからもインターネットをうまく受信します。
では、この設定は正しいですか?このファイルを正しく設定するにはどうすればよいですか?
また、私のifconfigをよりよく測定するために
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 100.80.0.1 netmask 255.255.255.0 broadcast 100.80.0.255
inet6 fe80::14a8:83ff:fe5b:a89c prefixlen 64 scopeid 0x20<link>
ether 16:a8:83:5b:a8:9c txqueuelen 1000 (Ethernet)
RX packets 666051 bytes 252795968 (252.7 MB)
RX errors 0 dropped 59 overruns 0 frame 0
TX packets 127129 bytes 14963222 (14.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:01:2e:84:6a:13 txqueuelen 1000 (Ethernet)
RX packets 691307 bytes 261567317 (261.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 242102 bytes 38886894 (38.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xdf300000-df320000
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255
ether 00:01:2e:84:6a:14 txqueuelen 1000 (Ethernet)
RX packets 111556 bytes 21621626 (21.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 523333 bytes 80568249 (80.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 11909999 bytes 4519986237 (4.5 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11909999 bytes 4519986237 (4.5 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
ether 00:24:d6:fc:f5:e9 txqueuelen 1000 (Ethernet)
RX packets 87180 bytes 10348796 (10.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 134948 bytes 148087795 (148.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
答え1
デバイスをルーターとして使用するには(クライアントの観点からデバイスがデフォルトゲートウェイになる)、次の構成設定が必要です。
ルーターデバイスを介してインターネットにアクセスしたいデバイスがそのデバイスをデフォルトゲートウェイとして有効にします。デバイスからDHCPを受信したら、それをDHCPオプションとして渡すことができます。それ以外の場合は、デバイス自体にこのパスを追加する必要があります。次のコマンドを使用してルーティングテーブルを確認します
ip
。$ ip route show default via 172.31.100.1 dev eno2 proto static ...
ルーターホストのアドレスをデフォルトゲートウェイパスとして表示する必要があります。
ルータホストで転送をイネーブルにします。
$ echo 1 > /proc/sys/net/ipv4/ip_forward
eth0
「LAN」アダプタからeth1
「WAN」アダプタへのルーティングを設定します。eth0
eth1
iptables -t nat -I POSTROUTING -o eth1 -j MASQUERADE iptables -I FORWARD -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD -i eth1 -j ACCEPT
テスト。
これらの設定を削除するには:
iptables -t nat -D POSTROUTING -o eth1 -j MASQUERADE iptables -D FORWARD -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -D FORWARD -i eth1 -j ACCEPT echo 0 > /proc/sys/net/ipv4/ip_forward
これらすべてのコマンドはスーパーユーザーとして実行する必要があります。