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에서 했던 것처럼 중앙 집중화할 수 있는 이점은 없습니다.


감사해요! =디

답변1

아시아정보통신기술협회

불행하게도 dnsmasq에 여러 dhcp 옵션을 제공하면 마지막 옵션(모두는 아님)이 적용됩니다.

따라서 두 개의 IP 주소(네트워크 및 게이트웨이)만 제공하면 됩니다.

dhcp-option=121,10.0.4.0/24,10.8.0.1

그리고 각 서버[123]에게 길을 물어보라고 지시해야 합니다.

ISC DHCP 클라이언트의 경우이 옵션은 지원되지 않습니다/etc/dhclient.conf(현재 Debian에는 하나가 있습니다.) 또는에 다음과 같은 줄을 추가해야 합니다 /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네트워크 구성을 자동화하세요.

좋은 설명이네요.

관련 정보