あるサーバーのLANを使用して別のサーバーのLANにアクセスする

あるサーバーのLANを使用して別のサーバーのLANにアクセスする

ここで少し迷っていて助けを求めます。 =D

サーバーが3つあります。

1# - LANs A and B
2# - LANs B and C
3# - LANs C and D

2#サーバーを使用して1#サーバーがLAN Bを介して3#サーバーのLAN DのIPにアクセスできるようにするには?

メモ:firewall-cmdCentOS 7で利用可能な(iptables)またはその他の機能を使用できます。

見せるために

LAN B - 192.168.56.0/24
LAN C - 10.8.0.0/24
LAN D - 10.0.4.0/24

それはping 10.0.4.4、サーバーでping()を実行します。1#「クロス」パス雨 - >シー - >ディ

メモ:私は本当に多くのテストをしましたが、この問題を解決する方法がわかりません... = [


編集#1

仕事をより簡単にするために、実際の情報でこのスレッドを豊かにすることにしました。

サーバー#1
  • LAN A - >無視
  • LAN B -> enp0s17 (192.168.56.0/24)

    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:12:26:e2:6c brd ff:ff:ff:ff:ff:ff
        inet 192.168.56.122/24 brd 192.168.56.255 scope global noprefixroute enp0s17
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:12ff:fe26:e26c/64 scope link 
           valid_lft forever preferred_lft forever
    
サーバー#2
  • LAN B -> enp0s17 (192.168.56.0/24)
  • LAN C -> tun0 (10.8.0.0/24)

    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:2c:d1:58 brd ff:ff:ff:ff:ff:ff
        inet 10.0.2.10/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s8
           valid_lft 888sec preferred_lft 888sec
        inet6 fe80::2c5c:27aa:2636:8dc9/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    3: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:1c:a6:b9:59 brd ff:ff:ff:ff:ff:ff
        inet 192.168.56.120/24 brd 192.168.56.255 scope global noprefixroute enp0s17
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:1cff:fea6:b959/64 scope link 
           valid_lft forever preferred_lft forever
    5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
        link/none 
        inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0
           valid_lft forever preferred_lft forever
        inet6 fe80::6a67:7379:b64:967c/64 scope link flags 800 
           valid_lft forever preferred_lft forever
    
サーバー#3
  • LAN C -> tun0 (10.8.0.0/24)
  • LAN D -> enp0s8 (10.0.4.0/24)

    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:71:77:07 brd ff:ff:ff:ff:ff:ff
        inet 10.0.4.4/24 brd 10.0.4.255 scope global noprefixroute dynamic enp0s8
           valid_lft 1115sec preferred_lft 1115sec
        inet6 fe80::899f:8ca4:a7c6:25a7/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    3: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:ea:4e:40:ae brd ff:ff:ff:ff:ff:ff
        inet 192.168.56.121/24 brd 192.168.56.255 scope global noprefixroute enp0s17
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:eaff:fe4e:40ae/64 scope link 
           valid_lft forever preferred_lft forever
    4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
        link/none 
        inet 10.8.0.6/24 brd 10.8.0.255 scope global tun0
           valid_lft forever preferred_lft forever
        inet6 fe80::48c2:b3cd:5845:5d35/64 scope link flags 800 
           valid_lft forever preferred_lft forever
    

@slmの提案に従って、私たちは次のことをしました。

サーバー#2のコマンド
$ echo -n "net.ipv4.ip_forward=1" >> /etc/sysctl.d/ip_forward.conf
$ sysctl -w net.ipv4.ip_forward=1

$ firewall-cmd --permanent --direct --passthrough ipv4 -t nat \
   -I POSTROUTING -o tun0 -j MASQUERADE -s 192.168.56.0/24
$ firewall-cmd --reload
サーバー#1のコマンド
$ ping 10.0.4.4
  • 質問->コマンドが応答しませんでしたping 10.0.4.4
  • 重要-> これは仮想マシンでのテストです。

答え1

これは非常に基本的なネットワーキングです。異なるLANセグメントを接続するには、次のものが必要です。ルーター。 NATも必要なく、iptables単純かつ簡単にルーティングすればよい。

何らかの理由で、人々はルーティングに少なくともNATまたはNATが必要だと思うようですiptables。インターネットにはこれに関するアドバイスがいっぱいです。これは本当に不要で少し面倒です。

何をすべきか

1)サーバー#2で転送を有効にします。これについてはすでに説明しました。にファイルを追加して/etc/sysctl.d/再起動した後にcat /proc/sys/net/ipv4/ip_forward表示されることを確認する1か、を使用して直接アクティブにしますecho 1 > /proc/sys/net/ipv4/ip_forward

