Changeset 10584 in genesis


Ignore:
Timestamp:
Apr 26, 2012, 1:13:00 PM (13 years ago)
Author:
rick
Message:

Revamp of the hybrid config setup of rc.conf.local to support the issues with
default routing on hybrid machines which are NOT iLeiden proxies but normal
proxies instead.

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • nodes/HybridHuub/wleiden.yaml

    r10546 r10584  
    1515release   : "9.0-RELEASE"
    1616remote_access: "huubs.xs4all.nl:1022"
    17 service_ileiden: False
    18 service_proxy: True
     17service_proxy_ileiden: False
     18service_proxy_normal: True
    1919status    : "up"
    2020
  • nodes/HybridRick/wleiden.yaml

    r10576 r10584  
    1515release   : "9.0-RELEASE"
    1616remote_access: "riff.vanderzwet.net:2022"
    17 service_ileiden: False
    18 service_proxy: True
     17service_proxy_ileiden: True
     18service_proxy_normal: True
    1919status    : "up"
    2020
  • tools/gformat.py

    r10570 r10584  
    4747    from yaml import Loader, Dumper
    4848
    49 from jinja2 import Template
     49from jinja2 import Environment, Template
     50def yesorno(value):
     51  return "YES" if bool(value) else "NO"
     52env = Environment()
     53env.filters['yesorno'] = yesorno
     54def render_template(datadump, template):
     55  result = env.from_string(template).render(datadump)
     56  # Make it look pretty to the naked eye, as jinja templates are not so
     57  # friendly when it comes to whitespace formatting
     58  ## Remove extra whitespace at end of line lstrip() style.
     59  result = re.sub(r'\n[\ ]+','\n', result)
     60  ## Include only a single newline between an definition and a comment
     61  result = re.sub(r'(["\'])\n+([a-z]|\n#\n)',r'\1\n\2', result)
     62  ## Remove extra newlines after single comment
     63  result = re.sub(r'(#\n)\n+([a-z])',r'\1\2', result)
     64  return result
    5065
    5166import logging
     
    8297
    8398  # Use some boring defaults
    84   datadump = { 'service_proxy' : False, 'service_ileiden' : False }
     99  datadump = { 'service_proxy_normal' : False, 'service_proxy_ileiden' : False, 'service_accesspoint' : True }
    85100  f = open(gfile, 'r')
    86101  datadump.update(yaml.load(f,Loader=Loader))
     
    450465  for host in get_hybridlist():
    451466    hostdump = get_yaml(host)
    452     if hostdump['service_ileiden']:
     467    if hostdump['service_proxy_ileiden']:
    453468      ileiden_proxies.append(hostdump)
    454     if hostdump['service_proxy']:
     469    if hostdump['service_proxy_normal']:
    455470      normal_proxies.append(hostdump)
    456471
     
    461476
    462477  output = generate_header("#");
    463   output += Template("""\
     478  output += render_template(datadump, """\
    464479hostname='{{ autogen_fqdn }}'
    465480location='{{ location }}'
     
    500515route_wleiden="-net 172.16.0.0/12 {{ internalroute }}"
    501516{% endif -%}
    502 {% endif -%}
    503 
    504 {% if nodetype == "Hybrid" %}
    505 #
    506 # Hybrid Configuration
    507 #
    508 captive_portal_interfaces="{{ autogen_dhcp_interfaces|default('none', true) }}"
    509 externalif="{{ externalif|default('vr0', true) }}"
    510 masterip="{{ masterip }}"
    511 
    512 pf_rules="/etc/pf.hybrid.conf"
    513 pf_flags_hybrid="-D ext_if=$externalif -D ext_if_net=$externalif:network -D captive_portal_interfaces=$captive_portal_interfaces -D masterip=$masterip"
    514 {% if service_ileiden -%}
    515 # Service iLeiden
    516 service_ileiden="yes"
    517 pf_flags="$pf_flags_hybrid -D publicnat=80,443"
    518 {% else -%}
    519 pf_flags="$pf_flags_hybrid -D publicnat=0"
    520 lvrouted_flags="$lvrouted_flags -z $list_ileiden_proxies"
    521 {% endif -%}
    522 
    523 {% if service_proxy %}
    524 # Service Proxy
    525 service_proxy="yes"
    526 tinyproxy_enable="yes"
    527 {% else -%}
    528 service_proxy="no"
    529 pen_wrapper_enable="yes"
    530 {% endif -%}
    531 
    532 {% if board == "ALIX2" %}
    533 # ''Fat'' configuration, board has 256MB RAM
    534 dnsmasq_enable="NO"
    535 named_enable="YES"
    536 dhcpd_enable="YES"
    537 {% endif -%}
    538 
    539 {% if gateway -%}
    540 defaultrouter="{{ gateway }}"
    541 {% endif -%}
    542 #
    543 # END Hybrid Configuration
    544 #
    545 {% endif -%}
    546 
    547 
    548 {% if nodetype == "CNode" %}
     517
     518{% elif nodetype == "Hybrid" %}
     519  #
     520  # Hybrid Configuration
     521  #
     522  captive_portal_interfaces="{{ autogen_dhcp_interfaces|default('none', true) }}"
     523  externalif="{{ externalif|default('vr0', true) }}"
     524  masterip="{{ masterip }}"
     525 
     526  # Defined services
     527  service_proxy_ileiden="{{ service_proxy_ileiden|yesorno }}"
     528  service_proxy_normal="{{ service_proxy_normal|yesorno }}"
     529  service_accesspoint="{{ service_accesspoint|yesorno }}"
     530  #
     531
     532  {% if service_proxy_ileiden or service_proxy_normal %}
     533    pf_rules="/etc/pf.hybrid.conf"
     534    pf_flags="-D ext_if=$externalif -D ext_if_net=$externalif:network -D masterip=$masterip"
     535   
     536    {% if service_proxy_ileiden %}
     537      pf_flags="$pf_flags -D publicnat=80,443"
     538    {% else %}
     539      pf_flags="$pf_flags -D publicnat=0"
     540    {% endif %}
     541
     542    {% if service_proxy_normal %}
     543      pf_flags="$pf_flags -D ext_if_default_route={{ gateway|default('127.127.127.127') }}"
     544      lvrouted_flags="$lvrouted_flags -z $list_ileiden_proxies"
     545    {% endif %}
     546  {% else %}
     547    pf_rules="/etc/pf.node.conf"
     548  {% endif %}
     549
     550  {% if service_proxy_normal %}
     551    tinyproxy_enable="yes"
     552  {% else %}
     553    pen_wrapper_enable="yes"
     554  {% endif %}
     555
     556  {% if service_accesspoint %}
     557    pf_flags="$pf_flags -D captive_portal_interfaces=$captive_portal_interfaces"
     558  {% endif %}
     559
     560  {% if board == "ALIX2" %}
     561    #
     562    # ''Fat'' configuration, board has 256MB RAM
     563    #
     564    dnsmasq_enable="NO"
     565    named_enable="YES"
     566    dhcpd_enable="YES"
     567  {% endif -%}
     568
     569  {% if service_proxy_ileiden and gateway %}
     570    defaultrouter="{{ gateway }}"
     571  {% endif %}
     572{% elif nodetype == "CNode" %}
    549573#
    550574# NODE iLeiden Configuration
     
    561585lvrouted_flags="-u -s s00p3rs3kr3t -m 28 -z $list_ileiden_proxies"
    562586{% endif %}
    563 \n
    564 """).render(datadump)
     587
     588#
     589# Interface definitions
     590#\n
     591""")
    565592
    566593  # lo0 configuration:
     
    688715  for host in get_hybridlist():
    689716    hostdump = get_yaml(host)
    690     if hostdump['service_proxy'] or hostdump['service_ileiden']:
     717    if hostdump['service_proxy_ileiden'] or hostdump['service_proxy_normal']:
    691718      datadump['autogen_edge_nameservers'] += "nameserver %(masterip)-15s # %(autogen_realname)s\n" % hostdump
    692719
     
    698725nameserver 127.0.0.1
    699726
    700 {% if service_proxy or service_ileiden or nodetype == 'Proxy' -%}
     727{% if service_proxy_normal or service_proxy_ileiden or nodetype == 'Proxy' -%}
    701728nameserver 8.8.8.8   # Google Public NameServer
    702729nameserver 8.8.4.4   # Google Public NameServer
     
    722749 - Hulp Node
    723750{% endif -%}
    724 {% if service_proxy -%}
     751{% if service_proxy_normal -%}
    725752 - Normal Proxy
    726753{% endif -%}
    727 {% if service_ileiden -%}
     754{% if service_proxy_ileiden -%}
    728755 - iLeiden Proxy
    729756{% endif %}
Note: See TracChangeset for help on using the changeset viewer.