Eu tenho uma conexão de fibra óptica através de um dispositivo Huawei ONT. (Eu não sei o modelo exato) O modo de dispositivo foi alterado para "modem" pelo ISP, então eu deveria conectar através de PPPoE. (Eu tenho nome de usuário e senha)
Quando testei com o Windows 7 x64, a conexão PPPoE funcionou perfeitamente.
Eu tenho 16.04.4 servidor LTS (Xenial Xerus) (sem GUI) com 3 conexões Ethernet:
- eth0 - NIC onboard
- eth1 - NIC onboard
- wan0 - NIC PCI-X
O dispositivo ONT está conectado a "wan0" e a conexão PPPoE é configurada com "pppoeconf".
"pppoeconf" criou uma interface "ppp0". A conexão PPP tem dois endereços IP: no lado público, há um IP público fixo (por exemplo, FIX.EDI.PAD.DRE.SSS) e, no lado privado, o endereço IP é 10.0.0.1/32.
No terminal do servidor Linux, pude fazer o ping em 8.8.8.8, google.com, navegar em qualquer site com o Lynx. E o servidor que permite conexões SSH da internet.
Assim, a conexão PPPoE funciona perfeitamente.
Este servidor está conectado a sub-redes através de NIC (s) "eth0", "eth1". As sub-redes são separadas logicamente pelas VLANs (eth0.11, eth1.22, eth1.33, ...)
Aqui está o conteúdo do arquivo "/ etc / network / interfaces":
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto wan0
iface wan0 inet dhcp
auto eth0.11
iface eth0.11 inet static
address 10.1.0.1
network 10.1.0.0
netmask 255.255.0.0
broadcast 10.1.255.255
vlan-raw-device eth0
auto eth1.22
iface eth1.22 inet static
address 10.2.0.1
network 10.2.0.0
netmask 255.255.0.0
broadcast 10.2.255.255
vlan-raw-device eth1
auto eth1.33
iface eth1.33 inet static
address 10.3.0.1
network 10.3.0.0
netmask 255.255.0.0
broadcast 10.3.255.255
vlan-raw-device eth1
auto dsl-provider
iface dsl-provider inet ppp
pre-up /bin/ip link set wan0 up # line maintained by pppoeconf
provider dsl-provider
O último bloco ("auto dsl-provider ...") foi adicionado por "pppoeconf".
O servidor Linux fornece serviços DHCP, DNS, NTP para a máquina das sub-redes.
Existe uma máquina de teste do Windows 7 x64 configurada para usar a VLAN 33. Esta máquina obtém IP dinâmico do Linux no intervalo determinado. Eu poderia pingar apenas na sub-rede VLAN (33) e 10.3.0.1.
Eu não pude fazer o ping em 8.8.8.8, google.com ou qualquer outra coisa da (s) sub-rede (s) de VLANs, então basicamente não consigo acessar a internet
Existem alguns ipsables roules (o padrão é DROP), aqui estão algumas linhas relevantes:
$IPTABLES -N privnet_as_source_accept
$IPTABLES -A privnet_as_source_accept -i eth0.11 -j ACCEPT
$IPTABLES -A privnet_as_source_accept -i eth1.22 -j ACCEPT
$IPTABLES -A privnet_as_source_accept -i eth1.33 -j ACCEPT
$IPTABLES -A privnet_as_source_accept -j DROP
.
.
.
# Allow everything which is related to an earlier action
$IPTABLES -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# ICMP forward all subtype from private network to internet
$IPTABLES -A FORWARD -o ppp0 -p icmp -j privnet_as_source_accept
# SSH
$IPTABLES -A FORWARD -o ppp0 -p tcp --dport 22 -m conntrack --ctstate NEW -j privnet_as_source_accept
# whois
$IPTABLES -A FORWARD -o ppp0 -p udp --dport 43 -m conntrack --ctstate NEW -j privnet_as_source_accept
$IPTABLES -A FORWARD -o ppp0 -p tcp --dport 43 -m conntrack --ctstate NEW -j privnet_as_source_accept
# DNS
$IPTABLES -A FORWARD -o ppp0 -p udp --dport 53 -m conntrack --ctstate NEW -j privnet_as_source_accept
$IPTABLES -A FORWARD -o ppp0 -p tcp --dport 53 -m conntrack --ctstate NEW -j privnet_as_source_accept
# HTTP
$IPTABLES -A FORWARD -o ppp0 -p tcp --dport 80 -m conntrack --ctstate NEW -j privnet_as_source_accept
Saída de "route -vn":
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 ppp0
10.0.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0.111
10.2.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1.222
10.3.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1.333
Do que sinto falta, por que não consigo acessar a Internet a partir de máquinas clientes em VLAN (s)?