ISC KEA DHCP(DHCPv4)サーバーを使用してクライアントにパスをプッシュする方法は?

ISC KEA DHCP(DHCPv4)サーバーを使用してクライアントにパスをプッシュする方法は?

質問:

私のインフラストラクチャには5つのサーバー(サーバー#1、#2、#3、#4、#5)があります。 ISC KEA DHCP(DHCPv4)を持つサーバー(サーバー#5)を使用しようとしています(https://kea.isc.org/wiki)を使用して別のサーバー(サーバー#1、#2、#3、#4)にパスをプッシュします。目的は、すべてのサーバーが#2と3#の間のLAN(VPNトンネル)を使用して他のサーバー(など)とping通信できるようにすることです。ssh


仕える人:

Server #1 - DHCPv4 Client;
Server #2 - DHCPv4 Client and OpenVPN Server;
Server #3 - DHCPv4 Client and OpenVPN Client;
Server #4 - DHCPv4 Client;
Server #5 - ISC KEA DHCP (DHCPv4).

サブネット:

192.168.56.0/24
10.1.2.0/24
10.1.4.0/24
10.1.6.0/24
10.8.0.1/24 (VPN tunnel)

サーバー設定:

注:ここに示されているインフラストラクチャは、テストを実行するためにVirtualBoxによって作成されたテスト環境(実際の環境ではない)の一部です。たとえば、192.168.56.0/24 ネットワークはすべてのサーバーに存在します。

各サーバーのLAN(ネットワークインターフェース)に関する情報...

サーバー#1

[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:56:84:1f brd ff:ff:ff:ff:ff:ff
    inet 10.1.6.3/24 brd 10.1.6.255 scope global noprefixroute dynamic enp0s8
       valid_lft 3514sec preferred_lft 3514sec
    inet6 fe80::a00:27ff:fe56:841f/64 scope link 
       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:12:26:e2:6c brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.3/24 brd 192.168.56.255 scope global noprefixroute dynamic enp0s17
       valid_lft 3606sec preferred_lft 3606sec
    inet6 fe80::a00:12ff:fe26:e26c/64 scope link 
       valid_lft forever preferred_lft forever

サーバー#2

[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.1.6.4/24 brd 10.1.6.255 scope global noprefixroute dynamic enp0s8
       valid_lft 3856sec preferred_lft 3856sec
    inet6 fe80::a00:27ff:fe2c:d158/64 scope link 
       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.4/24 brd 192.168.56.255 scope global noprefixroute dynamic enp0s17
       valid_lft 3897sec preferred_lft 3897sec
    inet6 fe80::a00:1cff:fea6:b959/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.1/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::ec75:f69e:e65c:1215/64 scope link flags 800 
       valid_lft forever preferred_lft forever

サーバー#3

[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.1.4.5/24 brd 10.1.4.255 scope global noprefixroute dynamic enp0s8
       valid_lft 3741sec preferred_lft 3741sec
    inet6 fe80::a00:27ff:fe71:7707/64 scope link 
       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.5/24 brd 192.168.56.255 scope global noprefixroute dynamic enp0s17
       valid_lft 3766sec preferred_lft 3766sec
    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::6763:9d85:a754:bf0f/64 scope link flags 800 
       valid_lft forever preferred_lft forever

サーバー#4

[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:e0:d2:c8 brd ff:ff:ff:ff:ff:ff
    inet 10.1.4.6/24 brd 10.1.4.255 scope global noprefixroute dynamic enp0s8
       valid_lft 3907sec preferred_lft 3907sec
    inet6 fe80::a00:27ff:fee0:d2c8/64 scope link 
       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:27:aa:e7:60 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.6/24 brd 192.168.56.255 scope global noprefixroute dynamic enp0s17
       valid_lft 3907sec preferred_lft 3907sec
    inet6 fe80::a00:27ff:feaa:e760/64 scope link 
       valid_lft forever preferred_lft forever

サーバー#5

[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:63:ce:c5 brd ff:ff:ff:ff:ff:ff
    inet 10.1.2.2/24 brd 10.1.2.255 scope global noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe63:cec5/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:98:ee:35 brd ff:ff:ff:ff:ff:ff
    inet 10.1.4.2/24 brd 10.1.4.255 scope global noprefixroute enp0s9
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe98:ee35/64 scope link 
       valid_lft forever preferred_lft forever
4: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:b6:6b:50 brd ff:ff:ff:ff:ff:ff
    inet 10.1.6.2/24 brd 10.1.6.255 scope global noprefixroute enp0s10
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:feb6:6b50/64 scope link 
       valid_lft forever preferred_lft forever
5: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:78:ed:d4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.2/24 brd 192.168.56.255 scope global noprefixroute enp0s17
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe78:edd4/64 scope link 
       valid_lft forever preferred_lft forever

ありがとうございます!

ベストアンサー1

この回答(チュートリアル)について:

このチュートリアルは、ISC KEA DHCP(DHCPv4)の構成と展開の「成功事例」を示すように設計されています。 DHCP クライアントにパスをプッシュするデモに焦点を当てます。プレゼンテーションをより有益にするために、ケースバイケースで他の事項も考慮されます。

特定のケース(VirtualBoxを使用したシミュレーション)では、OpenVPNトンネルを使用し、それをLAN-to-LANインフラストラクチャで2つの方法で使用するようにルーティングする方法を示します。

このチュートリアルはシナリオを念頭に置いて書かれています。インターネット上のVPNの一方にはハイパーバイザー(Xen)を実行するサーバー(Serverloft)があり、VPNのもう一方には企業のLANがあり、すべてのサーバーは両方のネットワークにあります。誰もが透明に通信できます。

このチュートリアルでは他の考慮事項を考慮していますので、このチュートリアル全体をお読みください。

インターネット上で見つけることができる「実用的な」チュートリアルがないので、私たちはこのチュートリアルを実行する必要性を感じました。このチュートリアルはまた、ここに提示されている基本概念に大きな困難を抱く私たちのような観客を対象としています。

続ける前に、これまで助けてくださった多くの方々に感謝の言葉を伝えたいと思います。 @Filipe Brandenburger、@Rui F Ribeiro、@AB、@Isaac、@slmなどのユーザーに特に感謝します。 (残念ながら、誰もが引用することはできません)。

このチュートリアルのサーバー:

Server #1 - DHCPv4 Client (ips ending with 3);
Server #2 - DHCPv4 Client and OpenVPN Server (ips ending with 4);
Server #3 - DHCPv4 Client and OpenVPN Client (ips ending with 5);
Server #4 - DHCPv4 Client (ips ending with 6);
Server #5 - ISC KEA DHCP (DHCPv4) Server (ips ending with 2).

注:すべてのサーバーはCentOS 7です。

サブネット:

192.168.56.0/24
10.1.2.0/24
10.1.4.0/24
10.1.6.0/24
10.8.0.1/24 (VPN tunnel)

サーバー#5 - ISC KEA DHCP(DHCPv4)サーバー:

。 CentOS 7にISC KEA DHCP(DHCPv4)をインストールする

yum -y install gcc-c++ openssl-devel wget

cd /usr/local/src/
wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz
tar -zxvf boost_1_67_0.tar.gz
cd boost_1_67_0
./bootstrap.sh
./b2 install
rm -rf /usr/local/src/boost_1_67_0*

cd /usr/local/src/
wget https://github.com/log4cplus/log4cplus/releases/download/REL_2_0_1/log4cplus-2.0.1.tar.gz
tar zxvf log4cplus-2.0.1.tar.gz
cd log4cplus-2.0.1
./configure
make
make install
rm -rf /usr/local/src/log4cplus-2.0.1*

cd /usr/local/src/
wget https://ftp.isc.org/isc/kea/1.4.0/kea-1.4.0.tar.gz
tar zxvf kea-1.4.0.tar.gz
cd kea-1.4.0
./configure --enable-shell
make
make install
rm -rf /usr/local/src/kea-1.4.0*

。 systemd(systemctl)でKEAサービスの設定(開始設定)を作成します。

vi '/usr/lib/systemd/system/kea-dhcp4.service'

[Unit]
Description=Kea DHCPv4 Server
Documentation=man:kea-dhcp4(8)
Wants=network-online.target
After=network-online.target
After=time-sync.target

[Service]
ExecStart=/usr/local/sbin/kea-dhcp4 -c /usr/local/etc/kea/kea-dhcp4.conf

[Install]
WantedBy=multi-user.target

vi '/usr/lib/systemd/system/kea-dhcp6.service'

[Unit]
Description=Kea DHCPv6 Server
Documentation=man:kea-dhcp6(8)
Wants=network-online.target
After=network-online.target
After=time-sync.target

[Service]
ExecStart=/usr/local/sbin/kea-dhcp6 -c /usr/local/etc/kea/kea-dhcp6.conf

[Install]
WantedBy=multi-user.target

vi '/usr/lib/systemd/system/kea-dhcp-ddns.service'

[Unit]
Description=Kea DHCP-DDNS Server
Documentation=man:kea-dhcp-ddns(8)
Wants=network-online.target
After=network-online.target
After=time-sync.target

[Service]
ExecStart=/usr/local/sbin/kea-dhcp-ddns -c /usr/local/etc/kea/kea-dhcp-ddns.conf

[Install]
WantedBy=multi-user.target

。構成ファイル「/usr/local/etc/kea/kea-dhcp4.conf」を作成(調整)します。

cp '/usr/local/etc/kea/kea-dhcp4.conf' '/usr/local/etc/kea/kea-dhcp4.conf_BAK'

vi '/usr/local/etc/kea/kea-dhcp4.conf'

{
    "Dhcp4": {
        "interfaces-config": {
            "interfaces": ["enp0s8", "enp0s9", "enp0s10", "enp0s17"]
        },
        "control-socket": {
            "socket-type": "unix",
            "socket-name": "/tmp/kea-dhcp4-ctrl.sock"
        },
        "lease-database": {
            "type": "memfile",
            "lfc-interval": 1800
        },
        "expired-leases-processing": {
            "reclaim-timer-wait-time": 10,
            "flush-reclaimed-timer-wait-time": 25,
            "hold-reclaimed-time": 3600,
            "max-reclaim-leases": 100,
            "max-reclaim-time": 250,
            "unwarned-reclaim-cycles": 5
        },
        "valid-lifetime": 4000,
        "renew-timer": 1000,
        "rebind-timer": 2000,

        // Defines the "rfc3442-classless-static-routes" option.
        // More details https://unix.stackexchange.com/a/460147/61742 .
        "option-def": [{
                "name": "rfc3442-classless-static-routes",
                "code": 121,
                "space": "dhcp4",
                "type": "record",
                "array": true,
                "record-types": "uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8"
            }
        ],

        "subnet4": [{
                "interface": "enp0s8",
                "subnet": "10.1.2.0/24",
                "pools": [{
                        "pool": "10.1.2.3 - 10.1.2.254"
                    }
                ]
            }, {
                "interface": "enp0s9",
                "subnet": "10.1.4.0/24",
                "pools": [{
                        "pool": "10.1.4.3 - 10.1.4.254"
                    }
                ],

                // Reserve ips for the interfaces that have these MAC ADDRESS on that network.
                "reservations": [{
                        // Server 3# (4)
                        "hw-address": "08:00:27:71:77:07",
                        "ip-address": "10.1.4.5"
                    }, {
                        // Server 4# (6)
                        "hw-address": "08:00:27:e0:d2:c8",
                        "ip-address": "10.1.4.6"
                    }
                ],

                // Defines a route to be pushed to this subnet.
                // More details https://unix.stackexchange.com/a/460147/61742 .
                "option-data": [{
                        "name": "rfc3442-classless-static-routes",
                        "data": "24,10,1,6,10,1,4,5"
                    }
                ]

            }, {
                "interface": "enp0s10",
                "subnet": "10.1.6.0/24",
                "pools": [{
                        "pool": "10.1.6.3 - 10.1.6.254"
                    }
                ],

                // Reserve ips for the interfaces that have these MAC ADDRESS on that network.
                "reservations": [{
                        // Server 1# (3)
                        "hw-address": "08:00:27:56:84:1f",
                        "ip-address": "10.1.6.3"
                    }, {
                        // Server 2# (4)
                        "hw-address": "08:00:27:2c:d1:58",
                        "ip-address": "10.1.6.4"
                    }
                ],

                // Defines a route to be pushed to this subnet.
                // More details https://unix.stackexchange.com/a/460147/61742 .
                "option-data": [{
                        // Server 3# (4) e Server 4# (6)
                        "name": "rfc3442-classless-static-routes",
                        "data": "24,10,1,4,10,1,6,4"
                    }
                ]

            }, {
                "interface": "enp0s17",
                "subnet": "192.168.56.0/24",
                "pools": [{
                        "pool": "192.168.56.3 - 192.168.56.254"
                    }
                ],
                "option-data": [{
                        "name": "domain-name-servers",
                        "data": "192.168.56.1"
                    }, {
                        "name": "routers",
                        "data": "192.168.56.1"
                    }
                ],

                // Reserve ips for the interfaces that have these MAC ADDRESS on that network.
                "reservations": [{
                        // Server 1# (3)
                        "hw-address": "08:00:12:26:e2:6c",
                        "ip-address": "192.168.56.3"
                    }, {
                        // Server 2# (4)
                        "hw-address": "08:00:1c:a6:b9:59",
                        "ip-address": "192.168.56.4"
                    }, {
                        // Server 3# (5)
                        "hw-address": "08:00:ea:4e:40:ae",
                        "ip-address": "192.168.56.5"
                    }, {
                        // Server 4# (6)
                        "hw-address": "08:00:27:aa:e7:60",
                        "ip-address": "192.168.56.6"
                    }
                ]
            }
        ]
    },
    "Logging": {
        "loggers": [{
                "name": "kea-dhcp4",
                "output_options": [{
                        "output": "/usr/local/var/log/kea-dhcp4.log"
                    }
                ],
                "severity": "INFO",
                "debuglevel": 0
            }
        ]
    }
}

。ネットワークインターフェイスの設定

これらのネットワークインターフェイスは、すべてのコンピュータにDHCPサーバーを提供します(上記の「kea-dhcp4.conf」を参照)。

注:実際のシナリオでは、「OpenVPNサーバーネットワーク」のコンピューターには1つのDHCPサーバーがあり、「OpenVPNクライアントネットワーク」のコンピューターには別のDHCPサーバーがあります。この分割はOSIモデルの「階層2」について話すときにうまく機能するため、「ルーティング」、「IP転送」などの「階層3」から分離されます。 2つのネットワーク。

vi '/etc/sysconfig/network-scripts/ifcfg-enp0s17'

BOOTPROTO=static
DEVICE=enp0s17
DNS1=192.168.56.1
GATEWAY=192.168.56.1
IPADDR=192.168.56.2
IPV6INIT=NO
NETMASK=255.255.255.0
NM_CONTROLLED=yes
ONBOOT=yes
USERCTL=NO

vi '/etc/sysconfig/network-scripts/ifcfg-enp0s8'

BOOTPROTO=static
DEVICE=enp0s8
IPADDR=10.1.2.2
IPV6INIT=NO
NETMASK=255.255.255.0
NM_CONTROLLED=yes
ONBOOT=yes
USERCTL=NO

vi '/etc/sysconfig/network-scripts/ifcfg-enp0s9'

BOOTPROTO=static
DEVICE=enp0s9
IPADDR=10.1.4.2
IPV6INIT=NO
NETMASK=255.255.255.0
NM_CONTROLLED=yes
ONBOOT=yes
USERCTL=NO

vi '/etc/sysconfig/network-scripts/ifcfg-enp0s10'

BOOTPROTO=static
DEVICE=enp0s10
IPADDR=10.1.6.2
IPV6INIT=NO
NETMASK=255.255.255.0
NM_CONTROLLED=yes
ONBOOT=yes
USERCTL=NO

サーバー#2 - クライアントDHCPv4およびOpenVPNサーバー:

。 OpenVPNサーバーの設定

vi '/etc/openvpn/server/server.conf'

重要:提案されたインフラストラクチャでOPENVPNを操作するために必要な設定(「server.conf」と「client0」)のみを検討してください。追加の設定が必要です。詳細については、OpenVPNのドキュメントを確認してください。ここで解決された要件の詳細については、このリンクを参照してください。https://openvpn.net/index.php/open-source/documentation/howto.html#scope

dev tun
topology subnet
server 10.8.0.0 255.255.255.0
push "route 10.1.6.0 255.255.255.0"
push "route 10.1.4.0 255.255.255.0"
client-to-client
ifconfig 10.8.0.1 255.255.255.0

。 OpenVPNクライアントの設定

注:これらの設定はサーバー側クライアントで使用されます。

vi '/etc/openvpn/ccd/client0'

ifconfig-push 10.8.0.6 255.255.255.0
iroute 10.1.4.0 255.255.255.0
route 10.1.4.0 255.255.255.0

サーバー #3 - クライアント DHCPv4 および OpenVPN クライアント

。 OpenVPNクライアントの設定

vi '/etc/openvpn/client/client0.conf'

dev tun
remote 192.168.56.4 1194

サーバー#2と#3:

。 「OpenVPN」(サーバー#2と#3)のファイアウォールをオンにします。

注:OpenVPNはこのトピックの焦点では​​ないので、ここでは詳しく説明しません!

firewall-cmd --permanent --add-service openvpn
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

。 「ip_forward」を有効にする(サーバー#2と#3)

echo -n "net.ipv4.ip_forward=1

" >> /etc/sysctl.d/ip_forward.conf
sysctl -w net.ipv4.ip_forward=1

サーバー#1、#2、#3、#4:

。ネットワークインターフェイスの設定

vi '/etc/sysconfig/network-scripts/ifcfg-enp0s8'

注:すべてのシステムのすべてのインターフェースは、ネットワーク構成がサーバー#5(KEA DHCPサーバー)で提供されているのと同じモデルに従います。

BOOTPROTO=dhcp
DEVICE=enp0s8
IPV6INIT=NO
ONBOOT=yes
ZONE=public

vi '/etc/sysconfig/network'

NETWORKING=yes

テスト:

。これらのテストがすべて肯定的である場合、このチュートリアルは正常に実行されます。

Server #1
    ping 10.1.4.5 # (#3)
    ssh <USER>@10.1.4.5 # (#3)
    ping 10.1.4.6 # (#4)
    ssh <USER>10.1.4.6 # (#4)
Server #2
    ping 10.1.4.5 # (#3)
    ssh <USER>10.1.4.5 # (#3)
    ping 10.1.4.6 # (#4)
    ssh <USER>10.1.4.6 # (#4)
Server #3
    ping 10.1.6.3 # (#1)
    ssh <USER>10.1.6.3 # (#1)
    ping 10.1.6.4 # (#2)
    ssh <USER>10.1.6.4 # (#2)
Server #4
    ping 10.1.6.3 # (#1)
    ssh <USER>10.1.6.3 # (#1)
    ping 10.1.6.4 # (#2)
    ssh <USER>10.1.6.4 # (#2)

ヒント:

インターネット(WAN)テスト

curl http://www.google.com

クライアントでDHCPを更新する

dhclient -r

クライアントからDHCPリース設定を削除します。

注:DHCPサーバーの動作をテストすることが重要です。

rm -rf $(find /var/lib/NetworkManager/ -name "*.lease" | egrep <NETWORK_INTERFACE_NAME>)

サーバーからDHCPリース設定を削除します。

注:DHCPサーバーの動作をテストすることが重要です。

rm -rf /usr/local/var/kea/kea-leases4.csv*

その他のガイド:

このチュートリアルで使用される環境に関する一般的なガイドラインと情報:

  1. この構成チュートリアルは、VirtualBoxを使用してテスト環境で構築されました。

  2. 使用されているすべてのネットワークは「ホスト専用」ネットワークであり、そのうちの1つ(192.168.56.0/24)にはインターネットがあります(3を参照)。これらのどれもVirtualBox DHCPを有効にしてはいけません。

  3. デフォルトでは、「ホストのみ」ネットワークはインターネットにアクセスできません(https://www.virtualbox.org/manual/ch06.html#networkingmodes)。しかし、このチュートリアルではhttps://forum.manjaro.org/t/manjaro-and-virtualbox-host-only-with-internet/28722/12私はこの制限を「避ける」方法を教えます。

  4. 192.168.56.0/24ネットワークのインターネット(WAN)は、必要な場合にのみ有効にする必要があります。curl http://www.google.comサーバー#1、#2、#3、および#4でインターネットアクセス()チェックを除いてテストを実行するには、無効にする必要があります(3を参照)。

  5. ネットワークテスト(ping、sshなど)を実行するときは、「dnsmasq」や「iptables」などのサービスをホストで無効にする必要があります(3を参照)。

  6. 通常、テスト中は、サーバー#5のDHCPを除き、ネットワークのレイヤ2にDHCPがあってはなりません。


TunまたはTap(OpenVPN)の使用 - ディスカッション:

この回答の展開モデルについて、@Eduardo Lucioと@Isaacの間のチャット(chat.stackexchange.com)の次の部分を変更しました。現在、私たち(@ Eduardo Lucio)は「トン」を使用することを選択していますが、これは「より難しい」構成です。ただし、VPNの両方のネットワーク間で真に透明な統合をしたい場合は、Tap(およびすべての長所と短所)を選択してください。私は@Isaacの説明が何を使用するか(タブまたはチューニング)を決定するのに非常に関連していると思います。

エドゥアルド・ルシウ土曜日15:22 @Isaac https://serverfault.com/questions/21157/should-i-use-tap-or-tun-for-openvpn/21168#21168 私はこれがルーターなしで作業を実行する方法だと思います。以下を見てください。 「2つの異なる場所にある2つのイーサネットセグメントを接続する必要がある場合は、Tapを使用してください。この設定では、VPNの両方の同じIPサブネット(たとえば10.0.0.0/24)にコンピュータを持つことができます。」したがって、「VPNはイーサネットスイッチのように動作します」。しかし、別の問題があります...たとえば、このモデルを使用すると、ネットワーク10.7.1.0/24(VPN A側)のコンピュータがネットワーク192.168.58.0/24(VPN B側)と透過的に通信できるようになります。ありますか?

イサク22:19あなたは正しい質問を始めました。

しかし、すべてのネットワークにルーターがあります!まあ。

データパケットがコンピュータに到達する方法は2つだけです。 (1) コンピュータは同じコンピュータの一部です。メタリックライン(簡易)スイッチ(または以前の名前のハブ)などの他のコンピュータ(同じレイヤ2の範囲)のすべてのポートとして使用するか、同じVLANに属しています(VLANの経験がない場合は、後で使用するためにこのデータポイントを維持してください) 。私が今言及したことを参考にして忘れてください)。

Isaac Sat 22:52 (2) パケットが到着しました。ルーティング済みルータを介した2つのレイヤ2の範囲の間。パケットルーティングの有無は、スイッチのルーティングテーブルによって決定されます。

これまではこれは一般的なネットワーク記述にすぎず、コンピュータに指示するまでこれを実現するまで、特定のユースケースとは関係がないことがわかります。今後パケットは、コンピュータがルーティングデバイス、つまり単にルータとして機能していることを示します。ルーターにはルーティングテーブルが必要です。たとえば、VPNクライアントであるサーバー4(10.1.4.6)が配信を有効にして設定する必要があるとします(各質問には数字が多く、すべてが異なり、具体的に説明するのは困難です)。 10.1.6.x に向けられたすべてのパケットは tun インターフェイスにルーティングされます。パケットはVPNに入り、もう一方の端でVPNを終了します。サーバー3(10.1.4.5と同じネットワーク範囲10.1.4.yにあります)には、すべてのパケットを送信するためのデフォルト(ゲートウェイ)パスのみが必要です。いいえ独自のネットワーク範囲(10.1.4.0/24)〜GW 10.1.4.6。

VPN のパケットが別のコンピュータ Server 2 (10.1.6.4 に位置) に到達すると、パケットは次のようになります。ルーティング済みしかもルーター10.1.4.x 宛てのパケットをサーバー 2 に送信するには、オフィスルーターとオフィスルーターの間にパスエントリが必要です。サーバー2は、受信したすべてのパケット(およびそのようなルーティングエントリがある)を内部的にトンインターフェイスにルーティングする必要があります。明確に説明されましたか?使用されるデバイスはトン(階層3デバイス)なので、これらのパスはすべて必要です。

よりシンプルで安全性の低いデバイスはTap(レイヤ2デバイス)です。コンピュータを追加するスイッチだと思います。ランダムな(レベル3)IPアドレス、またはブロードキャストパケット、ARP確認などで転送されるかどうかにかかわらず、受信したすべてのパケットを転送します。この意味で、オフィスLANのコンピュータはVPNの反対側にあるコンピュータのARP攻撃に対して脆弱になります。 VPNの両側にあるすべてのコンピュータは1つの幸せな家族になります(すべてがお互いを信頼します)。ただし、IPアドレス10.7.1.0/24からのパケットはVPNの反対側に表示されます。しかし、質問する方法:(10.7.1.0/24および192.168.58.0/24のコンピュータは通信できますか?)「いいえ」答えを強制します。異なる(プライベート)ネットワーク上のコンピュータが互いに通信できる唯一の方法は、NAT(Network Address Translation)または同様の方法でローカルアドレスを外部(リモート)アドレスに変換することです。したがって、NATの各端は同じネットワーク範囲を見ます。上記はIPv4にのみ適用されます。これを見て、IPv6に拡張する必要があります。

おすすめ記事