Linux サーバーをルーターとして設定する方法

Linux サーバーをルーターとして設定する方法

モチベーション:

いくつかの理由から、一般的なワイヤレスルーターの代わりにLinuxサーバーを使いたい

  1. Linuxでより完全なサーバーを構築する方法を学びたい
  2. モデムをルーターに接続したり、ネットワークスイッチに接続したりしたくない
  3. ルーターがフリーズしてしまうので10日ごとに電源を抜かなければならないことにうんざりしています
  4. ルーターを購入しても、ポート転送や静的 IP アドレス指定 (DHCP) などの重要な機能が欠けていることに気付くのはうんざりです。

設定:

最終的に、接続はモデムに入り、 を経由して直接私のサーバーに入りeth0、その後eth1ネットワーク スイッチに出力され、他のすべてのクライアント コンピューターはイーサネット ケーブル経由で接続します (今のところワイヤレスは忘れてください)。ただし、現在、私はオフィス ビルにいて、接続はモデムに入り、ルーターに入り、ネットワーク スイッチに入り、eth0上記のように に入ります。

現在のチュートリアル:

いくつかのチュートリアルを見ました(Ubuntuチュートリアルがベストです)、また、ここでルーターに関する質問をいくつか見てきました(つまり、これです) ですが、いずれも次のようないくつかの重要な概念については触れていません。

  • eth1は とどのような関係にあるのでしょうかeth0? ではを として使用するように/etc/network/interfaces指示する必要がありますか(通常は実際の物理ルーターのアドレスです)?eth1eth0network
  • 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

君が持っているいくつかの物が欠けているので、私は切り裂きジャックのように行かなければならない:

  1. クライアントが DHCP を使用して IP を取得する場合は、DHCP サーバーが必要です。

    iface eth0 inet dhcp

    クライアントでは、これは IP を DHCP サーバーから取得することを示します。DHCP サーバーを設定していない場合は、固定 IP を使用するか、DHCP サーバーをインストールする必要があります。

  2. クライアントに DNS サーバーが設定されていません。DHCP サーバーがないためか、ネットワーク全体にローカル DNS サーバーを使用する必要がある可能性があります。

  3. iptablesルール(の出力)は提供されていませsudo iptables -Lんが、マスカレードルールやIP転送を有効にしていないと推測できます。説明どおり

  4. のIPアドレスはeth1推奨されません。 で終わるIPは0通常ネットワーク自体であり、ほとんどのルーター/ファイアウォールはこれらを使用すると混乱しますに変更すれば192.168.7.1、ほぼ問題ないでしょう。

  5. broadcastインターフェースの値が正しくeth1ありません。 はパッケージをどこにも送信していません。 正しい値 (インターフェースの他の値を考慮すると) は です192.168.7.255

  6. 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

gatewaybroadcastおよびを見つけるには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

関連情報