モチベーション:
いくつかの理由から、一般的なワイヤレスルーターの代わりにLinuxサーバーを使いたい
- Linuxでより完全なサーバーを構築する方法を学びたい
- モデムをルーターに接続したり、ネットワークスイッチに接続したりしたくない
- ルーターがフリーズしてしまうので10日ごとに電源を抜かなければならないことにうんざりしています
- ルーターを購入しても、ポート転送や静的 IP アドレス指定 (DHCP) などの重要な機能が欠けていることに気付くのはうんざりです。
設定:
最終的に、接続はモデムに入り、 を経由して直接私のサーバーに入りeth0
、その後eth1
ネットワーク スイッチに出力され、他のすべてのクライアント コンピューターはイーサネット ケーブル経由で接続します (今のところワイヤレスは忘れてください)。ただし、現在、私はオフィス ビルにいて、接続はモデムに入り、ルーターに入り、ネットワーク スイッチに入り、eth0
上記のように に入ります。
現在のチュートリアル:
いくつかのチュートリアルを見ました(Ubuntuチュートリアルがベストです)、また、ここでルーターに関する質問をいくつか見てきました(つまり、これです) ですが、いずれも次のようないくつかの重要な概念については触れていません。
eth1
は とどのような関係にあるのでしょうかeth0
? ではを として使用するように/etc/network/interfaces
指示する必要がありますか(通常は実際の物理ルーターのアドレスです)?eth1
eth0
network
eth1
入ってくるインターネットを取得してeth0
、ネットワーク スイッチでそれを必要とする人に渡すように指示するために何かを行う必要がありますか?
現在のアプローチ:
/etc/network/interfaces
サーバー上の私のファイルは次のとおりです:
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.70
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
# iface eth1 inet dhcp
iface eth1 inet static
address 192.168.7.0
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
そして、ifconfig
両方の NIC が正常に動作していることが分かります。
eth0 Link encap:Ethernet HWaddr 20:cf:30:55:a0:5f
inet addr:192.168.1.70 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::22cf:30ff:fe55:a05f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11297 errors:0 dropped:0 overruns:0 frame:0
TX packets:16639 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:948633 (948.6 KB) TX bytes:1274685 (1.2 MB)
eth1 Link encap:Ethernet HWaddr 00:11:95:f7:f4:6d
inet addr:192.168.7.0 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::211:95ff:fef7:f46d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:243 errors:0 dropped:0 overruns:0 frame:0
TX packets:3231 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29934 (29.9 KB) TX bytes:213055 (213.0 KB)
Interrupt:21
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:5348 errors:0 dropped:0 overruns:0 frame:0
TX packets:5348 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:470737 (470.7 KB) TX bytes:470737 (470.7 KB)
wlan0 Link encap:Ethernet HWaddr bc:f6:85:f8:70:5c
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
route -n returns
サーバー上の内容は次のとおりです。
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.7.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
そしてクライアント側では
auto lo
iface lo inet loopback
iface eth0 inet dhcp
しかし、IP アドレスは割り当てられていません。
編集:ここにisc-dhcp-serverの設定ファイルがあります。/etc/dhcp3/dhcpd.con
これは主に以下の場所からコピーしたものです。このサイト。
# Sample /etc/dhcpd.conf
# (add your comments here)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.10 192.168.7.25;
}
編集:出力sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
質問:
このセットアップで欠けている重要な手順/コンポーネントは何ですか?
答え1
君が持っているいくつかの物が欠けているので、私は切り裂きジャックのように行かなければならない:
クライアントが DHCP を使用して IP を取得する場合は、DHCP サーバーが必要です。
iface eth0 inet dhcp
クライアントでは、これは IP を DHCP サーバーから取得することを示します。DHCP サーバーを設定していない場合は、固定 IP を使用するか、DHCP サーバーをインストールする必要があります。
クライアントに DNS サーバーが設定されていません。DHCP サーバーがないためか、ネットワーク全体にローカル DNS サーバーを使用する必要がある可能性があります。
iptables
ルール(の出力)は提供されていませsudo iptables -L
んが、マスカレードルールやIP転送を有効にしていないと推測できます。説明どおり。のIPアドレスは
eth1
推奨されません。 で終わるIPは0
通常ネットワーク自体であり、ほとんどのルーター/ファイアウォールはこれらを使用すると混乱しますに変更すれば192.168.7.1
、ほぼ問題ないでしょう。broadcast
インターフェースの値が正しくeth1
ありません。 はパッケージをどこにも送信していません。 正しい値 (インターフェースの他の値を考慮すると) は です192.168.7.255
。DHCP サーバーのオプションが悪質です。ルーターへの ARP パッケージは届きません。次の設定が必要です:
default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.7.255; option routers 192.168.7.1; ## This should be the same value of the step 4 option domain-name-servers 8.8.8.8; subnet 192.168.7.0 netmask 255.255.255.0 { range 192.168.7.10 192.168.7.25; }
これらに従えば、ルーターが動作する可能性が高くなります。
答え2
Braiam が私の質問に答えてくれましたが、ここで徹底的なウォークスルーを記載しておくと役立つと思いました。間違いがあれば更新してください。
まず、2枚のイーサネットカード(NIC)があることを確認し、/etc/network/interfaces
そのようにファイルを更新します(ないこれをファイルと間違えないでください/etc/networks
。
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.70
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
iface eth1 inet static
address 192.168.7.1
netmask 255.255.255.0
broadcast 192.168.7.255
network 192.168.1.0
gateway
、broadcast
およびを見つけるにはnetwork
、これらの指示。
次に、クライアントにアクセスして/etc/network/interface
(再度、ない /etc/networks
) ファイルをまず静的 IP 用にダウンロードして、少なくとも NIC カードが動作していることを確認します。
iface eth0 inet static
address 192.168.7.75
netmask 255.255.255.0
network 192.168.7.0
broadcast 192.168.7.255
gateway 192.168.7.1
上記の値と一致するように値を変更します。うまくいけば、指示に従ってください。ここしかし、彼らに従ってくださいその通り複数のファイルがあるのでdhcp
、フォルダなどを間違えないようにして/etc/dhcp
ください/etc/dhcp3
。