すべてに賛成:Sunfire X4100にUbuntu Server 12.04.3をインストールしました。
このサーバーには4つのイーサネットポートがあり、私のターゲットは以下を使用することです。
このターゲットを実現するには、dhcpサーバーをインストールし[apt-get install isc-dhcp-server]、以下の構成を使用しました。
/etc/default/isc-dhcp-server
INTERFACES="eth1 eth2 eth3"
/etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
auto eth1
iface eth1 inet static
address 192.168.1.5
netmaks 255.255.255.0
network 192.168.1.0
auto eth2
iface eth2 inet static
address 192.168.1.5
netmaks 255.255.255.0
network 192.168.1.0
auto eth3
iface eth3 inet static
address 192.168.1.5
netmaks 255.255.255.0
network 192.168.1.0
dHCPサーバー構成
/etc/dhcp/dhcpd.conf
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.1;
option netbios-name-servers 192.168.1.1;
# Use Google public DNS
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "mydomain.it";
# Define address range
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.15 192.168.2.25;
}
結果は次のとおりです。
以下のサーバー上のIP広告の結果:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope Host lo
inet6 ::1/128 scope Host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:14:4f:20:20:9c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.1.255 scope global eth0
inet6 fe80::214:4fff:fe20:209c/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:14:4f:20:20:9d brd ff:ff:ff:ff:ff:ff
inet 192.168.2.5/32 scope global eth1
inet6 fe80::214:4fff:fe20:209d/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:14:4f:20:20:a2 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.5/32 scope global eth2
5: eth3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:14:4f:20:20:a3 brd ff:ff:ff:ff:ff:ff
inet 192.168.4.5/32 scope global eth3
6: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 06:0d:62:1a:3c:c5 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
サーバーのip rの下:
default via 192.168.1.1 dev eth0 metric 100
169.254.0.0/16 dev eth3 scope link metric 1000
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
以下の地図の写真:
DHCPパート(および推奨される転送ダレント)とは別に、インターフェイスを正しく構成する必要があります。
ほとんどの場合、各インターフェイスは独自のIPネットワークにあります(サンプルアドレスを提供していますが、それらを調整する必要があります)。
eth0
はそのままにします。
auto eth1
iface eth1 inet static
address 192.168.2.5
netmask 255.255.255.0
network 192.168.2.0
auto eth2
iface eth2 inet static
address 192.168.3.5
netmask 255.255.255.0
network 192.168.3.0
auto eth3
iface eth3 inet static
address 192.168.4.5
netmask 255.255.255.0
network 192.168.4.0
DHCPサーバーが同じマシンで実行されている場合は、それに応じて構成する必要があります。テストのために、すべてのサブネット上の1つのホストに静的IPアドレスを与えることができます(たとえば、192.168.2.11
に接続された1つのホストにeth1
を使用します)
IPネットワークとIPアドレスを正しく構成した後、IP転送を有効にする必要があります。
Sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
(成功をテストするために一度だけ)
/etc/sysctl.conf
を編集し、行を「アクティブ化」することにより
net.ipv4.ip_forward=1
最初に#
を削除します。
それが完了したら(すべてのクライアントがサーバーの対応するインターフェースにpingできるはずです)
(最初に1つのサブネットで試してください。eth1
の例を示します。他のサブネットのアドレスを調整する必要があります)
Sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.2.0/24 -m conntrack --ctstate NEW -j ACCEPT
Sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Sudo iptables -t nat -F POSTROUTING
Sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
これで、サブネット1のクライアントはインターネット上のIPアドレスにpingできるようになりますが、サーバーの次のリブートまでしかできません。動作する場合は、それに応じてeth2
およびeth3
を続行します。
永続的にするには、netfilterルールの現在の(動作中の)構成を保存する必要があります
Sudo iptables-save | Sudo tee /etc/iptables-NAT.sav
次に、/etc/rc.local
に次のエントリを作成して、再起動するたびに同じ設定を再読み込みします。 exit 0
がafterの新しいエントリであることを確認してください
iptables-restore < /etc/iptables-NAT.sav
(ここにSudo
は必要ありません)
DHCP構成が間違っています。インターフェースごとに異なるサブネットを作成する必要がありますおよびサブネットごとに(option routers
を使用して)適切な「ゲートウェイ」を設定する必要があります。
# for eth1 with 192.168.2.5 as local address
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.15 192.168.2.25;
option routers 192.168.2.5;
}
# for eth2 with 192.168.3.5 as local address
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.15 192.168.3.25;
option routers 192.168.3.5;
}
# for eth3 with 192.168.4.5 as local address
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.15 192.168.4.25;
option routers 192.168.4.5;
}
これで、すべてのクライアントがネットワーク外のIPアドレスに到達できるはずです。名前解決は(おそらく)まだ利用できません。
ホストからのパッケージがWANに到達できるように、サーバーでIP転送を有効にする必要があります。
Sudo sysctl net/ipv4/ip_forward=1
これを試してから、ホストから外部IPまたはURLをpingしてみてください。