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 でも listen します)
house dhcp はそれらの要求に応答します。
応答が 1.253 で家から届き、dhcrelay がそれを 200.0/24 ネットワークに送信しているのがわかります。少なくとも私はそう思います。
200.0/24 ネットワークでは、リクエストが送信され、何も戻ってこないことが示されています。
IP、ゲートウェイなどを手動で設定すれば、男の隠れ家にある 200.0/24 ネットワークからサーフィン (またはその他) ができます。
dhcrelay、route、tcpdump は次のとおりです:
darouterはハウスネットワークです
[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 to 192.168.1.253 を試し、SNAT 行をすべて削除しました。
dhcrelay を「タグ」に入れることができませんでした。一体なぜ、それを実行するには 300 の rep が必要なのでしょうか?
icarus: dhcrelayの起動時に-m forwardを試してみましたが、違いは見られません。straceは戻りますページいろいろです。コマンドに詳しくないので、--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はIPが2つしかないため除外しました。私の時々短絡する脳は、確かにDHCP応答メッセージが来ていると判断したので、1.252/30インターフェースも次の行に設定しました。
dhcrelay -d --no-pid -i enp5s0 -i enp3s0 192.168.1.254
すべてうまくいきました!ご返信ありがとうございます!