dnsmasqを使用して小規模ローカルネットワーク上のクライアントにパスをプッシュする

dnsmasqを使用して小規模ローカルネットワーク上のクライアントにパスをプッシュする

使ってみようドメイン名システム小規模ローカルネットワーク上のクライアントにパスをプッシュします。

しかし、私のクライアント(サーバー#1、#2、#3)はこれらのパスを使用できません。 dnsmasqサービスが実行されているのに何が間違っているのかわかりません。

これは私の "/etc/dnsmasq.conf"ファイルの内容です:

domain-needed
bogus-priv
no-resolv
no-poll
server=/localnet/192.168.56.254
server=8.8.3.3
server=8.8.8.8
server=208.67.220.220
local=/brlightinternet.local/
interface=vboxnet0
listen-address=192.168.56.254
no-hosts
expand-hosts
domain=brlightinternet.local
dhcp-range=192.168.56.3,192.168.56.253,12h
dhcp-option=option:router,192.168.56.254

# pushing routes
dhcp-option=121,10.0.4.0/24,10.0.6.4,10.8.0.0/24,10.0.6.4,10.0.6.0/24,10.8.0.1
dhcp-option=249,10.0.4.0/24,10.0.6.4,10.8.0.0/24,10.0.6.4,10.0.6.0/24,10.8.0.1

dhcp-option=vendor:MSFT,2,1i
cache-size=150

重要:「192.168.56.254」は、dnsmasqを実行しているサーバーのIPではありません。 IPは「192.168.56.1」です。私が知っている限り、dnsmasqに別のIPを割り当てることができます。

以下は、各クライアント(サーバー#1、#2、#3)のネットワーク構成(「/etc/sysconfig/network-scripts/ifcfg-enp0s17」)です。

BOOTPROTO=static
DEVICE=enp0s17
DNS1=192.168.56.254
GATEWAY=192.168.56.254
IPADDR=192.168.56.120
IPV6INIT=NO
NETMASK=255.255.255.0
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
USERCTL=NO
ZONE=public

...ipだけが変わります...

Server #1 -> IPADDR=192.168.56.122
Server #2 -> IPADDR=192.168.56.120
Server #3 -> IPADDR=192.168.56.121

各サーバーの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: 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

[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

[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

注1:サーバー#2で「ip_forward」が有効になっています...

echo -n "net.ipv4.ip_forward=1

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


ノート2:このスレッドは完全に質問に関連しています...

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

このソリューションを使用すると、問題なくパスを作成できます。

https://unix.stackexchange.com/a/457347/61742

...しかし、dnsmasqで行ったように集中化できる利点はありません。


ありがとうございます! =D

ベストアンサー1

アジア情報通信技術協会

残念ながら、dnsmasqに複数のdhcpオプションを指定すると、最後のオプション(すべてではない)が適用されます。

したがって、2つのIPアドレス(ネットワークとゲートウェイ)を提供するだけです。

dhcp-option=121,10.0.4.0/24,10.8.0.1

そして、各サーバー[123]に道を尋ねるように指示する必要があります。

ISC DHCP クライアントの場合このオプションはサポートされていません/etc/dhclient.conf(現在のDebianには1つあります)、またはに次の行を追加する必要があります/etc/dhcp3/dhclient.conf

option classless-static-routes code 121 = array of { ip-address, ip-address };

dhclient121のオプションについて学び、いくつかのスクリプトを使用して/etc/dhcp3/dhclient-exit-hooks.d/configure_static_routesネットワーク構成を自動化します。

良い説明です。

おすすめ記事