대상 호스트가 이미 지정된 인터페이스에 연결되어 있는 경우 -o 및 -i가 의미가 있습니까?

대상 호스트가 이미 지정된 인터페이스에 연결되어 있는 경우 -o 및 -i가 의미가 있습니까?
iptables -A FORWARD -s 192.168.20.7 -d 10.10.48.3 -p tcp --dport 25 -o eth1 -j ACCEPT
iptables -A FORWARD -s 10.10.48.3 -d 192.168.20.7 -p tcp --sport 25 -i eth1 -j ACCEPT

우리 조직의 방화벽을 조정하는 동안 나는 혼란스러운 두 줄을 발견했습니다. 인터페이스는 10.10.xx 네트워크에 연결되어 있으므로... 및 이미 암시된 및 if 를 각각 넣는 것이 합리적입니까 eth1?-o eth1-i eth1-d 10.10.48.3-s 10.10.48.3

답변1

매뉴얼 페이지를 기반으로, iptables나는 또한 귀하의 평가에 동의하는 경향이 있습니다.

   [!] -i, --in-interface name
        Name of an interface via which a packet was received (only for 
        packets entering the INPUT, FORWARD and PREROUTING chains).  When 
        the "!" argument is used before the interface name, the sense is 
        inverted.  If the interface name ends in  a  "+",  then  any  
        interface which begins with this name will match.  If this option
        is omitted, any interface name will match.

   [!] -o, --out-interface name
        Name of an interface via which a packet is going to be sent (for 
        packets entering the FORWARD, OUTPUT and POSTROUTING chains).  When
        the "!" argument is used before the interface name, the sense is 
        inverted.  If the interface name ends in a "+", then any  interface
        which begins with this name will match.  If this option is omitted, 
        any interface name will match.

이 설명의 마지막 문장은 실제로 주목할 만한 유일한 요점입니다. 상자에 다른 인터페이스가 있는 경우 이 규칙은 -o또는 -i옵션을 생략하여 트래픽이 이를 사용하도록 허용할 수 있습니다. 이는 모두 라우팅 등이 이를 허용하도록 설정되어 있다고 가정합니다.

관련 정보