web-dev-qa-db-fra.com

Comment puis-je donner un accès Internet au réseau local via un serveur DHCP / Gateway?

Je pense que je me trouve maintenant quelque part entre surcharge cognitive et comme un bébé perdu dans les bois. J'espère donc que quelqu'un pourra m'aider! :)

J'ai installé un serveur Ubuntu 12.04 sur mon réseau local domestique. C'est une configuration DHCP/passerelle qui suit ce qui semble être l'idée générale de n tutoriel . La boîte a deux cartes réseau. La connexion Internet se fait via PPPOE via un routeur ADSL ponté. Eth0 est la connexion du serveur à Internet et eth1 est l'interface avec le réseau local.

Je semble souffrir du problème très courant du serveur qui a un accès Internet (l'URL et l'adresse IP de ping fonctionne), les clients sur le réseau local peuvent envoyer une requête ping aux deux interfaces réseau du serveur MAIS ils ne peuvent pas envoyer d'URL ou IP. Ils n'ont pas d'accès internet.

Ainsi, ma demande, basée sur les détails du serveur plus bas: Comment puis-je donner un accès Internet au réseau local via mon serveur? Ou encore, quelle petite erreur de point-virgule ai-je manquée dans ma configuration? : P

1./etc/network/interfaces

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 8.8.8.8 192.168.1.1
        dns-search crowdControl.com
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider
auto eth1
iface eth1 inet static
        address 172.22.22.1
        network 172.22.22.0
        netmask 255.255.255.0

2. /etc/rc.local

/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
/sbin/iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth1 -j ACCEPT
exit 0

3. /etc/dhcp/dhcp.conf

ddns-update-style none;
option domain-name "crowdControl.com";
option domain-name-servers 8.8.8.8, 192.168.1.1;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 172.22.22.0 netmask 255.255.255.0 {
  range 172.22.22.21 172.22.22.250;
  option routers 172.22.22.1;
  option domain-name-servers 8.8.8.8, 192.168.1.1, 196.220.59.188;
}

4. route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
172.22.22.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

5. "regardez -n 1 -d iptables -nvL" indique l’activité des paquets dans la chaîne de renvoi lorsque je tente d’envoyer une requête ping sur Internet à partir de une machine locale.

6. L'envoi d'une requête 8.8.8.8 à partir de la machine sur le réseau local a pour résultat:

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.1.1 icmp_seq=3 Destination Net Unreachable
From 192.168.1.1 icmp_seq=4 Destination Net Unreachable
From 192.168.1.1 icmp_seq=5 Destination Net Unreachable
From 192.168.1.1 icmp_seq=7 Destination Net Unreachable
etc...

PS: J'ai rencontré beaucoup de questions/réponses similaires, mais je n'arrive pas à faire fonctionner mes paramètres, même si j'essaie leurs solutions. Quelques exemples que j'ai trouvés:

3
ddtpoison777

Assurez-vous que le transfert est activé:

sysctl -n net.ipv4.ip_forward 

Cela devrait vous donner "1". Sinon, activez le transfert de paquets en définissant net.ipv4.ip_forward = 1 dans /etc/sysctl.conf. Appliquez les nouveaux paramètres en tapant:

sysctl -p 

Cela vous permettra d'exécuter un serveur ou un client DHCP sur la machine, au lieu de vous obliger à utiliser une adresse fixe.

1
far4d

Vous devez suivre les conseils de far4d sur net.ipv4.ip_forward... Cependant, vous devriez également faire la même chose pour net.ipv4.ip_dynaddr.

Allez simplement dans le fichier samre qu'il vous a demandé d'éditer (/etc/sysctl.conf) et au lieu d'insérer simplement net.ipv4.ip_forward = 1 à la place, insérez:

net.ipv4.ip_forward = 1
net.ipv4.ip_dynaddrn = 1  

Ensuite, faites un sysctl -p comme il l’a recommandé.

1
Victor