Hallo zusammen,
aus verschiedenen Gründen möchte ich die MTU für eth0 (kann auch für eth1 gelten) auf meinem UCS 4.1 Server umstellen. Das geht unter UCS ja nicht direkt durch Editieren von /etc/network/interfaces, da diese Datei überschrieben wird. Stattdessen wird man auf /etc/univention/templates/files/etc/network/interfaces.d hingewiesen. Hier finde ich ein Skript 10-default, das sich mir aber auf den ersten Blick nicht erschließt:
[code]@!@
from univention.config_registry.interfaces import Interfaces
from itertools import groupby
from operator import itemgetter
def auto(interface, start):
“”“Print ‘auto iface’ statements only once.”""
print
if not start:
return
if interface not in auto.printed_interfaces:
print ‘auto %s’ % (interface,)
auto.printed_interfaces.add(interface)
auto.printed_interfaces = set()
def ipv4(ucr, interfaces):
“”“Setup IPv4.”""
gateway = interfaces.ipv4_gateway
if gateway is False:
print ‘# WARNING: invalid IPv4 address in gateway’
for name, iface in interfaces.all_interfaces:
addr = iface.ipv4_address()
if iface.type == 'dhcp':
if interfaces.handler == 'ifplugd' and \
ucr.is_true(value=iface.get('ifplugd', '1')):
auto(iface.name, iface.start)
print 'iface %s inet dhcp' % (iface.name,)
else:
continue
elif iface.type == 'manual':
auto(iface.name, iface.start)
print 'iface %s inet manual' % (iface.name,)
elif addr is False:
print '# ERROR: invalid IPv4 address for interface %s' % (name,)
continue
elif addr:
auto(iface.name, iface.start)
print 'iface %s inet static' % (iface.name,)
print '\taddress %s' % (addr.ip,)
print '\tnetmask %s' % (addr.netmask,)
if iface.network:
print '\tnetwork %s' % (iface.network,)
if iface.broadcast:
print '\tbroadcast %s' % (iface.broadcast,)
if gateway:
if addr.prefixlen == addr.max_prefixlen and \
interfaces.primary in (name, iface.name):
print '\tpointopoint %s' % (gateway,)
print '\tgateway %s' % (gateway,)
gateway = None
elif gateway in addr:
print '\tgateway %s' % (gateway,)
gateway = None
else:
continue
for route in iface.routes:
print '\tup route add -%s dev %s' % (route, iface.name)
for value in iface.options:
print '\t%s' % (value,)
def ipv6(interfaces):
“”“Setup IPv6.”""
gateway = interfaces.ipv6_gateway
if gateway is False:
print ‘# WARNING: invalid IPv6 address in ipv6/gateway’
gateway_zoneindex = interfaces.ipv6_gateway_zone_index
# Validate addresses
interface_addresses = {}
for _iface_name, iface in interfaces.all_interfaces:
for name in iface.ipv6_names:
addr = iface.ipv6_address(name)
if not addr:
print '# ERROR: incomplete/invalid IPv6 address in interfaces/%s/ipv6/%s/*' % \
(iface.name, name)
continue
addresses = interface_addresses.setdefault(iface.name, set())
if addr.ip in addresses:
print '# ERROR: duplicate IPv6 address in interfaces/%s/ipv6/%s/*' % \
(iface.name, name)
continue
addresses.add(addr.ip)
# configure interface
for iface, names in groupby(interfaces.ipv6_interfaces, itemgetter(0)):
try:
addresses = interface_addresses[iface.name]
except KeyError:
continue # validation failed
auto(iface.name, iface.start)
print 'iface %s inet6 static' % (iface.name,)
if gateway and gateway_zoneindex == iface.name:
print '\tgateway %s' % (gateway, )
gateway = None
for i, (iface, name) in enumerate(names):
addr = iface.ipv6_address(name)
try:
addresses.remove(addr.ip)
except KeyError:
continue # invalid or duplicate
print '# %s' % (name,)
if i == 0: # first
print '\taddress %s' % (addr.ip,)
print '\tnetmask %s' % (addr.prefixlen,)
else:
print '\tup ip -6 addr add %s dev %s' % (addr, iface.name)
print '\tdown ip -6 addr del %s dev %s' % (addr, iface.name)
if gateway_zoneindex is None:
# check if gateway is local on this interface
if gateway:
if addr.prefixlen == addr.max_prefixlen and \
iface.name == interfaces.primary:
data = (gateway, iface.name)
print '\tup ip -6 route add %s dev %s' % data
print '\tup ip -6 route add default via %s dev %s' % data
print '\tdown ip -6 route del default via %s dev %s' % data
print '\tdown ip -6 route del %s dev %s' % data
gateway = None
elif gateway in addr:
print '\tgateway %s' % (gateway,)
gateway = None
if not iface.ipv4_address():
for value in iface.options:
print '\t%s' % (value,)
def main():
“”“Create configured interfaces.”""
interfaces = Interfaces(configRegistry)
ipv4(configRegistry, interfaces)
ipv6(interfaces)
main()
vim:set sw=4 ts=4 noet:
@!@
[/code]
Wie kann ich hier den gewünschten MTU Wert eintragen ? Oder geht das per UCS registry ?
Danke & Gruß
Martin