dhcpd 응답이 최종 클라이언트에 도달하지 못합니다.
배경: 하우스 네트워크:
107.nn.164.89 - 인터넷으로
192.168.100.0/24 - 하우스 로컬 lan1
192.168.1.254/30 - 맨케이브로 가는 관문
맨케이브:
192.168.1.253/30 - 집으로 가는 관문
192.168.200.254/24 - 맨케이브 로컬 lan1
mancave dhcrelay는 하우스 lan1에서 실행되는 dhcp 서버에 요청을 보냅니다(이 서버는 1.254/30에서도 수신함)
house dhcp는 이러한 요청에 응답합니다.
1.253의 집에서 응답이 오는 것을 볼 수 있으며 dhcrelay는 이를 200.0/24 네트워크로 보냅니다. 아니면 내 생각엔.
200.0/24 네트워크에는 요청이 나가고 다시 들어오는 요청이 표시되지 않습니다.
IP, 게이트웨이 등을 수동으로 설정하면 mancave의 200.0/24 네트워크에서 서핑(또는 무엇이든)할 수 있습니다.
dhcrelay, 경로, tcpdump는 다음과 같습니다:
다라우터는 하우스 네트워크입니다
[root@darouter named]# tcpdump -i ens2 -nn port 67 or port 68
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens2, link-type EN10MB (Ethernet), capture size 262144 bytes
07:10:26.347170 IP 192.168.1.253.67 > 192.168.1.254.67: BOOTP/DHCP, Request from 00:e8:fb:00:67:37, length 548
07:10:26.347488 IP 192.168.1.254.67 > 192.168.200.254.67: BOOTP/DHCP, Reply, length 310
07:10:34.427024 IP 192.168.1.253.67 > 192.168.1.254.67: BOOTP/DHCP, Request from 00:e8:fb:00:67:37, length 548
07:10:34.427282 IP 192.168.1.254.67 > 192.168.200.254.67: BOOTP/DHCP, Reply, length 310
dacave는 mancave 네트워크입니다. 첫 번째는 순 1.253/30입니다.
[root@dacave ~]# tcpdump -i enp3s0 -nn port 67 or port 68
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp3s0, link-type EN10MB (Ethernet), capture size 262144 bytes
09:09:45.827122 IP 192.168.1.253.67 > 192.168.1.254.67: BOOTP/DHCP, Request from 00:e8:fb:00:67:37, length 548
09:09:45.827647 IP 192.168.1.254.67 > 192.168.200.254.67: BOOTP/DHCP, Reply, length 310
09:09:53.906938 IP 192.168.1.253.67 > 192.168.1.254.67: BOOTP/DHCP, Request from 00:e8:fb:00:67:37, length 548
09:09:53.907477 IP 192.168.1.254.67 > 192.168.200.254.67: BOOTP/DHCP, Reply, length 310
^C
4 packets captured
200.0/24 순:
[root@dacave ~]# tcpdump -i enp5s0 -nn port 67 or port 68
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp5s0, link-type EN10MB (Ethernet), capture size 262144 bytes
09:09:45.827036 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:e8:fb:00:67:37, length 548
09:09:53.906885 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:e8:fb:00:67:37, length 548
^C
2 packets captured
dhcrelay 구성:
[root@dacave ~]# show dhc
206: 82462 ? Ss 0:00 /usr/sbin/dhcrelay -d --no-pid 192.168.1.254 -i enp5s0
맨케이브 경로 -n
[root@dacave ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 100 0 0 enp3s0
192.168.1.252 0.0.0.0 255.255.255.252 U 100 0 0 enp3s0
192.168.200.0 0.0.0.0 255.255.255.0 U 101 0 0 enp5s0
[root@dacave ~]#
집 경로 -n
[root@darouter named]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 107.nn.164.89 0.0.0.0 UG 100 0 0 enp2s0f0
0.0.0.0 192.168.1.253 0.0.0.0 UG 101 0 0 ens2
107.nn.164.88 0.0.0.0 255.255.255.252 U 100 0 0 enp2s0f0
192.168.1.252 0.0.0.0 255.255.255.252 U 100 0 0 ens2
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 enp2s0f1
192.168.200.0 192.168.1.254 255.255.255.0 UG 0 0 0 ens2
[root@darouter named]#
보시다시피 200.0/24 네트워크에는 응답이 다시 돌아오지 않습니다.
누락된 경로가 있습니까?
아, 방화벽이 활짝 열려 있습니다(입력, 출력 및 전달 허용). 나는 'iptables -t nat -A POSTROUTING -o enp3s0 -j SNAT를 192.168.1.253으로 시도하고 SNAT 줄을 모두 함께 제거했습니다.
dhcrelay를 '태그'에 넣을 수 없습니다. 왜 그렇게 하려면 누군가 300명의 담당자가 필요할까요?
icarus: dhcrelay 시작에서 -m 전달을 시도했지만 차이가 없습니다. 추적 반환페이지물건의. 나는 명령에 익숙하지 않으며 --help는 나에게 도움이 되지 않습니다. 뭔가를 grep하거나 명령줄 스위치를 설정하여 도움을 받을 수 있나요? 시작하는 동안 dhcrelay가 인쇄한 마지막 메시지는 '모든 기능을 삭제했습니다'라는 것을 알았습니다. 안다면 그게 무슨 뜻인가요?
또한 tcpdump 줄에 -v를 추가하면 다음이 생성됩니다.
dropped privs to tcpdump
tcpdump: listening on enp3s0, link-type EN10MB (Ethernet), capture size 262144 bytes
09:49:42.961047 IP (tos 0x0, ttl 64, id 4, offset 0, flags [DF], proto UDP (17), length 576)
192.168.1.253.67 > 192.168.1.254.67: BOOTP/DHCP, Request from 00:e8:fb:00:67:37, length 548, hops 1, xid 0xdf341d5f, secs 3, Flags [none]
Gateway-IP 192.168.200.254
Client-Ethernet-Address 00:e8:fb:00:67:37
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
MSZ Option 57, length 2: 548
Requested-IP Option 50, length 4: 192.168.200.101
Lease-Time Option 51, length 4: 4294967295
Parameter-Request Option 55, length 14:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Hostname
Domain-Name, RP, TTL, BR
MD, Router-Discovery, Static-Route, YD
YS, NTP
Vendor-Class Option 60, length 23: "Linux 2.4.20-uc0 armv3l"
Client-ID Option 61, length 7: ether 00:e8:fb:00:67:37
09:49:42.961603 IP (tos 0x0, ttl 64, id 37859, offset 0, flags [DF], proto UDP (17), length 338)
192.168.1.254.67 > 192.168.200.254.67: BOOTP/DHCP, Reply, length 310, hops 1, xid 0xdf341d5f, secs 3, Flags [none]
Your-IP 192.168.200.10
Gateway-IP 192.168.200.254
Client-Ethernet-Address 00:e8:fb:00:67:37
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Offer
Server-ID Option 54, length 4: 192.168.1.254
Lease-Time Option 51, length 4: 86400
Subnet-Mask Option 1, length 4: 255.255.255.0
Default-Gateway Option 3, length 4: 192.168.200.254
Domain-Name-Server Option 6, length 4: 192.168.1.254
Hostname Option 12, length 6: "UpEast"
Domain-Name Option 15, length 14: "todhackett.com"
BR Option 28, length 4: 255.255.255.255
NTP Option 42, length 4: 192.168.1.254
^C
2 packets captured
그게 도움이 된다면.
작동했습니다. dhcrelay 매뉴얼에는 내가 수행한 dhcp 요청을 수신하도록 포트를 설정하고 1.252/30을 2개의 IP만 남겨두었다고 명시되어 있습니다. 좋아, 가끔 단락된 내 두뇌는 실제로 dhcp 응답 메시지가 들어오는 것으로 판단하여 1.252/30 인터페이스도 해당 라인에 설정했습니다.
dhcrelay -d --no-pid -i enp5s0 -i enp3s0 192.168.1.254
모두 잘 작동합니다! 답장을 보내주셔서 감사합니다!