追加のネットワークセグメント(LAN2)を追加し、LAN2のリソースにアクセスするためにLAN1にいくつかのマシンが必要です。 LAN2上の一部のマシンは、LAN1およびWANセグメントのリソースにもアクセスする必要があります。LAN1とLAN2の間のゲートウェイは、デュアルホームLinuxサーバーである「SRV-01」と呼ばれます。
LAN1からLAN2にもLAN2からLAN1にもアクセスできませんWAN。LAN1ホストとLAN2を相互に通信させる方法と、WAN。
トラブルシューティング
Pingを使用して次の応答を受け取ります。
IP(ソース)---> IP(宛先):ping応答 -------------------------- -------------------------------------------------- 192.168.5.33(LAN1上のクライアント)---> 192.168.5.8(SRV-01:eth0):OK 192.168.5.33(LAN1上のクライアント)---> 10.0.2.1( SRV-01:eth1):NO 192.168.5.33(LAN1上のクライアント)---> 10.0.2.2(SRV-02:eth0):NO *。*。*。*。 *(SRV-01)---> 192.168.5.33(LAN1上のクライアント):OK *。*。*。*。*(SRV-01)---> 10.0.2.2(SRV-02 :eth0):OK 10.0.2.2(SRV-02)---> 10.0.2.1(SRV-01:eth1):OK 10.0.2.2(SRV-02)--- > 192.168.5.8(SRV-01:eth0):OK 10.0.2.2(SRV-02)---> 192.168.5.33(LAN1上のクライアント):NO
ネットワークトポロジ
WAN ISPルーター)--- LAN1 ---(SRV-01)--- LAN2 ---(SRV-02)
インターネットサービスプロバイダー(ISP)ルーターはNAT(2つのネットワークアダプター))を提供し、LAN1のDHCPサーバーとして機能します。この機器へのシェル/管理者アクセスはありません。
SRV-01は、LAN1サブネットとLAN2サブネットの間のゲートウェイとして機能するデュアルホームのUbuntu Server 14.04(2つのネットワークアダプター)です。
---(/ etc/network/interfaces
# Loopback
auto lo
iface lo inet loopback
# LAN1
auto eth0
iface eth0 inet static
address 192.168.5.8
netmask 255.255.255.0
network 192.168.5.0
broadcast 192.168.5.255
gateway 192.168.5.4
dns-nameservers xxx.xxx.xxx.xxx
# LAN2
auto eth1
iface eth1 inet static
address 10.0.2.1
netmask 255.255.255.0
network 10.0.2.0
broadcast 10.0.2.255
dns-nameservers xxx.xxx.xxx.xxx
ルーティング
〜$ netstat -r カーネルIPルーティングテーブル 宛先ゲートウェイGenmaskフラグMSSウィンドウirttIface デフォルト192.168.5.40.0.0.0 UG 0 0 0 eth0 10.0.2.0 * 255.255.255.0 U 0 0 0 eth1 localnet * 255.255.255.0 U 0 0 0 eth0
〜$ ip route show default via 192.168.5.4 dev eth0 10.0.2.0/24 dev eth1 proto kernel scope link src 10.0.2.1 192.168.5.0/24 deveth0プロトカーネルスコープリンクsrc192.168.5.8
IP転送
〜$ Sudo sysctl -a | grep net.ipv4.ip_forward net.ipv4.ip_forward = 1 net.ipv4.ip_forward_use_pmtu = 0
ファイアウォール
Ubuntuの「UncomplicatedFireWall」(UFW)はサーバー「SRV-01」で無効になっており、すべてのiptablesチェーンのデフォルトポリシーがACCEPTターゲットに設定されています。まだ1つのパケットがFORWARDテーブルに到達していないことに注意してください...
〜$ Sudo ufw status ステータス:非アクティブ
〜$ Sudo iptables -L -v | grepポリシー チェーン入力(ポリシーACCEPT 369パケット、28278バイト) チェーン転送(ポリシーACCEPT 0パケット、0バイト) チェーン出力(ポリシーACCEPT 187パケット、19740バイト)
SRV-02は、1つのネットワークアダプターを備えたUbuntu Server14.04です。
/ etc/network/interfaces
ネットマスク255.255.255.0 ネットワーク10.0.2.0 ブロードキャスト10.0.2.255 dns-nameservers xxx.xxx.xxx.xxx
ルーティング
〜$ netstat -r: カーネルIPルーティングテーブル 宛先ゲートウェイGenmaskフラグMSSウィンドウirtt Iface デフォルト10.0.2.10.0.0.0 UG 0 0 0 eth0 10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
〜$ ip route show default via 10.0.2.1 dev eth0 10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.2
ファイアウォール
Ubuntuの「UncomplicatedFireWall」(UFW)はサーバー「SRV-02」で無効になっており、すべてのiptablesチェーンのデフォルトポリシーがACCEPTターゲットに設定されています。
〜$ Sudo ufw status ステータス:非アクティブ
〜$ Sudo iptables -L -v | grep policy Chain INPUT(ポリシーACCEPT 0パケット、0バイト) Chain FORWARD(ポリシーACCEPT 0パケット、0バイト) Chain OUTPUT(ポリシーACCEPT 0パケット、0バイト)
ここで何が欠けていますか? SRV-01にどのスタティックルートを追加する必要があるのか、またデフォルトゲートウェイが適切に構成されているのか疑問に思います...
この設定には2つの問題があります。
これらの問題は、LAN2への静的ルートをISPルーターに追加し、SRV-01上のLAN2のソースNAT構成を追加することで修正できます。ただし、管理者アクセスがないため、これは不可能です。 ISPルーター。
それを回避する2つの解決策があります:
A。SRV-01をLAN1およびLAN2ホスト用のフルルーターにします
。
WAN -> ISP router -> LAN1 -> SRV-01 +-> LAN3 (for hosts originally in LAN1)
+-> LAN2 -> SRV-02
基本的に、SRV-01を両方のLANセグメントのルーターにしています。
10.0.1.0/24
を使用するとします。/ etc/network/interfaces:
# LAN1 - to ISP router
auto eth0
iface eth0 inet dhcp
# we can even use dhcp as the IP address is not really important
# - there are no more hosts on LAN1 apart from ISP router and SRV-01
# LAN3 - for hosts originally in LAN1
iface eth1
address 10.0.1.1
netmask 255.255.255.0
# LAN2
iface eth2
address 10.0.2.1
netmask 255.255.255.0
WANアクセスを機能させるためのiptablesルール:
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -j MASQUERADE
または、SRV-01の静的IPアドレスをeth0に保持することを選択した場合、ルールを変更できます(ただし、MASQUERADE
は引き続き機能します)。
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j SNAT --to-source 192.168.5.8
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -j SNAT --to-source 192.168.5.8
これにより、LAN3とLAN2の間の通信が可能になります(両方のデフォルトゲートウェイであるSRV-01を介して)。 WANアクセスは、ダブルソースNATのおかげで、LAN3とLAN2の両方からも機能します。
B。SRV-01をLAN1のDHCPサーバーにする
このアプローチは上記ほどクリーンではありませんが、少し簡単です。 ISPルーターでDHCPを無効にできることを前提としています
。
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -d 192.168.5.4 -j SNAT --to-source 192.168.5.8
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 ! -d 192.168.5.0/24 -j SNAT --to-source 192.168.5.8
最初の行はSNATを有効にして、LAN2ホストがISPルーター自体にアクセスできるようにし、2番目の行はLAN2-LAN1アクセスのSNATを無効にします。
繰り返しますが、このアプローチは、同じサブネット内に2つのルーター(SRV-01、ISPルーター)があるため、上記のアプローチほどクリーンではありません。このアプローチを自分で使用したとき、2番目のルーター(このシナリオではSRV-01)がICMPリダイレクトをISPルーターに送信することに気付きました。これは、クライアント(LAN1上のホスト)とアップストリームルーター(ISPルーター)が同じLAN。 SRV-01に実装されたネットワークポリシーが回避される可能性があるため、これは望ましくない場合があります。
お役に立てば幸いです。