[Starlingx-discuss] Procedure to configure rules to enable access to port in controller

Cordoba Malibran, Erich erich.cordoba.malibran at intel.com
Wed Jul 17 04:23:30 UTC 2019


Thanks Mingyuan. 

It turns out that I was having problems with the proxy. I was using: 

$ NO_PROXY=10.10.10.3 curl http://10.10.10.3:9100/metrics 

Instead of 

$ no_proxy=10.10.10.3 curl http://10.10.10.3:9100/metrics

At the end, only the policy was required to enable the access to the port, 
the additional iptables command wasn't needed. 

-Erich


On 7/15/19, 8:20 PM, "Qi, Mingyuan" <mingyuan.qi at intel.com> wrote:

    Erich,
    
    The "No route to host" sounds like you don't have the route set to 10.10.10.3 in your external host.
    Check with "ip route" to see if 10.10.10.0/24 route or default route were set. I suppose you are working on a bare metal system.
    
    Mingyuan
    
    
    -----Original Message-----
    From: Cordoba Malibran, Erich [mailto:erich.cordoba.malibran at intel.com] 
    Sent: Tuesday, July 16, 2019 0:58
    To: starlingx-discuss at lists.starlingx.io
    Subject: [Starlingx-discuss] Procedure to configure rules to enable access to port in controller
    
    Hi, 
    
    I'm trying to enable a monitoring service in the controller. After some debugging I realize that the access rules are managed by calico. So, I'm trying to apply the following policy: 
    
    apiVersion: "crd.projectcalico.org/v1"
    kind: GlobalNetworkPolicy
    metadata:
      name: custom-testing-port
    spec:
      selector: "has(iftype) && iftype == 'oam'"
      order: 100
      applyOnForward: false
      types:
      - Ingress
      - Egress
      ingress:
      - action: Allow
        ipVersion: 4
        protocol: TCP
        destination:
          ports: [9100]
      egress:
      - action: Allow
        ipVersion: 4
        protocol: TCP
    
    
    And I run this with: 
    
    $ kubectl apply -f policy.yaml
    
    Then I used this command to enable the access to the port.
    
    $ sudo iptables -A INPUT -p tcp -m multiport --dports 9100 -m comment --comment "Testing port expose" -j ACCEPT 
    
    
    This seems to be the same procedure as described here[0] to enable access to horizon. 
    
    If I do a `iptables-save | grep 9100` I can see the rules: 
    
    -A cali-pi-custom-testing-port -p tcp -m comment --comment "cali:htmNJYyMe7qlodKr" -m multiport --dports 9100 -j MARK --set-xmark 0x10000/0x10000                                            
    -A cali-pi-custom-testing-port -p tcp -m comment --comment "cali:htmNJYyMe7qlodKr" -m multiport --dports 9100 -j MARK --set-xmark 0x10000/0x10000                                            
    -A INPUT -p tcp -m multiport --dports 9100 -m comment --comment "Testing port expose" -j ACCEPT                                                                                              
    -A cali-pi-custom-testing-port -p tcp -m comment --comment "cali:htmNJYyMe7qlodKr" -m multiport --dports 9100 -j MARK --set-xmark 0x10000/0x10000  
    
    
    However, when I try to run a curl from an external host I get a "A communication error occurred: 'No route to host'" error. If I run this same command from inside the controller I get the data.
    
    $ curl http://10.10.10.3:9100/metrics
    
    I'm sure I'm missing a step, does anybody knows what I can do next to enable the port access? 
    
    
    - [0] https://wiki.openstack.org/wiki/StarlingX/Containers/Installation#Generate_the_stx-openstack_application_tarball
    _______________________________________________
    Starlingx-discuss mailing list
    Starlingx-discuss at lists.starlingx.io
    http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss
    



More information about the Starlingx-discuss mailing list