Search code examples
networkingkubernetescentosflannel

How to access internal from external?


I have two network interfaces on a node. One is internal network and the other is external network. Internal network is 192.168.50.0/255.255.255.0(internal network). And external network is 192.168.0.0/255.255.255.0. Kubernetes consists of 192.168.50.0/255.255.255.0. I want to approach internal network from another local nodes without using internal network interface. How can I solve this problem?


Solution

  • Without subnet masks , I do not understand how they are different networks.

    But , in any case , you need to enable routing packets from one interface to another. I assume you are on Linux node , there you may enable ip-forwarding.

    echo 1 >> /proc/sys/net/ipv4/ip_forward
    

    Then set up some rules in iptables to perform the natting and forwarding:

    Example rules:

    # Always accept loopback traffic
    iptables -A INPUT -i lo -j ACCEPT
    
    # We allow traffic from the LAN side
    iptables -A INPUT -i eth0 -j ACCEPT
    
    ######################################################################
    #
    #                         ROUTING
    #
    ######################################################################
    
    # eth0 is LAN
    # eth1 is WAN
    
    # Allow established connections
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    # Masquerade.
    iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    # fowarding
    iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    # Allow outgoing connections from the LAN side.
    iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
    

    https://serverfault.com/questions/453254/routing-between-two-networks-on-linux