2)ゲートウェイを使用するすべてのホストにルーティングを設定します。。これがほとんどの人が忘れてしまうことです。したがって、サーバー#1には次のものが必要です。

ip route add 10.8.0.0/24 dev enp0s17 via 192.168.56.120
ip route add 10.0.4.0/24 dev enp0s17 via 192.168.56.120

LAN C と D にアクセスしたい LAN A と B の他のすべてのホストにも同様です。サーバー#3(およびそのサーバーが連絡している他のすべてのホスト)には、次のものが必要です。

ip route add 192.168.56.0/24 dev tun0 via 10.8.0.1

これは、各ホストにリモートLANに到達しようとすると、サーバー#2を介してローカルLAN上のサーバー#2の適切なIPアドレスを使用する必要があることを知らせます。

ip route get a.b.c.dサーバー#1とサーバー#3でパスが機能しているかどうかをテストできます。それではテストに試してみてくださいping。それでも問題がある場合は、デバッグを使用してくださいtcpdump。ファイアウォールが邪魔になる場合は、必要に応じてファイアウォールを無効にしてください。

すべてが正常な場合は、DHCPを介して展開したり、適切な設定ファイルに追加するなど、任意の方法でパスを永久に作成します。

答え2

表面的にはNATを説明しています。 NAT(ネットワークアドレスの解釈)は、あるネットワーク(LAN)からのトラフィックが通常、2つのネットワーク間の別のサーバー(WAN)からのものであると偽装しています。

 server #1                                                                                             
 +-----------------+                                                                                   
 |                 |                                                                                   
 |                 |                                                                                   
 |         10.0.0.2|------+                                                                            
 |                 |      |            server #3 (NAT)              +--------------+                   
 +-----------------+    +-------+     +-----------------+           |              |                   
                        |switch |-----+10.0.0.1         |           |     (D)      |                   
                        +-------+     |                 |           |              |                   
 server #2                 |          | (C)   54.1.1.23 |-----------+ 54.1.1.1     |-----+Internet     
 +-----------------+       |          |                 |           |              |                   
 |                 |       |          +-----------------+           |              |                   
 |           (B)   |       |                                        |              |                   
 |         10.0.0.3|-------+                                        +--------------+                   
 |                 |                                                                                   
 +-----------------+ 

このチュートリアルでは、CentOS 7.xで設定する方法について説明します。CentOS 7へのアウトバウンドNATゲートウェイの展開

このタイプの設定のポイントは、2つの異なる(C)ネットワークのIPアドレスと2つのNICを持つようにサーバーを構成することです。また、トラフィックを転送するようにこのサーバーを設定する必要があります。 Linuxシステムのデフォルトの動作は、次のことを行わないことです。

$ sudo sysctl -w net.ipv4.ip_forward=1
$ sudo 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.d/ip_forward.conf'

(C)これを実行した後は、トラフィックも転送するようにシステムのファイアウォールを設定する必要があります。

$ sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat \
    -I POSTROUTING -o eth0 -j MASQUERADE -s 10.0.0.0/24
$ sudo firewall-cmd --reload

関連情報