Portál AbcLinuxu, 4. května 2025 14:18
192.168.112.0/24 via 192.168.28.240 dev eth0 proto dhcp metric 100
192.168.112.5 via 192.168.28.254 dev eth0 proto dhcp metric 100
Predpokladam, ze jde o nejakou ficuru, o ktere nic nevim, ale nemuzu ani nic podobneho vygooglit.
cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eth0"
UUID="20646e0a-bf7b-4948-98fc-c9f5865c1aa4"
DEVICE="eth0"
ONBOOT="yes"
Dik moc
Cos popsal mi moc nedává smysl - buď je DNS server jako tady na lokální síti, a pak routování přes default GW nebude fungovat, nebo je v Internetu, a pak DNS bez funkční default GW bude stejně nanic.To není vůbec pravda. Při split DNS view konfiguracích se používají různé DNS servery pro různé connections a tím pádem alespoň teoreticky dává smysl pro každý DNS server přidat routu přes gateway toho kterého spojení. Ale faktem zůstává, že v kódu jsem to zatím nenašel, oproti tomu jsem ke svému překvapení našel něco k DHCP.
nm_ip4_config_add_route
. Zatím mi nejpodezřelejší přijdou src/dhcp-manager/nm-dhcp-utils.c
a ./src/dhcp-manager/nm-dhcp-systemd.c
. Taky není problém si NM pustit v debuggeru a tahle volání si odchytit.
cat /etc/resolv.conf # Generated by NetworkManager search cosi.kdesi nameserver 192.168.112.5Co pouziva NetworkManager neumim bohuzel poznat. Radka, ktera tam nema byt:
192.168.112.5 via 192.168.28.254 dev enp0s3 proto dhcp metric 100Dik moc
Co pouziva NetworkManager neumim bohuzel poznat.Jestli se používá NetworkManager a v jaké verzi poznáš...
rpm -q NetworkManager ps -ef | grep NetworkManager
pavlix@mole ~/tmp/NetworkManager-1.0.6-27.el7.src/NetworkManager-1.0.6 $ grep ip4_config_add_route `c` | grep -v test ./libnm-util/nm-setting-ip4-config.c: * nm_setting_ip4_config_add_route: ./libnm-util/nm-setting-ip4-config.c:nm_setting_ip4_config_add_route (NMSettingIP4Config *setting, ./src/nm-ip4-config.c: nm_ip4_config_add_route (config, &route); ./src/nm-ip4-config.c: nm_ip4_config_add_route (dst, nm_ip4_config_get_route (src, i)); ./src/nm-ip4-config.c: nm_ip4_config_add_route (dst, nm_ip4_config_get_route (src, i)); ./src/nm-ip4-config.c: * nm_ip4_config_add_route: ./src/nm-ip4-config.c:nm_ip4_config_add_route (NMIP4Config *config, const NMPlatformIP4Route *new) ./src/devices/nm-device.c: nm_ip4_config_add_route (config, &route); ./src/devices/nm-device.c: nm_ip4_config_add_route (composite, &r); ./src/vpn-manager/nm-vpn-connection.c: nm_ip4_config_add_route (config, &route); ./src/vpn-manager/nm-vpn-connection.c: nm_ip4_config_add_route (config, &route); ./src/vpn-manager/nm-vpn-connection.c: nm_ip4_config_add_route (config, &route); ./src/dhcp-manager/nm-dhcp-utils.c: nm_ip4_config_add_route (ip4_config, &route); ./src/dhcp-manager/nm-dhcp-utils.c: nm_ip4_config_add_route (ip4_config, &route); ./src/dhcp-manager/nm-dhcp-utils.c: nm_ip4_config_add_route (ip4_config, &route); ./src/dhcp-manager/nm-dhcp-utils.c: nm_ip4_config_add_route (ip4_config, &route); ./src/dhcp-manager/nm-dhcp-systemd.c: nm_ip4_config_add_route (ip4_config, &route);
/* * RFC 2132, section 9.7 * DHCP clients use the contents of the 'server identifier' field * as the destination address for any DHCP messages unicast to * the DHCP server. * * Some ISP's provide leases from central servers that are on * different subnets that the address offered. If the host * does not configure the interface as the default route, the * dhcp server may not be reachable via unicast, and a host * specific route is needed. **/ str = g_hash_table_lookup (options, "dhcp_server_identifier"); if (str) { if (inet_pton (AF_INET, str, &tmp_addr) > 0) { nm_log_info (LOGD_DHCP4, " server identifier %s", str); if ( nm_utils_ip4_address_clear_host_address(tmp_addr, address.plen) != nm_utils_ip4_address_clear_host_address(address.address, address.plen) && !nm_ip4_config_get_direct_route_for_host (ip4_config, tmp_addr)) { /* DHCP server not on assigned subnet and the no direct route was returned. Add route */ NMPlatformIP4Route route = { 0 }; route.network = tmp_addr; route.plen = 32; /* this will be a device route if gwaddr is 0 */ route.gateway = gwaddr; route.source = NM_IP_CONFIG_SOURCE_DHCP; route.metric = priority; nm_ip4_config_add_route (ip4_config, &route); nm_log_dbg (LOGD_IP, "adding route for server identifier: %s", nm_platform_ip4_route_to_string (&route)); } } else nm_log_warn (LOGD_DHCP4, "ignoring invalid server identifier '%s'", str); }(src/dhcp-manager/nm-dhcp-utils.c)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.