ubuntu – dhclient没有设置默认网关

前端之家收集整理的这篇文章主要介绍了ubuntu – dhclient没有设置默认网关前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Azure云中运行了一些Ubuntu 16.04虚拟机.每当我重新启动VM时,我都必须手动设置默认网关.

网关应由dhclient设置.我激活了调试并得到了这个:

root @ backend01:/etc/dhcp/dhclient-exit-hooks.d# cat /tmp/dhclient-script.debug

root@backend01:/etc/dhcp/dhclient-exit-hooks.d# cat /tmp/dhclient-script.debug
Thu Jun  2 17:18:33 UTC 2016: entering /etc/dhcp/dhclient-enter-hooks.d,dumping variables.
reason='PREINIT'
interface='eth0'
--------------------------
Thu Jun  2 17:18:33 UTC 2016: entering /etc/dhcp/dhclient-enter-hooks.d,dumping variables.
reason='REBOOT'
interface='eth0'
new_ip_address='10.10.0.13'
new_network_number='10.10.0.0'
new_subnet_mask='255.255.0.0'
new_broadcast_address='10.10.255.255'
new_routers='10.10.0.1'
new_rfc3442_classless_static_routes='0 10 10 0 1 32 168 63 129 16 10 10 0 1'
new_domain_name='azure-prod'
new_domain_search='azure-prod.'
new_domain_name_servers='10.11.0.250 10.11.0.251'

因此路由器选项设置正确.甚至租约文件显示正确的值:

lease {
  interface "eth0";
  fixed-address 10.10.0.13;
  server-name "RD7CFE90879C98";
  option subnet-mask 255.255.0.0;
  option dhcp-lease-time 4294967295;
  option routers 10.10.0.1;
  option dhcp-message-type 5;
  option dhcp-server-identifier 168.63.129.16;
  option domain-name-servers 10.11.0.250,10.11.0.251;
  option domain-search "azure-prod.";
  option dhcp-renewal-time 4294967295;
  option rfc3442-classless-static-routes 0,10,1,32,168,63,129,16,1;
  option unknown-245 a8:3f:81:10;
  option dhcp-rebinding-time 4294967295;
  option domain-name "azure-prod";
  renew 0 2152/07/09 23:41:47;
  rebind 0 2152/07/09 23:41:47;
  expire 0 2152/07/09 23:41:47;
}

这是我的/etc/dhcp/dhclient.conf看起来的样子:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

send host-name = gethostname();
request subnet-mask,broadcast-address,time-offset,routers,domain-name,domain-name-servers,domain-search,host-name,dhcp6.name-servers,dhcp6.domain-search,dhcp6.fqdn,dhcp6.sntp-servers,netbios-name-servers,netbios-scope,interface-mtu,rfc3442-classless-static-routes,ntp-servers;


timeout 300;

supersede domain-name "azure-prod";
supersede domain-search "azure-prod";

为什么dhclient没有设置我的默认路由?

我发现了问题.由于Azure DHCP设置了rfc3442-classless-static-routes选项,因此dhclient-script会忽略路由器选项.

rfc3442由/etc/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes中的退出钩子脚本处理

我的问题是我有另一个自定义的exit-hook,它在结尾处执行了一个退出0,因此结束了dhclient-script的执行,而dhclient-script从来没有执行rfc3442-classless-routes exit-hook.

这被埋没了,花了我差不多一天的工作.所以我希望这将使某人在将来遇到同样的问题.

猜你在找的Ubuntu相关文章