Peale Bridge käivitamist ei saa välisvõrku Ubuntu 10.04

Linuxi ja andmesidega seotud küsimused

Moderaator: Moderaatorid

Vasta
kkristjan
Pingviini külastaja
Pingviini külastaja
Postitusi: 29
Liitunud: 21.10.2010, 18:15

Peale Bridge käivitamist ei saa välisvõrku Ubuntu 10.04

Postitus Postitas kkristjan »

Paigaldasin Ubuntu 10.04 serveri, sellele paigaldasin OpenVPN teenuse.

Võrgu konfiguratsioon on selline (IP-aadressid on näitliku):

Kood: Vali kõik

iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
Enne OpenVPN teenuse käivitamist käivitan skripti:

Kood: Vali kõik

    #!/bin/bash

    #################################
    # Set up Ethernet bridge on Linux
    # Requires: bridge-utils
    #################################

    # Define Bridge Interface
    br="br0"

    # Define list of TAP interfaces to be bridged,
    # for example tap="tap0 tap1 tap2".
    tap="tap0"

    # Define physical ethernet interface to be bridged
    # with TAP interface(s) above.
    eth="eth0"
    eth_ip="192.168.8.4"
    eth_netmask="255.255.255.0"
    eth_broadcast="192.168.8.255"

    for t in $tap; do
        openvpn --mktun --dev $t
    done

    brctl addbr $br
    brctl addif $br $eth

    for t in $tap; do
        brctl addif $br $t
    done

    for t in $tap; do
        ifconfig $t 0.0.0.0 promisc up
    done

    ifconfig $eth 0.0.0.0 promisc up

    ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast

Skriptile lisasin ka rea "eth_gateway=ip-aadress", kuid sellest ei olnud kasu.

Sellele järgnevalt käivitan OpenVPN.

Probleem on ühenduse puudumine välisvõrguga st kui üritan pingida näiteks www.ee siis saan vastuseks "Network is unreachable". Kui taaskäivitan võrguteenused siis näen, et toimub nimelahendus aga pingi vastuseks on ikka "Destination Host Unreachable".
Kasutaja avatar
obundra
Vana Pingviin
Vana Pingviin
Postitusi: 1213
Liitunud: 04.08.2005, 03:00

Postitus Postitas obundra »

Mida route -n näitab?
kkristjan
Pingviini külastaja
Pingviini külastaja
Postitusi: 29
Liitunud: 21.10.2010, 18:15

Postitus Postitas kkristjan »

obundra kirjutas:Mida route -n näitab?
route -n kui serveris ei tööta bridge ega openvpn:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.6.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.6.1 0.0.0.0 UG 100 0 0 eth0

route -n kui serveris töötab bridge ja võrguteenustele ei ole tehtud taaskäivitamist:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.6.0 0.0.0.0 255.255.255.0 U 0 0 0 br0


route -n kui serveris töötab bridge ja võrguteenustele on tehtud taaskäivitamine:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.6.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.6.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.6.1 0.0.0.0 UG 100 0 0 eth0

Peale OpenVPN käivitamist route -n väärtused ei muutu.
Kasutaja avatar
obundra
Vana Pingviin
Vana Pingviin
Postitusi: 1213
Liitunud: 04.08.2005, 03:00

Postitus Postitas obundra »

Paistab, et default gw on sul eth0 br0-i asemel.Ma võtsin testiks selle sama skripti ning lisasin sinna gateway ip ja käsu see default gw-ks sättida.
Nüüd näeb skript välja ni:

Kood: Vali kõik

#!/bin/bash 

     ################################# 
     # Set up Ethernet bridge on Linux 
     # Requires: bridge-utils 
     ################################# 

     # Define Bridge Interface 
     br="br0" 

     # Define list of TAP interfaces to be bridged, 
     # for example tap="tap0 tap1 tap2". 
     tap="tap0" 

     # Define physical ethernet interface to be bridged 
     # with TAP interface(s) above. 
     eth="eth0" 
     eth_ip="192.168.74.47" 
     eth_netmask="255.255.255.0" 
     eth_broadcast="192.168.74.255" 
     gw_ip="192.168.74.1" 

     for t in $tap; do 
         openvpn --mktun --dev $t 
     done 

     brctl addbr $br 
     brctl addif $br $eth 

     for t in $tap; do 
         brctl addif $br $t 
     done 

     for t in $tap; do 
         ifconfig $t 0.0.0.0 promisc up 
     done 
     

     ifconfig $eth 0.0.0.0 promisc up 

     ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast up
     route add default gw $gw_ip
