iptables,为 DHCP 设置 DSCP?
iptables, setting DSCP for DHCP?
我正在尝试设置 DHCP 数据包上的 DSCP 位。虽然下面的 udp 工作正常,但数据包总是使用 16 的 DSCP 发送。有什么想法吗?
iptables -t mangle -A FORWARD -p udp -j DSCP --set-dscp 1
iptables -t mangle -A OUTPUT -p udp -j DSCP --set-dscp 1
iptables -t mangle -A PREROUTING -p udp -j DSCP --set-dscp 1
iptables -t mangle -A POSTROUTING -p udp -j DSCP --set-dscp 1
我正在使用 dhclient - 我也没有看到任何设置它的选项。
看起来 dhclient 硬编码在这里,仅供参考:
void assemble_udp_ip_header (interface, buf, bufix,
from, to, port, data, len)
struct interface_info *interface;
unsigned char *buf;
unsigned *bufix;
u_int32_t from;
u_int32_t to;
u_int32_t port;
unsigned char *data;
unsigned len;
{
struct ip ip;
struct udphdr udp;
memset (&ip, 0, sizeof ip);
/* Fill out the IP header */
IP_V_SET (&ip, 4);
IP_HL_SET (&ip, 20);
ip.ip_tos = IPTOS_LOWDELAY;
我认为 DHCP 不能被 iptables 捕获,因为它使用绕过整个 netfilter 机制的 RAW 套接字。有一些消息来源在此处报告了这一点:
http://louwrentius.com/why-filtering-dhcp-traffic-is-not-always-possible-with-iptables.html
https://serverfault.com/questions/297383/unable-to-block-dhcp-and-other-traffic-on-input-chain
我正在尝试设置 DHCP 数据包上的 DSCP 位。虽然下面的 udp 工作正常,但数据包总是使用 16 的 DSCP 发送。有什么想法吗?
iptables -t mangle -A FORWARD -p udp -j DSCP --set-dscp 1
iptables -t mangle -A OUTPUT -p udp -j DSCP --set-dscp 1
iptables -t mangle -A PREROUTING -p udp -j DSCP --set-dscp 1
iptables -t mangle -A POSTROUTING -p udp -j DSCP --set-dscp 1
我正在使用 dhclient - 我也没有看到任何设置它的选项。
看起来 dhclient 硬编码在这里,仅供参考:
void assemble_udp_ip_header (interface, buf, bufix,
from, to, port, data, len)
struct interface_info *interface;
unsigned char *buf;
unsigned *bufix;
u_int32_t from;
u_int32_t to;
u_int32_t port;
unsigned char *data;
unsigned len;
{
struct ip ip;
struct udphdr udp;
memset (&ip, 0, sizeof ip);
/* Fill out the IP header */
IP_V_SET (&ip, 4);
IP_HL_SET (&ip, 20);
ip.ip_tos = IPTOS_LOWDELAY;
我认为 DHCP 不能被 iptables 捕获,因为它使用绕过整个 netfilter 机制的 RAW 套接字。有一些消息来源在此处报告了这一点:
http://louwrentius.com/why-filtering-dhcp-traffic-is-not-always-possible-with-iptables.html
https://serverfault.com/questions/297383/unable-to-block-dhcp-and-other-traffic-on-input-chain