Primeiro - sua rota padrão está errada. O via
precisa apontar para o gateway do próximo salto (do pc1 é 192.168.178.1
), mas por algum motivo você está apontando para o pc1 em si. Então, a primeira linha deve se parecer com:
ip route add default via 192.168.178.1 dev eth0
Na verdade, todas suas rotas essencialmente traduzem para "encaminhar isso por mim mesmo". Isso é redundante (o pc1 já tem o pacote, por que ele seria retornado pelo pc1 novamente?) E, mais importante, soa como uma receita para loops infinitos. Assim, na segunda e terceira linhas, primeiro se livre do parâmetro via
:
ip route add 192.168.178.0/24 dev eth0
No entanto, você está tentando adicionar rotas de sub-rede idênticas ao que o sistema operacional já possui. Esse é o ponto por trás de ter configurado uma "máscara de sub-rede" - se o seu endereço IP é 192.168.178.201/24 na eth0, então você automaticamente tem uma rota para 192.168.178.0/24 via eth0.
Em outras palavras, para a sua rede atual, você precisa apenas manualmente a rota primeiro (padrão). As rotas "Sub-rede local" serão adicionadas automaticamente.
Segundo - o gateway deve ter uma rota de volta ao pc2 via pc1. Como os pedidos de ping vêm de uma sub-rede diferente, ele não sabe automaticamente para onde enviar as respostas, portanto, também precisa de uma rota estática adicionada.
Como fazer isso depende do software do gateway, mas nos termos do iproute2 seria parecido com:
ip route add 192.168.177.0/24 via 192.168.178.201
E como nota lateral, esqueça os parâmetros "rede" e "bcast". Eles já são determinados automaticamente a partir do /24
. Geralmente não há necessidade de configurá-las manualmente - apenas mais oportunidades para cometer erros de digitação e erros.