ja ruutingutabel nii:

Kood: Vali kõik

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.74.0    0.0.0.0         255.255.255.0   U     0      0        0 br0
0.0.0.0         192.168.74.1    0.0.0.0         UG    0      0        0 br0
Peale skripti käivitamist läks natuke aega enne kui liiklus käima hakkas, võrguteenust polnud vaja taaskäivitada.Kerneli logis olid selle kohta sellised jutud:

Kood: Vali kõik

May 19 14:15:57 test kernel: [  129.780482] ADDRCONF(NETDEV_UP): eth0: link is not ready
May 19 14:15:59 test kernel: [  132.210866] tg3: eth0: Link is up at 1000 Mbps, full duplex.
May 19 14:15:59 test kernel: [  132.210876] tg3: eth0: Flow control is off for TX and off for RX.
May 19 14:15:59 test kernel: [  132.211481] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
May 19 14:16:10 test kernel: [  142.672033] eth0: no IPv6 routers present
May 19 14:16:41 test kernel: [  174.307727] tun: Universal TUN/TAP device driver, 1.6
May 19 14:16:41 test kernel: [  174.307737] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
May 19 14:16:41 test kernel: [  174.349143] device eth0 entered promiscuous mode
May 19 14:16:41 test kernel: [  174.355716] device tap0 entered promiscuous mode
May 19 14:16:41 test kernel: [  174.369732] br0: port 2(tap0) entering learning state
May 19 14:16:41 test kernel: [  174.369737] br0: port 1(eth0) entering learning state
May 19 14:16:52 test kernel: [  184.864034] br0: no IPv6 routers present
May 19 14:16:52 test kernel: [  185.052036] tap0: no IPv6 routers present
May 19 14:16:56 test kernel: [  189.368036] br0: port 2(tap0) entering forwarding state
May 19 14:16:56 test kernel: [  189.368048] br0: port 1(eth0) entering forwarding state
May 19 14:17:01 test kernel: [  194.014924] br0: port 2(tap0) entering disabled state
May 19 14:17:01 test kernel: [  194.025969] br0: port 1(eth0) entering disabled state
May 19 14:17:01 test kernel: [  194.027998] br0: port 1(eth0) entering learning state
May 19 14:17:11 test kernel: [  204.144037] br0: no IPv6 routers present
May 19 14:17:16 test kernel: [  209.028038] br0: port 1(eth0) entering forwarding state
Võibolla leiad omal logist midagi informatiivset selle kohta miks ta toimida ei taha.
Vee pee ennu ja tun devicet ma ei testinud.Ja kui sul selles masinas muidu võrk dhcp peale on sätitud, siis aegajalt käivitatakse dhclient ja küsitakse eth0 kaudu uus ip ja ruuting.
kkristjan
Pingviini külastaja
Pingviini külastaja
Postitusi: 29
Liitunud: 21.10.2010, 18:15

Postitus Postitas kkristjan »

Tegin skriptis vajaliku muudatuse ja muutsin võrguühenduse DHCP'lt staatilisele. Peale seda toimib nii sise- kui ka välisvõrgu ühendus.

Kuidas avada port 1194?

Kui lisan pordi iptables:

Kood: Vali kõik

sudo iptables -A INPUT -p udp --dport 1194 1194 -j ACCEPT
On tulem järgmine:

Kood: Vali kõik

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere            udp dpt:openvpn 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Vastus päringule nestat -l:

Kood: Vali kõik

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
udp        0      0 192.168.11.8:openvpn    *:*                                
raw        0      0 *:icmp                  *:*                     7          
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     2830     @/com/ubuntu/upstart
Kasutaja avatar
obundra
Vana Pingviin
Vana Pingviin
Postitusi: 1213
Liitunud: 04.08.2005, 03:00

Postitus Postitas obundra »

Et lubataks pakettide forwardimine, käsk "echo 1 > /proc/sys/net/ipv4/ip_forward" või alaliseks muudatuseks rida "net.ipv4.conf.default.forwarding=1" /etc/sysctl.conf faili.
Tulemüüris tuleks lubada liiklus füüsiliste ja virtuaalsete liideste vahel, umbes midagi sellist:

Kood: Vali kõik

iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A OUTPUT -o tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A OUTPUT -o tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
iptables -A INPUT -i br+ -j ACCEPT
iptables -A FORWARD -i br+ -j ACCEPT
kohanda oma tulemüüriga sobivaks.
Täpsem info on iptablesi ja OpenVPN-i juhendites.
Vasta