リモートオフィスには次の設定があります。
--- vlan interface --- Remote Router --tun0--> Main office Firewall --> Active Directory DHCP
私はそれを使用してdhcp3-relay
dhcpリクエスト(ブロードキャスト)をプライマリADサーバー(ユニキャスト)に転送します。問題は、dhcp要求がリモートルータvlanインターフェイス(ブロードキャスト)に到着し、ルーティングを介してADサーバーに正しく転送され、回答を提供しますが、パケットを受信すると内部的にリモートルータのインターフェイスtun0
に転送されないことです。vlanXXX
要求はもともとから来ました。これはtcpdump
リモートルータの出力です。
tun0
相互作用:
tcpdump -i tun0 -nevvv udp port 67 or 68
13:23:45.049995 Out ethertype IPv4 (0x0800), length 592: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 576) IP.VPN.REMOTE.OFFICE.67 > IP.OF.AD.SERVER.67: BOOTP/DHCP, Request from MAC:ADDR:OF:THE:REMOTE:CLIENT, length 548, hops 1, xid 0x2c896edc, secs 11527, Flags [none] (0x0000)
Gateway-IP IP.OF.NET.GATEWAY
Client-Ethernet-Address MAC:ADDR:OF:THE:REMOTE:CLIENT [|bootp]
13:23:45.145014 In ethertype IPv4 (0x0800), length 350: (tos 0x0, ttl 125, id 24829, offset 0, flags [none], proto UDP (17), length 334) IP.OF.AD.SERVER.67 > IP.OF.NET.GATEWAY.67: BOOTP/DHCP, Reply, length 306, xid 0x2c896edc, Flags [none] (0x0000)
Your-IP NEW.LEASE.FROM.AD
Server-IP IP.OF.AD.SERVER
Gateway-IP IP.OF.NET.GATEWAY
Client-Ethernet-Address MAC:ADDR:OF:THE:REMOTE:CLIENT [|bootp]
ここでは、ソフトウェアによってパケットがdhcrelay
本社に正しく転送され、ADがホストに新しいリースを提供していることがわかります。私たちは、openvpn(mpls)に基づいていない他のリンクからこのソリューションを使用してリモートオフィスにIPを割り当てました。
vlanXXX
相互作用:
tcpdump -i vlanXXX -nevvv udp port 67 or 68
13:21:45.022067 MAC:ADDR:OF:THE:REMOTE:CLIENT > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 590: (tos 0x0, ttl 64, id 147, offset 0, flags [none], proto UDP (17), length 576) 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from MAC:ADDR:OF:THE:REMOTE:CLIENT, length 548, xid 0x496364c3, secs 11407, Flags [none] (0x0000)
Client-Ethernet-Address MAC:ADDR:OF:THE:REMOTE:CLIENT [|bootp]
tun0
ホストからのブロードキャスト要求のみを表示できますが、到着してルーティングする必要がある応答は表示されませんvlanXXX
。
さらに、リモートルーターはこのプロトコルに非常に寛大です。
iptables -A INPUT -p udp --sport 67:68 --dport 67 -j ACCEPT
iptables -A OUTPUT -p udp --sport 67 --dport 67:68 -j ACCEPT
iptables -A FORWARD -p udp --sport 67:68 --dport 67 -j ACCEPT
iptables -A FORWARD -p udp --sport 67 --dport 67:68 -j ACCEPT
dhcp3 - リレープロセス情報:
hafw:~# ps fax | grep dhc
5714 pts/0 D+ 0:00 \_ grep dhc
5087 ? Ss 0:04 /usr/sbin/dhcrelay3 -i vlanxxx IP.OF.AD.SERVER
デフォルト割り当て(/etc/default/dhcp3-relay
):
# Defaults for dhcp3-relay initscript
# sourced by /etc/init.d/dhcp3-relay
# installed at /etc/default/dhcp3-relay by the maintainer scripts
#
# This is a POSIX shell fragment
#
# What servers should the DHCP relay forward requests to?
SERVERS="IP.OF.AD.SERVER"
# On what interfaces should the DHCP relay (dhrelay) serve DHCP requests?
INTERFACES="vlanXXX"
# Additional options that are passed to the DHCP relay daemon?
OPTIONS=""
ソフトウェアバージョン:
hafw:~# dpkg -l | grep dhcp3-relay
ii dhcp3-relay 3.1.1-6+lenny6 DHCP relay daemon
リレー設定で試した操作は動作を変更しません。
-a
プロキシ拡張を追加するオプション- ホップ数を追加
-c 20
し、デフォルト値(10)から20に増やします。それにもかかわらず、ADに到達するには8つのホップしかありません。 - インターネットに向かってインターネットVLANインターフェイスを追加します
tun0
。vlanYYY
INTERFACES=
オプションがないように空にしてください-i
。
私は何を逃したことがありませんか?
ベストアンサー1
これはユーティリティ自体のデザインバグのように見えますdhcrelay
。それはただ聞くことができます放送インターフェイスであり、OpenVPNはピアツーピア相互作用。この-i
フラグはこれを変更しません(セットで選択したインターフェイスの数だけを減らす)。放送相互作用)。
dhcrelay
解決策は、ゲートウェイ自体ではなくリモートLAN内のデバイスで実行するようです。その後、中継されたユニキャストトラフィックはOpenVPNトンネルを介してDHCPサーバーに転送され、戻ります。
このような作業に小型で手頃な価格のサーバーが必要な場合は、Raspbianを実行するRaspberry Piをお勧めします。各リモートオフィスの一対のサーバーでDNSを実行します。
引用する